在深度神經網路(DNN)發展的簡短歷史中,業界不斷嘗試各種可提升性能的硬體架構。通用CPU最容易編程,但每瓦特性能的效率最低。GPU針對平行浮點運算進行了最佳化,性能也比CPU更高幾倍。因此,當GPU供應商有了一大批新客戶,他們開始增強設計,以進一步提高DNN效率。例如,Nvidia新的Volta架構增加專用矩陣乘法單元,加速了常見的DNN運算。

即使是增強型的GPU,仍然受其圖形專用邏輯的拖累。此外,儘管大多數的訓練仍然使用浮點運算,但近來的趨勢是使用整數運算進行DNN推論。例如Nvidia Volta的整數性能,但仍然建議使用浮點運算進行推論。晶片設計人員很清楚,整數單元比浮點單元更小且功效更高得多;當使用8位元(或更小)整數而非16位元或32位元浮點數值時,其優勢更加明顯。

相較於GPU,DSP則是針對整數數學而設計的,特別適用於卷積神經網路(CNN)中的卷積函數。向量DSP使用寬SIMD單元進一步加速推論計算,例如,Cadence的C5 DSP核心包括四個2048位元寬度的SIMD單元;因此,核心在每個週期內可以完成1,024個8位元整數乘法累加(MAC)作業。在16nm設計中,它能每秒處理超過1兆個MAC運算。聯發科技(MediaTek)即取得了Cadence的DSP IP授權,用於其最新智慧型手機處理器的DNN加速器。

新架構的機會

最有效率的架構是從頭開始設計DNN,消除其它應用的特性,並針對DNN需要的特定計算進行最佳化。這些架構能建置於專用ASIC或銷售至系統製造商的晶片(這些晶片稱為專用標準產品或ASSP)中。最顯著的DNN ASIC是Google的TPU,它為推論任務進行了最佳化,主要包括65,536個MAC單元的脈動陣列和28MB記憶體,以容納DNN權重和累加器。TPU使用一個簡單的四階流水線,而且只執行少數指令。

多家新創公司也在為DNN開發客製架構。英特爾(Intel)去年收購了其中的一家(Nervana),並計畫在今年年底前出樣其第一款ASSP;但該公司尚未透露該架構的任何細節。Wave Computing為DNN開發了資料流程處理器。其它為此獲得眾多資金的新創公司包括Cerebras、Graphcore和Groq。我們預計這些公司至少有幾家會在2018年投產元件。

另一種建置最佳化架構的方法是利用FPGA。微軟(Microsoft)廣泛採用FPGA作為其Catapult和Brainwave計畫的一部份;百度(Baidu)、Facebook以及其它雲端伺服器供應商(CSP)也使用FPGA加速DNN。這種方法避免了數百萬美元的ASIC和ASSP投片費用,並提供了更快的產品驗證時程;只要設計改動,FPGA就能在幾分鐘內重新編程和設計。但它們作業於較低的時脈速率,並且比ASIC所能容納的邏輯塊更少得多。圖1總結了我們對這些解決方案之間相對效率的看法。

20171213_DNN_NT31P1 圖1:根據不同的硬體設計,各種深度學習加速器之間的性能/功耗比至少存在兩個數量級的差異 (來源:The Linley Group)

有些公司藉由客製程度更高的加速器來強化現有設計,從而提供了一定的空間與彈性,例如,Nvidia專為自動駕駛車設計的Xavier晶片增加了一個整數數學模組以加速DNN推論。Ceva和新思科技(Synopsys)設計了類似的單元,以便增強其SIMD DSP核心。這些模組只包含大量的整數MAC單元,從而提高了數學運算效率。然而,由於他們並未置換底層的GPU或DSP架構,所以也不像從頭設計那麼有效率。

客製設計的挑戰之一在於深度學習演算法持續迅速發展中。時下最流行的DNN開發工具TensorFlow兩年前才出現,資料科學家們已經在評估新的DNN結構、卷積函數和資料格式了。對於兩年後的DNN來說,如今為現有工作負載客製的設計可能不再是理想的選擇,或甚至無法發揮作用。為了解決這個問題,大多數的ASIC和ASSP設計都是可編程且靈活的,但是FPGA提供了最大靈活度。例如,微軟已經將專有的9位元浮點格式定義為其Brainwave深度學習平台的一部份。

融會貫通各種選擇

縱觀深度學習發展史,半導體產業通常首先在通用CPU中實現新應用。如果應用適用於現有的專用晶片,如GPU和DSP,那麼接下來可能會轉移到這兩者。隨著時間的推移,如果新應用發展成一個規模市場,業界公司就會開始開發ASIC和ASSP,雖然這些元件可能保留一定的可編程性。只有當演算法變得極其穩定時(例如MPEG),才能真的看到以固定功能邏輯的應用建置。

深度學習目前也正按這一發展路線展開。GPU和DSP顯然是適用的,而且因需求夠高,所以ASIC開始出現。幾家新創公司和其它公司正在開發即將在2018年及其後出貨的ASSP。至於少量或利基應用,FPGA通常更受歡迎;深度學習已經顯示出足以為ASIC投片帶來的前景了。

然而,哪一種DNN架構將會勝出?如今看來還不夠明朗。儘管深度學習市場正迅速成長,但仍遠低於PC、智慧型手機和汽車市場。因此,ASIC和ASSP的商業案例看起來還微不足道。相形之下,像英特爾和Nvidia這樣的公司可以採用來自其它市場的高性能處理器,並增強其深度學習,透過大量的軟體支援和持續的更新以提供具競爭力的產品。未來幾年,我們將會看到許多不同的硬體架構在深度學習市場中共存。

(參考原文:Architectures Battle for Deep Learning,by Linley Gwennap)