现在提到的AI芯片可以分为两类,一类是用于训练和推理,主动GPU可以做到,CPU可以做到,FPGA(Altera的Stratix系列)可以做到,但是谷歌的TPU2和比特大陆的sophon可能因为特殊的设计在能耗比上有优势。
与GPU相比,这类产品整体相似,在保留大量浮点处理单元(或建立大量张量计算单元)的同时,摒弃了一些无用的图形流水线设备,提高了能耗性能。这部分玩家比较少,但是比较有意思。当然,ICLR也在思考用定点设备训练。Xilinx家族希望XNOR网能让定点设备参与培训。
另一个是推理加速器推理加速器芯片,简单来说就是在芯片上运行训练好的模型。这一块真的是百花齐放,比如寒武纪NPU,英特尔Movidius(还有一个应该类似XeonPhi的Nervana用于训练),沈剑DPU,地平线BPU,Imagination PowerVR 2NX,ARM的Project Trillium,一堆IP。这类产品不仅有产品,还为其他开发者将深度学习加速器集成到SoC中提供了IP。此外,我们还需要单独谈谈Tegra X2,它相当于一个小型桌面平台。
ARM处理器和Nvidia GPU可以提供完整的训练推理能力,当然功耗也很高。其他加速芯片,我觉得[敏感词]分为两类,浮点和定点。浮点只有FP16半[敏感词],当然FP16也支持INT8,比如寒武纪NPU和英特尔Movidius。一个是纯定点,比如地平线的BPU,想象的PowerVR 2NX。当然也有褒贬不一的,后面会详细介绍。首先,对于非ASIC产品,Deephi的部分产品使用了ZYNQ。使用ZYNQ[敏感词]的好处就是节省了流媒体成本。利用DSP48和资源实现乘法器和加法器完成定点运算,浮点交给CortexA9硬核。Deephi主要工作在模型剪枝和定点方面。之前和王宇先生沟通过,网络是定点的时候有些层的定点损耗比较高,所以保留了一些层(主要是最后一层)浮点和建安。然后是兼职,比如高通AI平台使用了Adreno GPU和Hexagon DSP(主要是DSP,能耗好像比970好一些),SNPE主要是靠GPU和DSP等资源来推断OpenCL折腾,MTK和AAPL差不多。其他差异也很大。英特尔Movidius发布较早,支持浮点推断。
其实是VLIW的SIMD单元,类似于之前的ATi显卡或者DSP设计。还有的,因为下页公开信息不多,废话连篇,一般AI加速器主要针对现有网络优化定点或浮点计算。当然,堆算术单元(矩阵算术单元、乘法和加法)是[敏感词]步,然后减少了内存数据处理。970上的可能会挂在CCI,然后依赖更多的缓存。PowerVR 2NX上的那个好像是优化到4位的内存控制器?通过优化内存数据路径和减少一些内存带宽需求,整体情况实际上是相关的。感觉这种东西接近多核DSP,但是简化了。毕竟DSP可以做一些控制和笑。另外,某种程度上,新网的优化很差,一般行业比学术行业慢一年多。比如DenseNet出来了,电影只支持Resnet。