上周看到韩松毕业论文,扯出神经网络加速器EIE,刚好这周调研了一下neuFlow,扯出09年的一篇做卷积加速的文章,大牛Lecun Yan的学生做的,一晃眼,快十年了。也记录之。
这一套还没研究透,又被换了方向,只好抽出一个晚饭时间,把看懂的记下来,不懂的暂时不研究了,如果以后再被拎回来搞这个方向再看吧。
1. neuFlow的整体思想:
CNP是09年的一个卷积加速器,newFlow是12年的一个神经计算芯片,并加上了luaFlow编译器做成了一个嵌入式系统,可以实现人脸识别、场景分割等等。
大概思想如图,先训练好一个卷积神经网络模型,用luaFlow编译成neuFlow能跑的机器码,跟硬件代码一起下载到FPGA或者流片成ASIC,运行。
2.CNP架构
CPU使用32位的Power PC,VALU是计算加速单元,作者为这个模块设计了四种微指令:2D卷积、2D空间池化与下采样、点积、非线性(sigmoid或者tanh之类)
根据微指令功能,CNP赤裸裸的面向卷积神经网路计算。(Lecun的学生做的)
3. 2D卷积加速器设计
3*3卷积加速器设计方案:
计算流程如下: