文章整理自:
淺談AI芯片架構(gòu)設(shè)計(jì) - 知乎 (zhihu.com)
作者:黃玖紅
根據(jù)華為GIV(Huawei Global Industry Vision)預(yù)測,2025年全球新增數(shù)據(jù)量預(yù)計(jì)180ZB,將遠(yuǎn)超人類處理能力,95%的數(shù)據(jù)將依賴AI處理。數(shù)據(jù)是企業(yè)重要資產(chǎn),借助人工智能手段進(jìn)行更高效的數(shù)據(jù)分析、處理、決策,提升企業(yè)生產(chǎn)效率和智能化水平,將成為企業(yè)經(jīng)營的核心任務(wù)之一。預(yù)計(jì)2025年,全球企業(yè)對AI的采用率將達(dá)86%,AI的崛起將深刻改變企業(yè)的業(yè)務(wù)模式和價(jià)值創(chuàng)造模式。
60年來人工智能發(fā)展雖幾起幾落,卻始終在新興ICT信息技術(shù)驅(qū)動下不斷取得新的突破。但近些年,CPU性能未能呈現(xiàn)如摩爾定律預(yù)測的定期翻倍,業(yè)內(nèi)普遍觀點(diǎn)認(rèn)為摩爾定律已經(jīng)失效,能否開發(fā)出具有超高運(yùn)算能力、符合市場需求的芯片,已成為人工智能領(lǐng)域可持續(xù)發(fā)展的重要因素。
從Alpha Go戰(zhàn)勝李世石說起
2016年谷歌Alpha Go與圍棋世界冠軍李世石上演“世紀(jì)人機(jī)大戰(zhàn)”,將人工智能的關(guān)注度推到了前所未有的高度。人工智能機(jī)器人阿爾法狗以4比1的總比分戰(zhàn)勝職業(yè)九段棋手李世石。此次人機(jī)大戰(zhàn),谷歌DeepMind公司共消耗了1202顆CPU和176顆GPU的計(jì)算資源,阿爾法狗的浮點(diǎn)運(yùn)算能力是1998年IBM深藍(lán)戰(zhàn)勝象棋冠軍時(shí)的3萬倍之多。
但從能效的角度,Alpha Go真的戰(zhàn)勝人類了嗎?我們從以下方面分析。成年男性每日需要能量大約2550千卡,1千卡(KCAL)=4.184千焦耳(KJ),如果我們把卡路里換算成焦耳大概是1000多萬焦耳,下棋1小時(shí),李世石大概消耗0.7兆焦耳。Alpha Go與李世石下棋用了1202顆CPU,176顆GPU,以1顆CPU100W,1顆GPU200W,1小時(shí),阿爾法狗需要,1瓦時(shí)=3600焦耳,共消耗559兆焦耳,這相當(dāng)于李世石用的能耗大約是Alpha Go能耗的八百分之一。
之后,谷歌的DeepMind團(tuán)隊(duì)對硬件進(jìn)行改進(jìn),將運(yùn)算單元從CPU換算成GPU,同樣級別比賽,阿爾法狗消耗雖下降了12倍,但仍然是人類能耗的67倍之多。
我們看到,GPU在性能和效率上,雖然相比CPU有很大的提升,但它仍更適合大規(guī)模分布式訓(xùn)練場景。隨著5G、物聯(lián)網(wǎng)、云和超寬帶信息技術(shù)的發(fā)展,智能將延伸到每一臺智能設(shè)備和終端,包括各種形式邊緣計(jì)算,以及IoT物聯(lián)網(wǎng)、消費(fèi)類智能終端,為了實(shí)現(xiàn)極致的用戶體驗(yàn),這類設(shè)備往往在最靠近用戶的地方,需要長時(shí)間待機(jī),對功耗和空間的約束要是非常高的,顯然GPU無法滿足這類場景的需求。
而人工智能的本質(zhì)是幫助各行各業(yè)提高生產(chǎn)效率,產(chǎn)生社會和商業(yè)價(jià)值。若像Alpha Go一樣,依賴龐大且昂貴的計(jì)算資源實(shí)現(xiàn)一個簡單的場景,實(shí)則大材小用。從我們對AI需求的理解來看,人工智能芯片的研發(fā),從一開始就要考慮對全場景智能需求的覆蓋,無論是云、邊緣、還是終端;無論是深度學(xué)習(xí)訓(xùn)練,還是推理,或者兩者兼具,而不是一種芯片包打天下。從人工智能芯片發(fā)展歷程來看,也是在逐步適應(yīng)這個過程。
重新定義AI芯片
人工智能芯片經(jīng)歷了從CPU->GPU->FPGA->AI芯片的發(fā)展歷程。
阿爾法狗的首次戰(zhàn)勝人類可謂是費(fèi)了“洪荒之力”,本質(zhì)上是基于馮.諾依曼計(jì)算架構(gòu)所決定的。于是具備強(qiáng)大并行計(jì)算能力與浮點(diǎn)計(jì)算能力GPU一度成為深度學(xué)習(xí)模型訓(xùn)練和推理的標(biāo)配。相比CPU,GPU提供更快的處理速度,需要更少的服務(wù)器投入和更低的功耗,成為近些年來深度學(xué)習(xí)訓(xùn)練的主流模式。
但GPU無法滿足所有場景深度學(xué)習(xí)計(jì)算任務(wù)。除前面所述,再舉個例子,比如L4自動駕駛,需要識別道路、行人、紅綠燈等狀況,如果基于CPU計(jì)算,時(shí)延無法滿足要求,恐怕車翻到河里還沒發(fā)現(xiàn)前方是河;如果用GPU計(jì)算,雖然時(shí)延可以滿足要求,但是功耗大,汽車電池?zé)o法長時(shí)間運(yùn)行。此外,1塊GPU卡少則萬元多則近10萬人民幣,無法普及大多數(shù)普通消費(fèi)者。
本質(zhì)上,GPU不是專門針對AI算法開發(fā)的ASIC,人們亟需找到既能解決深度學(xué)習(xí)訓(xùn)練和推理的運(yùn)算能力,又能解決功耗和成本問題的芯片,F(xiàn)PGA芯片在這樣背景下誕生。
FPGA芯片
FPGA可編程的陣列(Field-Programmable Gate Array),作為ASIC領(lǐng)域中的一種半定制電路而出現(xiàn),本質(zhì)上是基于無指令,無需共享內(nèi)存的體系架構(gòu)創(chuàng)新,滿足了特定場景的需求。
FPGA主要通過以下手段提升性能、降低時(shí)延;減少能耗、降低成本:
1、 通過燒入可配置、可反復(fù)刷寫的FPGA配置文件來定義大量門電路和存儲器間的連線。
2、 通過配置文件,將FPGA變成不同的處理器,支持各種不同的深度學(xué)習(xí)計(jì)算任務(wù)。
3、 FPGA中的寄存器和片上內(nèi)存,屬于各自的控制邏輯,無需不必要的沖裁和緩存。
根據(jù)研究發(fā)現(xiàn),對于大量的矩陣運(yùn)算GPU計(jì)算能力遠(yuǎn)高于FPGA,但是由于FPGA體系結(jié)構(gòu)特點(diǎn),非常適用于低時(shí)延、流式計(jì)算密集型任務(wù)處理。在類似海量并發(fā)的云端推斷,比如語音云識別場景,F(xiàn)PGA相比GPU具備更低計(jì)算時(shí)延的優(yōu)勢,能夠提供更佳的消費(fèi)者體驗(yàn)。
但是,F(xiàn)PGA芯片本質(zhì)上是通過預(yù)編程的方法來提升性能的,AI需要處理的內(nèi)容往往是大量非結(jié)構(gòu)化數(shù)據(jù),例如視頻、圖像等,這類數(shù)據(jù)很難通過預(yù)編程的方法得到滿意的結(jié)果。相反,需要通過人工智能芯片,進(jìn)行大量樣本訓(xùn)練和推理交互,形成算法模型后,集成了AI芯片和算法的智能設(shè)備,才能具備智能推理能力。
無論是GPU還是FPGA,雖然都可以運(yùn)行AI算法,但均美中不足, GPU本質(zhì)上不是專門針對AI算法開發(fā)的ASIC,功耗大、成本高;FPGA雖然架構(gòu)有一定的創(chuàng)新,但是預(yù)編程繁瑣。從嚴(yán)格意義上來講,都不是AI芯片。那么,什么是AI芯片呢?我們知道,人工智能的深度學(xué)習(xí)算法的數(shù)據(jù)運(yùn)算特征,需要芯片具備比傳統(tǒng)計(jì)算性能高出2-3個數(shù)量級。綜上分析,我們嘗試給出如下定義:
基于ASIC(專用集成電路),可以基于軟件靈活定義和高度定制的專用芯片。一方面,能夠進(jìn)行深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)運(yùn)算;另一方面,基于硬件計(jì)算架構(gòu)的創(chuàng)新,提升深度學(xué)習(xí)運(yùn)算效率,達(dá)到最佳能效(TOPS/W)的芯片,才可以稱之為AI芯片。
值得肯定的是,F(xiàn)PGA大膽邁出了人工智能芯片硬件架構(gòu)創(chuàng)新的第一步,即ASIC專用集成電路模式。
AI芯片依賴架構(gòu)創(chuàng)新
如上分析,F(xiàn)PGA之所以比CPU,GPU能耗低,本質(zhì)上是無指令,無需共享內(nèi)存的體現(xiàn)結(jié)構(gòu)帶來的福利。在探討架構(gòu)創(chuàng)新之前,我們來分析是什么原因造成了CPU/GPU無法滿足人工智能的需求。
目前市面上絕大多數(shù)AI芯片采用類CPU架構(gòu)(馮.諾依曼架構(gòu)的局部優(yōu)化),本質(zhì)上還是“計(jì)算優(yōu)先”模式,比如通過擴(kuò)展并行計(jì)算單元來提升芯片處理性能。但人工智能深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)算法訓(xùn)練,多個計(jì)算單元往往需要頻繁的存儲器讀寫操作,而類CPU架構(gòu)本質(zhì)上還是共享存儲模式,無法根本解決馮.諾依曼計(jì)算架構(gòu)共享內(nèi)存模式導(dǎo)致的存儲性能瓶頸問題,又稱 “內(nèi)存墻”,類CPU架構(gòu)示意如下:

