xPU有多牛:對移動端AI晶元的看法
序言:這篇文章轉自「半導體行業觀察」,原文無從考究作者,但這篇文章寫的非常好,既有透徹的技術觀點,也有清晰的行業看法,非常值得一讀。控制計算實驗室公眾號轉載這篇文章,希望能有更多從業者看到,有更多的啟發,這應該也是原文作者的初衷吧。
來源:半導體行業觀察
近一年各種深度學習平台和硬體層出不窮,各種xPU的功耗和面積數據也是滿天飛,感覺有點亂。在這裡我把我看到的一點情況做一些小結,順便列一下可能的市場。在展開之前,我想強調的是,深度學習的應用無數,我能看到的只有能在千萬級以上的設備中部署的市場,各個小眾市場並不在列。
深度學習目前最能落地的應用有兩個方向,一個是圖像識別,一個是語音識別。這兩個應用可以在如下市場看到:個人終端(手機,平板),監控,家庭,汽車,機器人,伺服器。
先說手機和平板。這個市場一年的出貨量在30億顆左右(含功能機),除蘋果外總值300億刀。手機主要玩家是蘋果(3億顆以下),高通(8億顆以上),聯發科(7億顆以上),三星(一億顆以下),海思(一億顆),展訊(6億顆以上),平板總共4億顆左右。而28納米工藝,量很大的話(1億顆以上),工程費用可以攤的很低,平均1平方毫米的成本是8美分左右,低端4G晶元(4核)的面積差不多是50平方毫米以下,成本就是4刀。中端晶元(8核)一般在100平方毫米左右,成本8刀。16納米以及往上,同樣的晶體管數,單位成本會到1.5倍。一般來說,手機的物料成本中,處理器晶元(含基帶)價格佔了1/6左右。一個物料成本90刀的手機,用的處理器一般在15刀以下,甚至只有10刀。這個10刀的晶元,包含了處理器,圖形處理器,基帶,圖像信號處理器,每一樣都是高科技的結晶,卻和肯德基全家桶一個價,真是有點慘淡。然而生產成本只是一部分,人力也是很大的開銷。一顆智能機晶元,軟硬開發,測試,生產,就算全用的成熟IP,也不會少於300人,每人算10萬刀的開銷,量產周期兩年,需要6000萬刀。外加各種EDA工具,IP授權和開片費,晶元還沒影子,1億刀就下去了。
言歸正傳,手機上的應用,最直接的就是美顏相機,AR和語音助手。這些需求翻譯成硬體指令就是對8位整數點乘(INT8)和16位浮點運算(FP16)的支持。具體怎麼支持?曾經看到過一張圖,我覺得較好的詮釋了這一點:
智能手機和平板上,是安卓的天下,所有獨立晶元商都必須跟著谷歌爸爸走。谷歌已經定義了Android NN作為上層介面,可以支持它的TensorFlow以及專為移動設備定義的TensorFlow Lite。而下層,針對各種不同場景,可以是CPU,GPU,DSP,也可以是硬體加速器。它們的能效比如下圖:
可以看到,在TSMC16納米工藝下,大核能效比是10-100Gops/W(INT8),小核可以做到100G-1Tops/W,手機GPU是300Gops/W,而要做到1Tops/W以上,必須使用加速器。這裡要指出的是,小核前端設計思想與大核完全不同,在後端實現上也使用不同的物理單元,所以看上去和大核的頻率只差50%,但是在邏輯運算能效比上會差4倍以上,在向量計算中差的就更多了。
手機的長時間運行場景下,晶元整體功耗必須小於2.5瓦,分給深度學習任務的,不會超過1.5瓦。相對應的,如果做到1Tops/W,那這就是1.5T(INT8)的處理能力。對於照片識別而言,情況要好些,雖然對因為通常不需要長時間連續的處理。這時候,CPU是可以爆發然後休息的。語音識別對性能要求比較低,100Gops可以應付一般應用,用小核也足夠。但有些連續的場景,比如AR環境識別,每秒會有30-60幀的圖像送進來,如果不利用前後文幫助判斷,CPU是沒法處理的。此時,就需要GPU或者加速器上場。
上圖是NVidia的神經網路加速器DLA,它只有Inference的功能。前面提到在手機上的應用,也只需要Inference來做識別,訓練可以在服務端預先處理,訓練好的數據下載到手機就行,識別的時候無需連接到服務端。
DLA綠色的模塊形成類似於固定的流水線,上面有一個控制模塊,可以用於動態分配計算單元,以適應不同的網路。稀疏矩陣壓縮減少帶寬,優化的矩陣演算法減少計算量,外加SRAM(一個273x128, 128x128, 128x128 ,128x6 的4層INT8網路,需要70KBSRAM)。我看到的大多數加速器其實都是和它大同小異,有些加速器增加了一個SmartDMA引擎,可以通過簡單計算預取所需的數據。根據我看到的一些跑分測試,這個預取模塊可以把計算單元的利用率提高到90%以上。
至於能效比,我看過的加速器,在支持INT8的演算法下,可以做到1.2Tops/W (1Ghz@T16FFC),1Tops/mm^2,並且正在向1.5Tops/W靠近。也就是說,1.5W可以獲得2Tops(INT8)的理論計算能力。這個計算能力有多強呢?我這目前處理1080p60FPS的圖像中的60x60及以上的像素大小的人臉識別,大致需要0.5Tops的計算能力,2Tops完全可以滿足。當然,如果要識別複雜場景,那肯定是計算力越高越好。
為什麼固定流水的能效比能做的高?ASIC的能效比遠高於通用處理器已經是一個常識,更具體一些,DLA不需要指令解碼,不需要指令預測,不需要亂序執行,流水線不容易因為等待數據而停頓。下圖是某小核各個模塊的動態功耗分布,計算單元只佔1/3,而指令和緩存訪問佔了一半。
轉自:控制計算實驗室


TAG:機器學習研究會 |