NNIE 即 Neural Network Inference Engine,是海思 SVP 开发框架中的处理单元之一,主要针对深度学习卷积神经网络加速处理的硬件单元,可用于图片分类、目标检测等 AI 应用场景。
图 1 海思 SVP 开发框架
NNIE 在系统中的位置如图 2,支持现有大部分公开的卷积神经网络模型,如 AlexNet、VGG16、ResNet18、ResNet50、GoogLeNet 等分类网络,Faster R-CNN、YOLO、SSD、RFCN 等检测目标网络,以及 FCN 、SegNet 等分割场景网络。 这里要注意的是当前 NNIE 配套软件及工具仅链支持 Caffe 框架的网络模型。
图 2 NNIE 在系统中的位置
NNIE 加速引擎的特性如下:
- 支持 N * N 注 1 卷积
- 支持 Pooling(Max 和 Average)
- 支持 Stride 注 2
- 支持 Pad
- 支持激活函数(Relu、Sigmoid 和 TanH)
- 支持 LRN 的
- 支持 BN(Batch Normalization)
- 支持矢量与矩阵的乘加计(Inner Product)
- 支持 Concat
- 支持 Eltwise
- 支持 8bit 的数据与参数
- 支持数据与 1000 分宽可配置
- 支持参数压缩和参数稀疏
- 支持输入图像为单通道(灰度图)和三通道(RGB 格式)
- 支持图像预处理(均值化和像素值缩放)
- 支持一个民众的民众处理
- 支持中间层结果上报
海思提供完整的工具链给用户开发 NNIE,其中包括:
(1)Mapper:该工具将用户通过开源深度学习框架训练得到的模型的演示成在海思芯片上或者在仿真的资料文件可以加载指令文件。
(2)仿真库:仿真库有基于 Visual Studio 和 MinGW 版本,模拟 NNIE 的硬件执行和软件接口调用,在"相同的输入"下仿真库与硬件得到相同的结果。
(3)仿真 Sample 工程:包含仿真 Sample 源代码供开发者学习参考,支持 VisualStudio 或 RuyiStudio 环境运行。
(4)模型包:包含若干 Sample 中用到的网络的 Caffe 模型文件及对应的 NNIE Mapper 配置文件、wk 文件、图像文件等。
到这里相信大家对海思的 NNIE 已经有所了解,如需进一步了解如何进行 NNIE 的开发,请联系 WPI 的技术窗口,鉴于原厂资料的保密性,在这里就不方便展开了,欢迎大家持续关注,下期我们再见!
附录:参考文献
[1] 海思 Hi3566V100 开发文件,《Hi3566V100 Automotive Camera SoC Reference Manual》
评论