從手機(jī)里的神經(jīng)網(wǎng)絡(luò)引擎,到數(shù)據(jù)中心CPU的AI算法處理單元;不僅原來(lái)做圖像處理GPU的公司現(xiàn)在都往AI領(lǐng)域去卷,甚至那些看起來(lái)和芯片沒(méi)什么關(guān)系的互聯(lián)網(wǎng)公司,都紛紛下場(chǎng)去做自己的人工智能芯片了。
雖然AI芯片看起來(lái)卷成這樣,但實(shí)際上仍然還有很大的發(fā)展空間。就像英偉達(dá)抓住了GPU在人工智能應(yīng)用里的機(jī)遇一樣,只要有公司能夠抓住這兩年剛剛興起的新機(jī)遇,就有可能成為下一個(gè)百億美元市值的公司。
摩爾定律的黃昏與AI芯片的興起
提到芯片的發(fā)展,絕對(duì)繞不開(kāi)一個(gè)重要的原則,那就是摩爾定律。
摩爾定律并不是什么數(shù)學(xué)或者物理學(xué)的定律或者公理,它是英特爾創(chuàng)始人戈登摩爾發(fā)現(xiàn)的一個(gè)經(jīng)驗(yàn)規(guī)律。摩爾定律講的是,一顆芯片上包含晶體管數(shù)量,每隔18個(gè)月就會(huì)增加一倍。
從摩爾定律可以推廣出來(lái)很多重要的推論:由于晶體管數(shù)量翻倍了,芯片的性能也會(huì)翻倍;為了實(shí)現(xiàn)晶體管數(shù)量的翻倍,每個(gè)晶體管的大小是在不斷縮小的。這也是為什么我們看到芯片的制造工藝從幾十納米,不斷縮小到十幾納米,再到今天的幾納米。
以前晶體管的長(zhǎng)寬高大約各是1000個(gè)原子,現(xiàn)在晶體管的尺寸變成了長(zhǎng)寬高各10個(gè)原子,尺寸縮小了一百萬(wàn)倍。晶體管數(shù)量越小,它工作所需要的電壓和電流就越小,這樣它們的能耗就越低,這樣整個(gè)芯片的功耗就越來(lái)越低。
總之,摩爾定律描述了一個(gè)非常理想的芯片發(fā)展圖景,它體現(xiàn)的其實(shí)是芯片制造工藝的不斷發(fā)展。關(guān)鍵是,在過(guò)去的一二十年里,芯片的發(fā)展還真的是按照摩爾定律規(guī)劃的道路在不斷前進(jìn)的。
不過(guò)按照這個(gè)指數(shù)級(jí)的規(guī)律發(fā)展下去,芯片會(huì)變得無(wú)限小、功耗無(wú)限低、性能無(wú)限高:這顯然是不可能的。
因此在過(guò)去幾年,我們看到芯片工藝的發(fā)展明顯放緩了。也就是說(shuō),單純靠工藝的進(jìn)步、去換取芯片性能的提升這個(gè)簡(jiǎn)單粗暴的方法,已經(jīng)越來(lái)越不好用了。所以人們關(guān)注的重點(diǎn),就轉(zhuǎn)移到了芯片本身架構(gòu)的創(chuàng)新上了。
拿CPU舉例,不管是x86、ARM還是近年來(lái)迅猛崛起的RISC-V,其實(shí)他們的指令集本身自從誕生之日起就沒(méi)有什么太大的改變。但是基于這些指令集的芯片架構(gòu),卻在這些年里有著巨大的變化。最明顯的就是x86陣營(yíng)的英特爾和AMD,每年都會(huì)推出各自的新品,同時(shí)也在不斷設(shè)計(jì)和創(chuàng)造新的架構(gòu)。
但是問(wèn)題又來(lái)了,CPU屬于通用芯片,它最大的有點(diǎn)就是能做很多很多事情,但缺點(diǎn)就是雖然什么都能干、但什么都做不到最好。
所以有人又在想,既然人工智能這么重要,為什么不直接為它單獨(dú)設(shè)計(jì)制造一種芯片、來(lái)專(zhuān)門(mén)為它服務(wù)呢?
結(jié)果發(fā)現(xiàn)這么想的人還不止一個(gè),于是幾乎在同一時(shí)間,世界上出現(xiàn)了好多好多AI芯片公司,像谷歌和百度這樣的互聯(lián)網(wǎng)公司,也紛紛下場(chǎng)做AI芯片了。
這些看似自然而然的進(jìn)化,背后其實(shí)有著很強(qiáng)的客觀規(guī)律,而且這個(gè)客觀規(guī)律在35年前就被發(fā)現(xiàn)了。
牧本周期
1987年,在日立半導(dǎo)體和索尼擔(dān)任高級(jí)職位的牧本次生提出,芯片的類(lèi)型有規(guī)律地在"定制化"和"通用化"之間不斷交替,變化一次的周期大約為10年,這個(gè)發(fā)現(xiàn)也被稱(chēng)作牧本周期。由于這個(gè)變化的過(guò)程特別像一個(gè)鐘擺,因此牧本周期也被業(yè)界稱(chēng)作半導(dǎo)體行業(yè)之?dāng)[。
牧本周期
從1957年開(kāi)始,牧本周期成功解釋了微處理器、專(zhuān)用集成電路、FPGA這些芯片類(lèi)型的出現(xiàn)和發(fā)展,這個(gè)理論也成功預(yù)測(cè)了1997-2007之間FPGA的繁榮。在2007年前后,牧本本人對(duì)"牧本浪潮"的理解做了新的解釋?zhuān)J(rèn)為未來(lái)定制品或者標(biāo)準(zhǔn)品這兩個(gè)極端不會(huì)再特別"涇渭分明",而將迎來(lái)兩者在某種程度上共存共榮的時(shí)代,因?yàn)橛懈嗟募夹g(shù)手段和方案可以實(shí)現(xiàn)這樣的平衡。
2007-2017的這個(gè)時(shí)代是FPGA和領(lǐng)域定制芯片共同繁榮的階段,這也能很好的解釋了這個(gè)期間GPU的爆發(fā),以及互聯(lián)網(wǎng)和科技大廠的FPGA探索。那么對(duì)于我們現(xiàn)在所在的2017年到2027年這個(gè)周期,其實(shí)又是往下一代架構(gòu)遷移的過(guò)程,因此出現(xiàn)了RISC-V等各類(lèi)新架構(gòu)的蓬勃興起。仿佛芯片行業(yè)每一步的發(fā)展,其實(shí)都被這個(gè)大棋局安排好了。
那么對(duì)于AI芯片來(lái)說(shuō),它在這個(gè)大棋局里的哪個(gè)位置呢?
答案就是:專(zhuān)用性和通用性的更深層次的共存,也就是通過(guò)軟硬件的跨層優(yōu)化在架構(gòu)上實(shí)現(xiàn)更廣闊領(lǐng)域的通用、融合。
AI芯片,還能玩出什么新花樣?
前面提到,谷歌和百度這些互聯(lián)網(wǎng)大廠都紛紛下場(chǎng)做AI芯片了。谷歌的TPU大家可能了解的比較多,那么百度到底做了什么芯片呢?我們不妨結(jié)合牧本周期,先來(lái)簡(jiǎn)單梳理一下百度的AI芯片自研之路。
2010年,百度就開(kāi)始使用FPGA做AI芯片架構(gòu)的開(kāi)發(fā),這正好是在AI芯片爆發(fā)的周期,也是FPGA和GPU共榮的時(shí)代。到2017年周期轉(zhuǎn)換的時(shí)候,百度已經(jīng)部署了超過(guò)12000片F(xiàn)PGA作為AI加速器了,并且形成了自己的XPU架構(gòu)。
2018年,新周期開(kāi)始,百度同時(shí)發(fā)布了自主研發(fā)的AI芯片昆侖芯,2019年流片成功,2020年開(kāi)始量產(chǎn)。
在2021年6月,百度的智能芯片及架構(gòu)部獨(dú)立出來(lái)成立了昆侖芯公司,馬上就成立一周年了。昆侖芯首輪融資的估值就高達(dá)130億人民幣,是個(gè)妥妥的獨(dú)角獸。也是在去年,他們推出了昆侖芯第二代芯片。
我相信百度或者昆侖芯肯定不是按照牧本周期這個(gè)劇本去發(fā)展的,但通過(guò)我們的梳理可以很清楚的看到,他們的發(fā)展路線和牧本周期的預(yù)測(cè)高度重合。這其實(shí)就體現(xiàn)了很多芯片發(fā)展的客觀規(guī)律。
之所以會(huì)形成鐘擺一樣的發(fā)展規(guī)律,是因?yàn)槟硞€(gè)方向發(fā)展到極致的時(shí)候都會(huì)收到各種壓力,推著他走向另一個(gè)方向。比如以AI芯片為代表的定制化發(fā)展到一定程度,就勢(shì)必面臨著要求縮短開(kāi)發(fā)周期、減少成本等等這些要求。同樣的,通用芯片發(fā)展到頂峰,也會(huì)有差異化、進(jìn)一步提高性能和能效等等這些壓力。
半導(dǎo)體行業(yè)之?dāng)[
在多方壓力下,其實(shí)能夠產(chǎn)生很多有意思的芯片架構(gòu)。昆侖芯就是一個(gè)很好的例子,他們既沒(méi)有做像英偉達(dá)GPU那樣從渲染演進(jìn)過(guò)來(lái)的方案,也沒(méi)有做谷歌TPU那樣的專(zhuān)用方案,而是將通用性和專(zhuān)用型結(jié)合在了一起,并且提出了一種名叫XPU的AI芯片架構(gòu),來(lái)實(shí)現(xiàn)通用性和高性能的平衡。
昆侖芯的XPU架構(gòu)是在2017年的HotChips大會(huì)上提出來(lái)的,有意思的是,這屆HotChips大會(huì)上谷歌也發(fā)布了TPU的V2架構(gòu)。
XPU里的X其實(shí)是多樣化的意思,也就是說(shuō)它并不是針對(duì)某種特定的AI模型或者框架來(lái)設(shè)計(jì)的,而是能夠支持圖像語(yǔ)音自然語(yǔ)言處理等等多種模型。它之所以有很強(qiáng)的通用性,是因?yàn)榧闪藥装賯€(gè)通用小核,每個(gè)核有自己的緩存和執(zhí)行流水線,并且可以通過(guò)軟件實(shí)現(xiàn)編程。
除了通用性之外,它還集成了名叫軟件定義加速器SDA的硬件結(jié)構(gòu),專(zhuān)門(mén)針對(duì)深度神經(jīng)網(wǎng)絡(luò)應(yīng)用進(jìn)行加速,可以有很強(qiáng)的吞吐量性能。有了大量的通用處理器核,和專(zhuān)用的AI加速單元,就能夠最大程度上支持任務(wù)的多樣性,并且在性能和效率之間實(shí)現(xiàn)良好的平衡。
也就是說(shuō),既能通過(guò)眾核的結(jié)構(gòu)高效處理計(jì)算密集型的任務(wù),還能通過(guò)AI專(zhuān)用單元進(jìn)一步提高能效,并且還可以直接使用C/C++這樣的高層語(yǔ)言,對(duì)XPU進(jìn)行編程。雖然當(dāng)時(shí)XPU是基于FPGA實(shí)現(xiàn)的,但是通過(guò)軟硬件協(xié)同的架構(gòu)創(chuàng)新,對(duì)XPU的編程和開(kāi)發(fā)都不需要使用Verilog這樣硬件專(zhuān)用的RTL語(yǔ)言,開(kāi)發(fā)效率就有極大的提升。
昆侖芯CEO歐陽(yáng)劍說(shuō):"AI計(jì)算是一個(gè)多樣性的計(jì)算,不僅僅有tensor。由于這個(gè)思維局限,行業(yè)內(nèi)的一些計(jì)算架構(gòu)無(wú)法做到各種場(chǎng)景通用。我們團(tuán)隊(duì)很早就有這個(gè)認(rèn)知,同時(shí)產(chǎn)生了更大的愿景——在AI以及通用計(jì)算、高性能計(jì)算等都做得更好。昆侖芯XPU架構(gòu)就是這么定義出來(lái)的。"
接下來(lái),百度和昆侖芯就把XPU架構(gòu)從FPGA上拿出來(lái),并且專(zhuān)門(mén)做成了一個(gè)芯片。這樣做有很多好處,特別是在高性能和低功耗這兩個(gè)方面,肯定能比單純的FPGA實(shí)現(xiàn)能更上一個(gè)新的臺(tái)階。
2019年12月,昆侖芯1代AI芯片完成研發(fā),它能在低于150瓦的功耗下、實(shí)現(xiàn)256TOPS的INT8處理能力,以及每秒260萬(wàn)億次的定點(diǎn)數(shù)運(yùn)算性能,和同期的英偉達(dá)V100S、以及寒武紀(jì)的思遠(yuǎn)270相比,昆侖芯1代的算力是更高的。
有了1代的成功,整個(gè)XPU芯片部門(mén)干脆就直接從百度獨(dú)立出來(lái)。從商業(yè)的角度去看這件事情,成立昆侖芯并單獨(dú)融資是一件很合理的事情。芯片是一個(gè)極其燒錢(qián)的行業(yè),用最新工藝去流片生產(chǎn)一次,整個(gè)周期的成本就會(huì)高達(dá)1億美元。再加上其他的各種研發(fā)費(fèi)用和開(kāi)支,即便是互聯(lián)網(wǎng)大廠,面對(duì)這樣的投入可能也要眉頭一緊。
但可能更重要的是,設(shè)計(jì)制造出來(lái)的芯片其實(shí)可以用在更多的地方,不僅僅只在某個(gè)互聯(lián)網(wǎng)大廠的數(shù)據(jù)中心里。因此獨(dú)立出來(lái)也能更好的幫助芯片公司在更廣闊的空間里進(jìn)一步發(fā)展。
有了各種資源的支持,昆侖芯在2021年下半年推出了第二代芯片,它使用7納米工藝制造,可以達(dá)到256TOPS的INT8算力、128TFLOPS的FP16算力。接口方面支持GDDR6高速內(nèi)存,提供高達(dá)512GBps的存儲(chǔ)帶寬,以及200GBps的多芯片互聯(lián)帶寬,搭載這個(gè)芯片的加速卡的實(shí)際性能,是業(yè)界同類(lèi)GPU產(chǎn)品的1.5-2倍。軟件方面提供了專(zhuān)門(mén)的開(kāi)發(fā)條件,包括編譯器調(diào)試器和優(yōu)化工具,支持C/C++高層語(yǔ)言編程。
事實(shí)上,很多算法開(kāi)發(fā)者并不關(guān)心自己的算法是通過(guò)什么芯片實(shí)現(xiàn)的,他們關(guān)心的是算法層面精度夠不夠、性能好不好。所以昆侖芯還集成了AI應(yīng)用中的圖編譯和優(yōu)化功能,并且支持上層的主流開(kāi)源框架,比如百度飛槳、PyTorch、TensorFlow等等。它提供的圖編譯引擎能把開(kāi)源框架的AI模型,自動(dòng)轉(zhuǎn)換為中間表達(dá),然后根據(jù)底層的硬件結(jié)構(gòu)進(jìn)行計(jì)算圖優(yōu)化。
除了芯片本身,還有什么同樣重要?
AI芯片的一個(gè)非常重要的發(fā)展方向,就是軟硬件的協(xié)同優(yōu)化和跨層優(yōu)化。一個(gè)方面做好了是遠(yuǎn)遠(yuǎn)不夠的,需要多個(gè)方面都做好,并且把軟硬件看成一個(gè)完整的系統(tǒng),然后進(jìn)行統(tǒng)一的優(yōu)化和整合。
這樣做固然很難,但一旦做好了就會(huì)獲得巨大的回報(bào)。例如,昆侖芯將很多單元都融合在軟件定義加速器里面,形成了一個(gè)復(fù)雜的流水線。這樣雖然能讓軟件定義加速器有很好的性能,但是也增加了編程的難度。所以他們就又通過(guò)軟硬件的協(xié)同和跨層優(yōu)化,通過(guò)編程模型編譯器及硬件架構(gòu)的集合,實(shí)現(xiàn)了軟件定義加速器和通用核很好的融合,使得加速器代碼實(shí)現(xiàn)時(shí)感受不到背后復(fù)雜的架構(gòu)和流水線,讓寫(xiě)代碼非常簡(jiǎn)單易用,同時(shí)能夠極大地釋放硬件性能、同時(shí)保證極高的通用性。
昆侖芯軟件架構(gòu)
除了芯片的軟硬件本身,AI芯片公司往往還會(huì)更進(jìn)一步,就是提供系統(tǒng)級(jí)解決方案。這其實(shí)本質(zhì)就是讓使用者直接拿過(guò)來(lái)就能用,而不是只賣(mài)一顆顆芯片,讓用戶(hù)自己去設(shè)計(jì)主板硬件和系統(tǒng)。
再拿昆侖芯舉例,他們提供了多種現(xiàn)成的AI加速卡,比如面向邊緣推理應(yīng)用的K100、面向數(shù)據(jù)中心推理的K200和R200,以及面向數(shù)據(jù)中心大規(guī)模訓(xùn)練的R480-X8加速器組。能夠在不同的應(yīng)用場(chǎng)景和需求下,提供對(duì)應(yīng)的產(chǎn)品和方案。
再?gòu)纳虡I(yè)的角度來(lái)看,AI芯片的靈活性,其實(shí)并不只是產(chǎn)品的靈活性,還包括商業(yè)模型的靈活性。特別是對(duì)于初創(chuàng)公司來(lái)說(shuō),做出芯片只是萬(wàn)里長(zhǎng)征的第一步,更重要的是讓用戶(hù)把芯片用起來(lái)。
用行業(yè)黑話(huà),就是讓芯片在特定場(chǎng)景里落地。
這就需要對(duì)業(yè)務(wù)場(chǎng)景的深刻理解,并且在場(chǎng)景和應(yīng)用里不斷進(jìn)行試錯(cuò)和快速迭代,這也是擁有龐大生態(tài)的互聯(lián)網(wǎng)企業(yè)去做AI芯片的先天優(yōu)勢(shì)。
所以對(duì)于AI芯片來(lái)說(shuō),他的核心競(jìng)爭(zhēng)點(diǎn)絕不僅僅是技術(shù),生態(tài)和落地往往更加重要。
(注:本文不代表老石任職單位的觀點(diǎn)。)