A kernel library targeting Neural Network Accelerators developed in the PULP group.
This library is considered unstable and might go through major changes until a stable release of v1.0.0.
- inc: interface to the library
- src: implementations of the interface for specific accelerators
- util: utilities used by all the accelerators
- <accelerator>:
- hal: hardware abstraction layer
- gvsoc: gvsoc-specific functions
- test: testing folder (more info)
Github repo link.
- Convolution w/ kernel shape 1x1
- Convolution w/ kernel shape 3x3
- Depthwise convolution w/ kernel shape 3x3
- Stride 1x1
- Stride 2x2
- Normalization and quantization
- With
- Without
- Relu (w/ and w/o)
- Bias (w/ and w/o)
- Per-channel shift
- Per-layer shift
- Rounding
- Input type
- uint8
- uint16
- Output type
- int8
- uint8 (only w/ Relu)
- int32
- uint32 (only w/ Relu)
- Scale type
- uint8
- uint16
- uint32
- Bias type
- int32
- Weight type
- int8
- int2-7
Untested and considered broken.
You can find information about testing in the dedicated README.
Bug reports and feature requests should be reported through issues.
All the development should be done through forks and merged onto the dev
branch with pull requests.
The library will follow the Semantic Versioning.
TBA
- Luka Macan <luka.macan@unibo.it>
- Francesco Conti <fconti@unibo.it>
- Arpan Prasad <prasadar@iis.ee.ethz.ch>
Licensed under Apache-2.0; the whole text of the license can be found in the LICENSE file.