上周看到韩松毕业论文,扯出神经网络加速器EIE,刚好这周调研了一下neuFlow,扯出09年的一篇做卷积加速的文章,大牛Lecun Yan的学生做的,一晃眼,快十年了。也记录之。

这一套还没研究透,又被换了方向,只好抽出一个晚饭时间,把看懂的记下来,不懂的暂时不研究了,如果以后再被拎回来搞这个方向再看吧。

1. neuFlow的整体思想:

CNP是09年的一个卷积加速器,newFlow是12年的一个神经计算芯片,并加上了luaFlow编译器做成了一个嵌入式系统,可以实现人脸识别、场景分割等等。

大概思想如图,先训练好一个卷积神经网络模型,用luaFlow编译成neuFlow能跑的机器码,跟硬件代码一起下载到FPGA或者流片成ASIC,运行。

neuFlow&CNP-卷积计算加速器&神经网络加速芯片生态系统

2.CNP架构

neuFlow&CNP-卷积计算加速器&神经网络加速芯片生态系统

CPU使用32位的Power PC,VALU是计算加速单元,作者为这个模块设计了四种微指令:2D卷积、2D空间池化与下采样、点积、非线性(sigmoid或者tanh之类)

根据微指令功能,CNP赤裸裸的面向卷积神经网路计算。(Lecun的学生做的)

3. 2D卷积加速器设计

3*3卷积加速器设计方案:

neuFlow&CNP-卷积计算加速器&神经网络加速芯片生态系统

计算流程如下:

neuFlow&CNP-卷积计算加速器&神经网络加速芯片生态系统

neuFlow&CNP-卷积计算加速器&神经网络加速芯片生态系统

neuFlow&CNP-卷积计算加速器&神经网络加速芯片生态系统