關于人工智能(AI)的報導一直不絕于耳。過去幾年來,幾乎每個月(有時甚至是每周)都會有一款現(xiàn)有或新創(chuàng)公司的全新AI處理器推出市場。
然而,懸而未決的問題是:為什么有這么多的AI處理器?每一款AI芯片的設計是為了解決哪些問題?更重要的是,當今的AI版圖中還缺少哪些部份?
Tirias Research首席分析師Kevin Krewell直截了當?shù)卣f,“AI帶來了一種新典范,并改變了整個計算機系統(tǒng)。”現(xiàn)有企業(yè)和新創(chuàng)公司都在爭奪仍處于混亂中的“AI就緒”(AI-ready)計算領域。
以色列Hailo是一家為“邊緣設備深度學習”打造專用芯片的新創(chuàng)公司,今年6月宣布完成1,250萬美元的A輪融資。Hailo的目標在于“為任何產品帶來智能”(to bring intelligence to any product)。因此,Hailo首席執(zhí)行官Orr Danon最近呼吁“徹底重新設計計算機架構的支柱——內存、控制和計算以及其間的關系。”
這是一個值得稱道的目標。然而,Hailo既不打算透露其架構細節(jié)——Danon僅表示“可能就在今年底”,其首款AI處理器最快也要到2019年上半年后才會正式推出。
Danon認為,目前還沒有一家自動駕駛車(AV)供應商能在無數(shù)的新一代AI處理器中找到適用于其自動駕駛車的芯片。
汽車領域正是Hailo看好其新款AI處理器得以發(fā)揮的直接目標市場。Danon指出,當今的測試自動駕駛車實際上都在公共道路上行駛,車后行李箱中還配置了一個數(shù)據(jù)中心。他說,為了填補這些測試車和自動駕駛車(必須為大量部署而打造)之間的巨大鴻溝,一線(tier one)和汽車OEM需要一種全新的AI處理器,協(xié)助其更有效率地執(zhí)行相同的深度學習任務。
Hailo為此整理了目前每一款AI處理器的每瓦(W)深度學習TMACS。該公司與《EE Times》的讀者分享的重點在于深入探討:自動駕駛車產業(yè)在多大程度上仍無法獲得推動高度自動駕駛車所需的高效能AI處理器。
業(yè)界分析師和其他AI新創(chuàng)公司高層也針對目前在AI發(fā)展道路上的重大障礙發(fā)表看法。
現(xiàn)代CPU架構并不適用于AI
大多數(shù)業(yè)界觀察家一致認為,目前基于馮·諾依曼(von Neumann)架構的CPU處理器無法有效因應當今的AI處理任務。
The Linley Group首席分析師Linley Gwennap指出,“Von Neumann不適用于AI。”他解釋說,每一次的計算都必須擷取并譯碼指令,以及收集并儲存數(shù)據(jù)于緩存器檔案中。 “為了提高每瓦計算效能,你必須執(zhí)行更多的計算和更少的擷取任務。”
Krewell同意這一看法。他說:“Von Neumann架構極其適于控制和循序計算:‘If-Then-Else’操作。相形之下,神經網(wǎng)絡就像圖形一樣,是高度平行的,而且依賴于內存帶寬的處理。試圖用CPU擴展神經網(wǎng)絡是相當昂貴的(包括功耗和成本)。”
典型的馮·諾依曼(von Neumann)計算機架構(來源:Hailo)
Danon說:“盡管Von Neumann架構和現(xiàn)代CPU一般都非常靈活,但在很多情況下,這種靈活性并不是必要的。”它適用于神經網(wǎng)絡和其他操作,例如,為未來的許多周期預先確定行為。在這種情況下,他指出,設計系統(tǒng)的更有效方法是“避免以讀取指令來指導每個周期的系統(tǒng)行為。保持每個周期改變元素行為的靈活度非常重要。”
在Danon看來,“神經網(wǎng)絡將這一概念推向了極致。‘結構’——決定操作數(shù)素之間連接性——確定整個會話的行為(又稱‘計算圖形’)。”簡言之,AI社群需要的不是基于Von Neumann架構的處理器,而是“善于描述神經網(wǎng)絡結構的特定處理器”。
重新關注數(shù)據(jù)流架構
由于CPU和GPU的深度學習性能無法滿足需求,引發(fā)業(yè)界積極尋找基于數(shù)據(jù)流(dataflow)架構的新解決方案。但為什么是數(shù)據(jù)流?
根據(jù)Gwenapp的說法,業(yè)界希望進行更多的計算和更少的擷取,首先嘗試開發(fā)寬的單指令/多數(shù)據(jù)(SIMD)架構。“但是你只能將緩存器檔案做得很寬。”業(yè)界很快地發(fā)現(xiàn),該解決方案是“直接自動地將數(shù)據(jù)從計算單元移動到計算單元”。他說,“這是一種稱為數(shù)據(jù)流的通用方法,可以大幅降低von Neumann的開銷。”
不久前才收購MIPS的Wave Computing,是一家利用數(shù)據(jù)流技術的AI新創(chuàng)公司。根據(jù)該公司首席執(zhí)行官Derek Meyer表示,Wave Computing設計了一款新的處理單元,“可以原生支持Google TensorFlow和微軟(Microsoft)的CNTK”。
Danon坦承Hailo的新款AI處理器也屬于架構的“數(shù)據(jù)流系列”。他解釋說,數(shù)據(jù)流“通常更適合深度學習”,因為“用于計算的大多數(shù)參數(shù)都不需要移動。相反地,它們用于描述數(shù)據(jù)流動時的圖形。”
數(shù)據(jù)流解決方案:典型的平行計算架構(來源:Hailo)
Krewell指出,數(shù)據(jù)流的概念并不是什么新鮮事兒,也已經成功地在通用計算機硬件實現(xiàn)商用化了。
但是,隨著AI改變計算領域,數(shù)據(jù)流正在尋找機器學習的“新機遇”。Krewell補充說:“透過使用數(shù)據(jù)流和脈動數(shù)組架構,您可以將神經網(wǎng)絡處理設計為從一分層到另一分層,而無需太多控制邏輯。”
這種新轉折可說是Wave Computing的天賜良機。該新創(chuàng)公司自2010年以來一直在利用其于數(shù)據(jù)流技術方面的專業(yè)知識以及建立專利組合,積極地專注于機器和深度學習。
內存帶寬面臨瓶頸
AI——特別是卷積神經網(wǎng)絡(CNN),似乎非常適合數(shù)據(jù)流設計。但是,Gwenapp強調,這并不表示所有的數(shù)據(jù)流設計都對AI有利,“系統(tǒng)中還存在著其他瓶頸,如內存帶寬。”
業(yè)界開始看到這樣的暗示:內存導向的裝置是客制深度學習硬件的未來。例如,新創(chuàng)公司Mythic瞄準了將神經網(wǎng)絡映像到NOR內存數(shù)組。該公司將“內存處理器”(processor-in-memory;PIM)架構用于AI,使其芯片得以在閃存中儲存并處理神經網(wǎng)絡權重,而其結果(最終和中間)則儲存在SRAM中。因為這樣的內存數(shù)組無需將數(shù)據(jù)移入和移出外部內存,所以,Mythic承諾將在其芯片中實現(xiàn)性能/功耗的巨大進展。
內存處理器(PIM)(來源:Mythic)
Mythic的設計概念當然具有吸引力,特別是當大多數(shù)芯片設計者試圖提高內存帶寬時,一般都采用可能造成破壞的方法。然而,Danon抱持謹慎看法,他表示還不確定Mythic的內存處理器芯片能否正常運作,但很可能“將技術推得太遠了”。
Danon說,目前更實際和更現(xiàn)實的方法是“共同定位內存和計算”。“我們需要讓計算結構能以高利用率存取所需的內存,從而產生非常高的帶寬。”他補充說,這對于實現(xiàn)操作數(shù)素的高利用率至關重要。
Krewell則解釋,“一些挑戰(zhàn)是在訓練期間保持權重。這就是像GraphCore在芯片上打造大型內存的原因。”他并補充說:“這也就是為什么GPU和英特爾(Intel)的Nervana使用高帶寬內存(HBM)、Wave Computing使用美光(Micron) Hypercube內存的原因。”
除了TPU,如何調整軟件和硬件?
Danon表示,Google經由其Tensor處理器,“展示了一種樣板”,用于從頭開始設計高效率的架構,并針對推論任務進行了優(yōu)化。這是個大好消息。然而,壞消息是,如果客戶想要使用除了TensorFlow之外的深度學習架構呢?
在這種情況下,他們就需要翻譯。雖然許多新興工具,包括ONNX,都用于翻譯幾個AI架構,但Danon解釋說,在此過程中,即使內容不會在翻譯中完全遺失,計算也可能變得“非常低效”。他指出,產生這種困境的原因在于,以簡潔方式描述問題的神經網(wǎng)絡“結構”必須轉換為von Neumann架構的通用處理器所使用的一系列規(guī)則操作。
Danon指出,當今的AI處理器在軟件和硬件之間缺乏一致性。他說,在理想情況下,軟件和硬件二者都使用基于結構的描述方法。Hailo計劃將本機描述為“神經網(wǎng)絡分層”,從而使其處理器有別于其他處理器。
Danon解釋說,Hailo的目標“有點類似于匯編語言本身能夠在基于規(guī)則的系統(tǒng)中描述規(guī)則一樣——條件敘述和分支的形式。”
實現(xiàn)更高每瓦性能的競賽
深度學習性能效率是AI處理器競爭對手之間經常引爆的一場大辯論。在英偉達(Nvidia)和英特爾/Mobileye之間,兩家競爭對手的高層還公開爭辯其于Xavier SoC和EyeQ5的主張。
針對深度學習影像進行處理的實際處理器效率比較(來源:Hailo)
Hailo根據(jù)每家供應商發(fā)布的數(shù)據(jù),編制了一份AI處理器比較表——從Nvidia的Volta V100、Pascal P4和Google TPU,到GraphCore IPU和Wave Computing DPU,詳細列出每家供應商的深度學習tera級每秒乘積累加(TMAC)計算和功耗資料。Hailo的目標是為每個AI處理器計算深度學習的每瓦TMACS。Hailo并觀察到當前的AI處理器可達到每瓦低于0.1TMACS的效能,而在使用批處理方法時可能略高于此。
神經網(wǎng)絡(來源:Hailo)
Danon以處理高清(HD)視頻為例指出,如果車輛以每秒30格(30f/s)的速度接收全高清(FHD)視訊,并使用ResNet50網(wǎng)絡進行深度學習。處理FHD視頻串流通常需要每個傳感器約5TMACS。根據(jù)自動駕駛的等級,一般汽車預計將配備4到12個攝像頭傳感器。
這意味著部署在自動駕駛車的任何現(xiàn)有AI處理器已經讓每個傳感器消耗約幾十瓦功耗,或每輛汽車幾百瓦了。Danon認為這已經超出太多了?;蛘?,他懷疑,如果OEM無力應付這么多的電力浪費,他們別無選擇,最終將只能在性能上大幅妥協(xié)。
理論上,“相較于傳統(tǒng)的von Neumann處理器,精心設計的CNN加速器應該能達到更高數(shù)十倍的每瓦性能”。但是,Gwenapp說:“即便采用這種方法也不足以滿足4/5級自動駕駛車的挑戰(zhàn)性要求。”
換句話說,盡管市場上充斥過多的AI處理器,但沒有一款能夠達到讓全自動駕駛車實現(xiàn)商用化可行的性能標準。
但Gwennap仍抱持樂觀看法。“幸運的是,我們還處于AI競賽的早期階段。預計在未來十年內將能在硬件和軟件方面看到大幅的進展。”