diff --git a/CHANGELOG.md b/CHANGELOG.md index 623a775..48a4461 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## [Unreleased] +## [0.3.0] - 2024-01-14 ### Added diff --git a/README.md b/README.md index 6db1541..be8c9be 100644 --- a/README.md +++ b/README.md @@ -6,14 +6,35 @@ A kernel library targeting Neural Network Accelerators developed in the PULP gro This library is considered unstable and might go through major changes until a stable release of v1.0.0. +## NNX Interface + +The interface to each accelerator consists of these functions: + +```c +void _nnx_init(_dev_t *dev, _pulp_conf_t *conf); +void _nnx_term(_dev_t *dev); +int _nnx_dispatch(_dev_t *dev, _task_t *task); +int _nnx_dispatch_check(_dev_t *dev); +void _nnx_dispatch_wait(_dev_t *dev); +int _nnx_resolve_check(_dev_t *dev, _task_t *task); +void _nnx_resolve_wait(_dev_t *dev, _task_t *task); +``` + +Each accelerator has their own named function in case there exist multiple types of accelerators on a same board. + +Each function accepts a pointer to a `_dev_t` type which to discern between each accelerator. + +_Note: The accelerator can provide additional helper functions if needed._ + ## Repository structure -- inc: interface to the library -- src: implementations of the interface for specific accelerators +- inc: nnx interface for each accelerator +- src: implementation for each accelerator - util: utilities used by all the accelerators - <accelerator>: - hal: hardware abstraction layer - gvsoc: gvsoc-specific functions + - bsp: board support package for each board that has the accelerator - test: testing folder ([more info](test/README.md)) ## Accelerators