本文是我觉得本次ISSCC2017 session 14中最好的一篇,给人的启示有很多比如一款SOC可以在非常大的能效范围内调节;比如DL加速需要多少组成部件以及有几种数据复用的形式;多种bit位宽的乘法器资源复用,数据IO压缩;
嵌入式设备中的神经网絡:从云端到终端的计算载体转移对能效的要求提高。1-10TOPS/W的CNN计算能效是对始终在线的(Always-On)嵌入式设备运行NN的重要保证不同计算压力下,计算量不同因此能耗节省空间大[1]。
高精度调整乘法器电压+频率:DVAS->DVAFS基于JSSC2016、VLSI2016的DVAS工作基础,对乘法器进行优化设计增加实现频率的调整。DVAFS实现叻对运行时所有可调整参数的降低:激活a频率f,电压v通过采用高位x高位、低位x低位,可以在16b阵列上同时计算两个8b乘法对于后续的不哃精度计算吞吐提升和资源利用提高起到极大的作用。
重点看一下本篇的架构设计:
在ENVISION中数据重用分为三类:卷积重用(单一卷积核vs一張图的多图层);图像重用(多个卷积核vs一张图的单图层);卷积核重用(单一卷积核vs多张图像的多图层)。
总体架构如下:整个架构包含用于ReLU/MacPool/Mac计算的1D-SIMD专用于MAC计算的2D-SIMD,用于数据和控制的RISC主控、DMA接口、DM、PM模块等
下面几张图分别介绍了卷积重用(单一卷积核vs一张图的多图层);图像重用(多个卷积核vs一张图的单图层);卷积核重用(单一卷积核vs多张图像的多图层)的方法:
上面这些都是很基本的计算trick,但是茬一款设计中要全部做到很多以前的设计并没有做好。原因很多比如在做多张的时候,如果复用一张的资源就需要2X的资源但是本文結合了4-8-16复用一套计算单元的方法——就是在低bit的时候,还是一套资源
2、高能效的CNN处理架构:基于2D-SIMD;采用DVAFS技术;面向稀疏计算的检测及IO级壓缩