RISC-V的開(kāi)源架構(gòu)可以給人工智能芯片帶來(lái)什么機(jī)遇呢?
最近人工智能芯片很火,華為發(fā)布了兩款A(yù)I芯片—升騰910和310,阿里成立的芯片公司“平頭哥”,首款A(yù)I芯片最快明年下半年面世,人工智能依然是風(fēng)口。行業(yè)的另一個(gè)熱點(diǎn)是RISC-V,65家機(jī)構(gòu)發(fā)起成立了中國(guó)RISC-V產(chǎn)業(yè)聯(lián)盟。那么,RISC-V的開(kāi)源架構(gòu)可以給人工智能芯片帶來(lái)什么機(jī)遇呢?
RISC-V的首席構(gòu)架師Krste Asanovic告訴我們:“Mi-V生態(tài)系統(tǒng)和PolarFire可為功率受限的嵌入式系統(tǒng)提供深度學(xué)習(xí)解決方案。”
Mi-V RISC-V生態(tài)系統(tǒng)開(kāi)發(fā)平臺(tái)是美高森美(Microsemi)加速生態(tài)系統(tǒng)計(jì)劃的一部分,聚集了許多參與RISC-V開(kāi)發(fā)的行業(yè)領(lǐng)導(dǎo)者,為客戶(hù)充分利用其功能并簡(jiǎn)化RISC-V設(shè)計(jì)。Mi-V生態(tài)系統(tǒng)為固件和硬件工程師提供了全面的生態(tài)系統(tǒng),讓第三方能夠使用這個(gè)平臺(tái)推動(dòng)RISC-V采用和創(chuàng)新。
在最近SiFive舉辦的RISC-V中國(guó)巡回研討會(huì)上,Krste Asanovic博士向我們講述了人工智能的進(jìn)化史以及RISC-V給人工智能芯片所帶來(lái)的機(jī)遇。
一、人工智能的三波浪潮
人工智能(Artificial Intelligence)始于人工神經(jīng)網(wǎng)絡(luò)。人工神經(jīng)網(wǎng)絡(luò)經(jīng)歷了三波浪潮:第一波是上世紀(jì)五十年代和六十年代,人類(lèi)發(fā)明了感知器(模擬人類(lèi)視神經(jīng)控制系統(tǒng)的圖形識(shí)別機(jī));第二波是上世紀(jì)八十年代和九十年代,稱(chēng)為“反向傳播”的浪潮;第三波浪潮是自2010年以來(lái)的深度神經(jīng)網(wǎng)絡(luò)。值得注意的是,所有開(kāi)發(fā)出來(lái)的理念比實(shí)際最終流行都要早很多年。
在上世紀(jì)五十年代和六十年代,人們發(fā)明了單層感知器。這個(gè)感知器最早是為圖像處理開(kāi)發(fā)的單層感知器(例如Rosenblatt),它只是一個(gè)“線性可分分類(lèi)器”,不能捕獲有趣函數(shù),例如XOR函數(shù)。到了七十和八十年代,AI逐漸從統(tǒng)計(jì)方法轉(zhuǎn)移到符號(hào)方法。
到了1986年,有影響力的PDP書(shū)籍出版,從單層感知器發(fā)展到了多層感知器與反向支撐。人們發(fā)現(xiàn)兩層方向支撐訓(xùn)練網(wǎng)絡(luò)在實(shí)現(xiàn)許多艱巨任務(wù)時(shí)明顯好很多,但專(zhuān)家們一個(gè)廣泛的抱怨是結(jié)果不可解釋?zhuān)矣猛ㄓ糜?jì)算機(jī)訓(xùn)練的過(guò)程太慢了,所以要趕快建立定制機(jī)器。
這樣就有了定制神經(jīng)計(jì)算機(jī)。大的定制神經(jīng)網(wǎng)絡(luò)計(jì)算機(jī)的努力主要發(fā)生在九十年代。在上世紀(jì)九十年代逐漸有了DSP 陣列、矢量處理器、脈動(dòng)陣列(Systolic arrays),以及其他更多的仿神經(jīng)方法,例如:具有EEPROM權(quán)重的模擬、位系列技術(shù)、尖峰方法、異步處理器等等。
這里特別要提出的是1989年發(fā)明的環(huán)形陣列處理器(ICSI 1989),發(fā)明人是Nelson Morgan, Jim Beck, Phil Kohn, Jeff Bilmes。這是為快速訓(xùn)練建立的號(hào)稱(chēng)為“大轉(zhuǎn)儲(chǔ)”神經(jīng)網(wǎng)絡(luò)的RAP機(jī),開(kāi)辟了語(yǔ)音識(shí)別領(lǐng)域;九十年代美國(guó)德州儀器公司的環(huán)形浮點(diǎn)DSPs TMS320C30問(wèn)世,每個(gè)DSP提供32MFLOPS(32-bit FP),每個(gè)板子上有4個(gè)DSP,10個(gè)電路板連接在一起(大于1GFLOP/s峰值,640MB DRAM)。其神經(jīng)網(wǎng)格訓(xùn)練率大于100MCUPS(每秒百萬(wàn)級(jí)的鏈接升級(jí)),全部加起來(lái)有10個(gè)電路板。FPGA環(huán)連接用來(lái)為所有脈動(dòng)陣列-即在訓(xùn)練和推理時(shí)的所有通訊,其快速、靈活的設(shè)計(jì)使其成為當(dāng)時(shí)人工智能領(lǐng)域的一個(gè)“明星”,但是價(jià)格昂貴,每個(gè)電路板達(dá)10萬(wàn)美金。
二、專(zhuān)用和通用計(jì)算機(jī)之爭(zhēng)
矢量微處理器(例如:Crays)在科學(xué)計(jì)算領(lǐng)域非常成功,它是一種全新的編程模型。給一個(gè)標(biāo)準(zhǔn)的MIPS RISC 標(biāo)量處理器增加一個(gè)矢量協(xié)處理器,并全部集成在一個(gè)芯片,可用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練。
第一臺(tái)矢量微處理器是SPERT-II/T0,它產(chǎn)生于1995年。其系統(tǒng)被9個(gè)國(guó)際網(wǎng)站采用,作為人工智能的研發(fā)平臺(tái)整整工作了9年,2004年它在最后一次“上班”后黯然下崗。
1997年出現(xiàn)了TetraSpert,它是一臺(tái)可快速訓(xùn)練的矢量微處理器,使用SPARC工作站,通過(guò)Sbus總線連接若干臺(tái)(4臺(tái))SRAM T0,進(jìn)行神經(jīng)網(wǎng)絡(luò)的快速訓(xùn)練。西門(mén)子在1992年5月推出了SYNAPSE-1,這是一臺(tái)“脈動(dòng)陣列-多重引擎(16b*16b)”的處理器,可實(shí)現(xiàn)四級(jí)程序控制(68000s+微碼)。
這個(gè)時(shí)代的人工智能處理器是“用簡(jiǎn)化的矢量處理填充掩模版,添加高寬帶本地存儲(chǔ)器,并向服務(wù)器附加多個(gè)以加速神經(jīng)網(wǎng)絡(luò)訓(xùn)練。”
九十年代的人工智能市場(chǎng)特點(diǎn)一個(gè)是很小,一個(gè)是神經(jīng)網(wǎng)絡(luò)開(kāi)始“人氣消退”,只有一小部分人還在堅(jiān)持做這個(gè),因?yàn)槟柖傻奈⒖s理論更看好通用型處理器。
1996年,Intel發(fā)布了奔騰MMX(Pentium MMX),從多能奔騰開(kāi)始,英特爾就對(duì)其生產(chǎn)的CPU開(kāi)始鎖倍頻了,但是MMX的CPU超外頻能力特別強(qiáng),而且還可以通過(guò)提高核心電壓來(lái)超倍頻,所以那個(gè)時(shí)候超頻是一個(gè)很時(shí)髦的行動(dòng)。
MIT計(jì)算機(jī)科學(xué)實(shí)驗(yàn)室的Krste Asanovic 發(fā)表了一篇論文“可編程神經(jīng)計(jì)算方法”,文章說(shuō): “盡管迄今為止實(shí)現(xiàn)的多媒體擴(kuò)展證實(shí)了基于定點(diǎn)矩陣碼的通用微處理器有一個(gè)有限的提升,他們預(yù)示著商業(yè)微處理器制造商的意圖是這種編碼工作的很好,由于商業(yè)設(shè)計(jì)團(tuán)隊(duì)在新的微處理器設(shè)計(jì)中加入了多媒體內(nèi)核的工作量,我們期待ANN算法的功能也能夠大大增加,連續(xù)大量的投資都瞄準(zhǔn)了高容量微處理器,以確保這些器件能使用最先進(jìn)的制造工藝和更激進(jìn)能夠產(chǎn)生更高快速時(shí)鐘速率的電路設(shè)計(jì)風(fēng)格。在這種趨勢(shì)下,勢(shì)必減少了對(duì)于未來(lái)專(zhuān)用的神經(jīng)計(jì)算機(jī)的興趣。”
另外,隨著年代,微處理器的功能提高速率在減慢:
•1980~1985: 提升22%/年;
•1985~2003: 提升52%/年;
•2003~2011: 23%/年;
•2011~2015: 9.3%/年;
•2015年以后:2.3%/年。
“現(xiàn)在的微處理器功能已經(jīng)相當(dāng)于將近10萬(wàn)個(gè)VAX-11/780工作站,進(jìn)步驚人,但提升速率在下降,” Krste Asanovic博士說(shuō)。“九十年代開(kāi)始神經(jīng)計(jì)算機(jī)已不能和微縮的通用計(jì)算機(jī)進(jìn)行競(jìng)爭(zhēng)了,但現(xiàn)在通用微處理器的工藝微縮停止了。”
三、圖像處理器(GPU)
GPU和CPU之所以大不相同,是由于其設(shè)計(jì)目標(biāo)的不同,它們分別針對(duì)了兩種不同的應(yīng)用場(chǎng)景。CPU需要很強(qiáng)的通用性來(lái)處理各種不同的數(shù)據(jù)類(lèi)型,同時(shí)又要邏輯判斷又會(huì)引入大量的分支跳轉(zhuǎn)和中斷的處理。這些都使得CPU的內(nèi)部結(jié)構(gòu)異常復(fù)雜。而GPU面對(duì)的則是類(lèi)型高度統(tǒng)一的、相互無(wú)依賴(lài)的大規(guī)模數(shù)據(jù)和不需要被打斷的純凈的計(jì)算環(huán)境。
圖像處理器是在90年代中后期出現(xiàn)的,GPU的主要功能是產(chǎn)生3D圖像,包括高端的浮點(diǎn)單元,提供工作站—像PC的圖形,配置圖形管道等,但在初期它并不能真正的進(jìn)行編程。
進(jìn)入21世紀(jì)以后,特別是2001年到2005年之間,隨著時(shí)間的推移圖像處理器加入了更多的可編程性能。例如,用來(lái)寫(xiě)小程序的新語(yǔ)言Cg在每個(gè)格點(diǎn)或每個(gè)像素進(jìn)行,也在Windows DirectX變體上進(jìn)行。出現(xiàn)了大量并行的(每框約上百萬(wàn)的格點(diǎn)或像素)但是非常嚴(yán)格的編程模型,某些用戶(hù)注意到它也可以做通用計(jì)算,將輸入輸出數(shù)據(jù)映射到圖像,計(jì)算格點(diǎn)和像素陰影。這些難以置信的編程模型,必須使用圖像管道模型進(jìn)行通用計(jì)算。
通用圖像處理器(GP-GPU)的里程碑是2006年英偉達(dá)發(fā)布的GeForce 8800GPU,它可以支持一個(gè)新的可編程語(yǔ)言:CUDA,這是一個(gè)“統(tǒng)一計(jì)算設(shè)備架構(gòu)”。接著,行業(yè)更廣泛地推動(dòng)了一個(gè)有同樣想法的中立供應(yīng)商版本OpenCL,其想法是,利用GPU的計(jì)算性能和存儲(chǔ)器帶寬來(lái)加速某些內(nèi)核通用計(jì)算性能。這樣就產(chǎn)生了附加處理器模型:主機(jī)CPU將數(shù)據(jù)并行內(nèi)核發(fā)布到GPU執(zhí)行,時(shí)間久了,就演變成為了速度最快的執(zhí)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練的標(biāo)準(zhǔn)方式。
此時(shí)GPU已經(jīng)不再局限于3D圖形處理了,GPU通用計(jì)算技術(shù)發(fā)展引起業(yè)界的關(guān)注,事實(shí)也證明在浮點(diǎn)運(yùn)算、并行計(jì)算等部分計(jì)算方面,GPU可以提供數(shù)十倍乃至于上百倍于CPU的性能。
GPU采用了數(shù)量眾多的計(jì)算單元和超長(zhǎng)的流水線,但只有非常簡(jiǎn)單的控制邏輯并省去了Cache。而CPU不僅被Cache占據(jù)了大量空間,而且還有有復(fù)雜的控制邏輯和諸多優(yōu)化電路,相比之下計(jì)算能力只是CPU很小的一部分。
所以與CPU擅長(zhǎng)邏輯控制和通用類(lèi)型數(shù)據(jù)運(yùn)算不同,GPU擅長(zhǎng)的是大規(guī)模并發(fā)計(jì)算(Concurrent computing),這也正是人工智能等所需要的。所以GPU除了圖像處理,也越來(lái)越多的參與到計(jì)算當(dāng)中來(lái)。
四、定制AI芯片的廣泛努力
在圖像處理器GPU逐漸演變?yōu)橥ㄓ糜?jì)算處理器的時(shí)候,許多定制芯片廠商也在努力開(kāi)發(fā)定制AI芯片。例如Google推出的TPU(張量處理器)、TPUv2、TPUv3等云計(jì)算系列芯片,也有人稱(chēng)之為AI協(xié)同處理器。TPU的性能比現(xiàn)代CPU和GPU高15-30倍,每瓦性能提高30-80倍。
AI 加速器設(shè)計(jì)的原型是邊緣推理(Inference at edge),它最關(guān)切的因素是成本、性能和功耗,需要高壓縮的模塊來(lái)減少系統(tǒng)成本和功耗,以及成本性能績(jī)效。
云端推理最關(guān)切的是(交互)延遲、吞吐量和成本,響應(yīng)用戶(hù)要求的快速性和可預(yù)見(jiàn)力,因?yàn)橛性S許多多的用戶(hù),因此降低每個(gè)用戶(hù)的成本是關(guān)鍵。
云端訓(xùn)練關(guān)切的是性能。價(jià)值是得出的數(shù)據(jù)模型,要為高的成本/功耗辯解。單次訓(xùn)練可達(dá)數(shù)周,優(yōu)化技能人才開(kāi)發(fā)稀缺資源。這個(gè)更像傳統(tǒng)的HPC,而不像傳統(tǒng)的云,追求極限的工藝,最先進(jìn)的工藝節(jié)點(diǎn),互連、冷卻技術(shù)等等。
總的來(lái)說(shuō),云AI加速器的共性包括,專(zhuān)用矩陣引擎、壓縮的定點(diǎn)/浮點(diǎn)格式、多片片上暫存存儲(chǔ)器、先進(jìn)節(jié)點(diǎn)中的全掩模板、最高帶寬的外部DRAM、最高帶寬的串行鏈路等。
假設(shè)以上條件全部成立,AI能夠成功嗎?Krste Asanovic博士給出了三點(diǎn)預(yù)測(cè):第一、算法變化很快但模式經(jīng)久;第二、摩爾定律死了但阿姆達(dá)爾定律(Amdahl’s Law)還活著;第三、軟件最重要,但你永遠(yuǎn)無(wú)法完成它。阿姆達(dá)爾定律表明,即使到了多核時(shí)代,并發(fā)程序的開(kāi)發(fā)或者說(shuō)提升程序的并發(fā)度仍然具有十分重要的意義。
阿姆達(dá)爾定律是一個(gè)計(jì)算機(jī)科學(xué)界的經(jīng)驗(yàn)法則,可用于指導(dǎo)CPU的可擴(kuò)展設(shè)計(jì)。阿姆達(dá)爾定律指出,CPU的發(fā)展有兩個(gè)方向,更快的CPU或者更多的核。目前看來(lái)發(fā)展的重心偏向了CPU的核數(shù)。但有時(shí)我們會(huì)發(fā)現(xiàn)雖然擁有更多的核,當(dāng)我們同時(shí)運(yùn)行幾個(gè)程序時(shí),只有少數(shù)幾個(gè)線程處于工作中,其它的并未做什么工作,實(shí)踐當(dāng)中,并行運(yùn)行多個(gè)線程往往并不能顯著提升性能,程序往往并不能有效的利用多核,在多核處理器中加速比是衡量并行程序性能的一個(gè)重要參數(shù)。
AI的算法在流片和布局中一直在改變,按照伯克利的觀點(diǎn):“Dwarfs侏儒”是任何計(jì)算問(wèn)題的最基本因素。Krste Asanovic博士說(shuō),“我不知道AI算法的未來(lái)是什么樣子,但是他們將使用這些模式,設(shè)計(jì)永遠(yuǎn)是這些模式的靈活組合。”
摩爾定律死了,阿姆達(dá)爾定律活著,而且是活蹦亂跳地活著。
五、應(yīng)用于AI加速器的RISC-V
軟件被定義為通過(guò)優(yōu)化算法訓(xùn)練的神經(jīng)網(wǎng)絡(luò)構(gòu)架以解決特定的任務(wù)。今天,神經(jīng)網(wǎng)絡(luò)是用來(lái)學(xué)習(xí)解決問(wèn)題的實(shí)際工具,其中涉及通過(guò)大數(shù)據(jù)集進(jìn)行分類(lèi)學(xué)習(xí)。
做研發(fā)的人有深切的體會(huì),“在流片前永遠(yuǎn)結(jié)束不了軟件工作,在流片前不太可能完成1%的軟件工作,傾向于只編碼了內(nèi)核(1%)還剩99%,但你要記著阿姆達(dá)爾定律!”Krste Asanovic博士強(qiáng)調(diào),“如果系統(tǒng)很難編程,那么就不會(huì)有軟件了;如果你沒(méi)有軟件,你就不會(huì)有一個(gè)加速器!”
RISC-V是免費(fèi)且開(kāi)放的ISA,通過(guò)開(kāi)放標(biāo)準(zhǔn)協(xié)作推動(dòng)實(shí)現(xiàn)處理器創(chuàng)新的全新時(shí)代。RISC-V也可成為定制加速器的設(shè)計(jì)基礎(chǔ)。
應(yīng)用一個(gè)簡(jiǎn)單的基礎(chǔ)ISA對(duì)所有核可以大大簡(jiǎn)化軟件。例如,在你需要一個(gè)高性能Unix兼容核去運(yùn)行操作系統(tǒng)時(shí),建立一個(gè)超標(biāo)量體系結(jié)構(gòu)OoO核;在你微代碼調(diào)度需要VLIW的時(shí)候,按順序構(gòu)建超標(biāo)體系結(jié)構(gòu);在你需要低精度SIMD的地方,使用標(biāo)準(zhǔn)矢量擴(kuò)展;在你想需要利用2D優(yōu)化的地方(例如:多路脈動(dòng)陣列、卷積),使用2D擴(kuò)展(正在進(jìn)行中);在你需要中斷/響應(yīng)I/O管理核的地方,建立嵌入式核;以及相同的存儲(chǔ)器模塊,同步基元,編程工具流程(C-結(jié)構(gòu)包),查錯(cuò),跟蹤……等等。
RISC-V可定制化核有許多豐富的選擇,包括被連接到相干高寬帶結(jié)構(gòu)的核和即將到來(lái)的矢量擴(kuò)展、客戶(hù)自定義指令擴(kuò)展、依附在相干構(gòu)造上的AI加速器等。
一個(gè)好消息是開(kāi)源的Nvidia NVDLA 在其SiFive流行芯片上已經(jīng)得到演示,SiFive Design Sharer提供了簡(jiǎn)潔全面的ASIC設(shè)計(jì)服務(wù),以及提供應(yīng)用于高寬帶存儲(chǔ)系統(tǒng)的HBM2 IP 和應(yīng)用于柔性芯片連接的Interlaken IP等眾多人工智能RISC-V IP核。