現在提到的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。