深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)運(yùn)算特征表現(xiàn)為:高并發(fā)、高耦合,以及“高并發(fā)+高耦合”的“三高”特征。算法處理需要進(jìn)行:大量的計(jì)算、大量的并行處理、低延遲的操作要求。以訓(xùn)練為例,訓(xùn)練過程涉及大量數(shù)據(jù)存儲,對內(nèi)存數(shù)量、訪問內(nèi)存的帶寬和內(nèi)存管理方法的要求都非常高。要求芯片具備一定精度的浮點(diǎn)數(shù)運(yùn)算能力,且同時(shí)支持正向和反向的計(jì)算過程和多次迭代。其次,訓(xùn)練過程需要不斷調(diào)整神經(jīng)網(wǎng)絡(luò)中的參數(shù)(權(quán)重),包括參數(shù)的多次輸入和多次讀取,以及復(fù)雜的數(shù)據(jù)同步要求,整個在線訓(xùn)練過程參數(shù)的頻繁操作,對存儲器帶來非常巨大的挑戰(zhàn)。
本質(zhì)上,馮.諾依曼計(jì)算架構(gòu)是摩爾定律在人工智能場景下失效的根因。如何通過硬件體系架構(gòu)的創(chuàng)新,克服“存儲墻”瓶頸,實(shí)現(xiàn)人工智能最佳的深度學(xué)習(xí)算法運(yùn)算效率,成為人工智能芯片架構(gòu)創(chuàng)新和發(fā)展的方向。
AI芯片架構(gòu)設(shè)計(jì)需要符合以下幾點(diǎn)要求:
1、符合深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)運(yùn)算的基本需求,無論是訓(xùn)練還是推斷,以及兩者的協(xié)同,在數(shù)據(jù)精度、可伸縮、可擴(kuò)展能力以及功耗效率方面要滿足實(shí)際商用場景要求。
2、支持“近數(shù)據(jù)計(jì)算”,通過硬件架構(gòu)設(shè)計(jì),拉近運(yùn)算和存儲的距離,減少數(shù)據(jù)搬移次數(shù),降低能耗。比如支持神經(jīng)網(wǎng)絡(luò)運(yùn)算放在片上存儲器進(jìn)行計(jì)算。
3、支持靈活伸縮和集群,支持大規(guī)模分布式并行AI訓(xùn)練。比如并行運(yùn)算單元內(nèi)部通過超帶寬網(wǎng)絡(luò)進(jìn)行互聯(lián)。
4、支持軟件定義AI芯片,滿足絕大多數(shù)復(fù)雜AI的算法的個性化定制和組合應(yīng)用,通過廣泛的應(yīng)用達(dá)到邊際效益,降低AI芯片成本。
AI芯片未來發(fā)展的思考
與以往信息化不同,AI帶來智能化的目的,是降低企業(yè)生產(chǎn)成本,提高效率,這意味著AI應(yīng)用將超越信息化,深入到企業(yè)生產(chǎn)系統(tǒng),一旦進(jìn)入生產(chǎn)系統(tǒng),就必須跟線下、本地各種場景相結(jié)合。因此,AI芯片架構(gòu)設(shè)計(jì)的開始,就需要考慮AI超動態(tài)、超寬范圍需求的目的。
但是,業(yè)界AI芯片的設(shè)計(jì)面臨巨大的技術(shù)難點(diǎn)和待攻克的難題:
1、 雖然芯片制造工藝已處于納米級,但在類腦、基因、抗癌新藥研制等更復(fù)雜的人工智能領(lǐng)域,集成密度的進(jìn)一步提高,將導(dǎo)致原子層電離泄露問題。比如,包括業(yè)界巨頭紛紛發(fā)力量子學(xué),也正因?yàn)橛诖恕?/p>
2、 雖然緩解馮·諾伊曼“瓶頸”問題成為共識,但與計(jì)算核心緊耦合的片上存儲器的唯一方案SRAM,其容量僅為兆級。存儲器件工藝本身的創(chuàng)新仍需努力。
3、 存儲優(yōu)先模式,需要考慮多個片上存儲的封裝技術(shù),以及多個片上存儲的管理,對軟件的復(fù)雜性要求進(jìn)一步提升。
4、 未來,在類腦智能領(lǐng)域(極限情況,Alpha Go消耗的能量與人類相同),能耗要求比最先進(jìn)CMOS 器件還要低幾個數(shù)量級。
因此,人工智能芯片技術(shù)的發(fā)展雖然取得了初步成果,但是AI芯片和架構(gòu)設(shè)計(jì),特別是神經(jīng)網(wǎng)絡(luò)芯片所面臨的工程領(lǐng)域的挑戰(zhàn)遠(yuǎn)未停止。