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