英偉達帝國的一道裂縫
2012年,AI圈發生了兩件大事,按時間順序,第一件是谷歌組團已久的Google Brain發佈“出道作”——一個能夠識別貓的深度學習網絡“谷歌貓”,74.8%的識別準確率,比知名識別圖像大賽ImageNet前一年獲勝算法的74%還要高出0.8%。
但谷歌的高光時刻只持續了幾個月。2012年12月,最新一屆ImageNet的獲勝者出爐,深度學習大神Hinton及其弟子帶着卷積神經網絡AlexNet,將識別正確率一舉提高到了84%,由此開啓了之後十年的AI革命,谷歌貓則被埋進了歷史的塵埃之中。
Hinton和兩位學生,2012年
讓業內震驚的不只是ImageNet模型本身。這個需要1400萬張圖片、總計262千萬億次浮點運算訓練的神經網絡,一個星期的訓練過程中僅用了四顆英偉達Geforce GTX 580。作爲參考,谷歌貓用了1000萬張圖片、16000顆CPU、1000臺計算機[1]。
傳言Google在這一年也秘密參加了比賽,其受到的震撼直接體現在接下來的行動上: Google一邊豪擲了4400萬美元收購了Hinton團隊,一邊馬上向英偉達下單大量GPU用來人工智能訓練,而且同時“掃貨”的還有微軟、Facebook等一衆巨頭。
英偉達成爲最大的贏家,股價在接下10年裡最高漲了121倍。一個帝國誕生了。
但帝國的上空,逐漸聚攏了兩朵烏雲。 當年向英偉達掃貨的Google,在三年後攜AlphaGo驚豔亮相,並在2017年擊敗了人類冠軍柯潔。 敏銳的人發現,驅動AlphaGo的芯片不再是英偉達的GPU,而是Google自研的TPU芯片。
再過三年,相似劇情重演。曾經被黃仁勳一度視爲標杆客戶的特斯拉也告別英偉達GPU,先是推出了以NPU爲核心的FSD車載芯片,然後又拿出了用來搭建AI訓練集羣的D1芯片——這意味着英偉達接連失去了AI時代裡兩個最重要的客戶。
到了2022年,全球IT週期進入下行階段,雲計算大廠紛紛削減數據中心的GPU採購預算,區塊鏈挖礦大潮也逐漸冷卻,加上美國對華芯片禁令導致無法向國內出售A100/H100等高端顯卡,英偉達庫存暴增,股價從最高點一度跌去了2/3。
2022年底ChatGPT橫空出世,GPU作爲大模型“煉丹”的燃料再次遭到哄搶,英偉達獲得喘息,但第三朵烏雲隨之而來:2023年4月18號,著名科技媒體The Information爆料:本輪AI浪潮的發起者微軟,正在秘密研發自己的AI芯片[2]。
這款名叫Athena的芯片由臺積電代工,採用5nm先進製程,微軟研發團隊人數已經接近300人。很明顯,這款芯片目標就是替代昂貴的A100/H100,給OpenAI提供算力引擎,並最終一定會通過微軟的Azure雲服務來搶奪英偉達的蛋糕。
微軟目前是英偉達H100最大的採購方,甚至一度傳出要“包圓”H100全年的產能。來自微軟的分手信號無疑是一道晴天霹靂,要知道,即使在Intel最灰暗的時候,其客戶也沒有一家“敢於”自造CPU芯片(除了蘋果,但蘋果並不對外銷售)。
儘管英偉達目前憑藉GPU+NVlink+CUDA壟斷了AI算力90%的市場,但帝國已經出現了第一道裂縫。
01 本不爲AI而生的GPU
打從一開始,GPU就不是爲AI所生。
1999年10月英偉達發佈了 GeForce 256 ,這是一款基於臺積電220納米工藝、集成了2300萬個晶體管的圖形處理芯片。英偉達把Graphics Processing Unit的首字母「GPU」提煉出來,把GeForce 256冠以“世界上第一塊GPU”稱號,巧妙地定義了GPU這個新品類,並佔據這個詞的用戶心智直到今天。
而此時人工智能已經沉寂多年,尤其是深度神經網絡領域,Geoffery Hinton和Yann LeCun等未來的圖靈獎獲得者們還在學術的冷板凳上坐着,他們萬萬不會想到自己的職業生涯,會被一塊本來爲遊戲玩家開發的GPU所徹底改變。
GPU爲誰所生?圖像 。更準確地說,是爲CPU從圖像顯示的苦力活中解放出來而生。圖像顯示的基本原理是將每一幀的圖像分割成一顆顆像素,再對其進行頂點處理,圖元處理,柵格化、片段處理、像素操作等多個渲染處理,最終得以顯示在屏幕上。
從像素到圖像的處理過程 圖源:graphics compendium
爲什麼說這是苦力活呢?做一個簡單的算術題:
假定屏幕上有30萬顆像素,以60fps幀率計算,每秒需要完成1800萬次渲染,每次包含上述五個步驟,對應五條指令,也就是說,CPU每秒要完成9000萬條指令才能實現一秒的畫面呈現,作爲參考,當時英特爾性能最高的CPU每秒算力才6000萬次。
不怪CPU弱,而是其本就以線程調度見長,爲此將更多的空間讓渡給了控制單元和存儲單元,用於計算的計算單元只佔據20%的空間。GPU則相反,80%以上空間是計算單元,帶來了超強並行計算能力,更適合圖片顯示這種步驟固定、重複枯燥的工作。
CPU和GPU內部結構,綠色部分爲運算單元
直到幾年後,一些人工智能學者才意識到,具備這樣特性的GPU也適用於深度學習的訓練。很多經典的深度神經網絡架構早在20世紀下半葉就已經被提出,但因爲缺乏訓練它們的計算硬件,很多研究只能“紙上談兵”,發展長期停滯。
1999年10月的一聲炮響,給人工智能送來了GPU。深度學習的訓練過程是對每個輸入值根據神經網絡每層的函數和參數進行分層運算,最終得到一個輸出值,跟圖形渲染一樣都需要大量的矩陣運算——這恰巧就是GPU最擅長的東西。
一個典型的深度神經網絡架構;圖源:towards data science
不過圖像顯示雖然數據處理量龐大,但大部分步驟是固定的,而深度神經網絡一旦運用至決策領域,會涉及到分支結構等複雜情況,每層的參數又需要基於海量數據正負反饋訓練來不斷修正。 這些差別爲日後GPU對於AI的適應性埋下了隱患。
如今的亞馬遜AI/ML總經理Kumar Chellapilla是最早吃到GPU螃蟹的學者。2006年他使用英偉達的 GeForce 7800 顯卡第一次實現了卷積神經網絡(CNN),發現比使用CPU要快4倍。這是已知最早將GPU用於深度學習的嘗試[3]。
Kumar Chellapilla和英偉達Geforce 7800
Kumar的工作並未引起廣泛的注意,很重要的原因是基於GPU編寫程序的複雜度很高。但恰在此時,英偉達於2007年推出了 CUDA平臺 ,開發者利用GPU來訓練深度神經網絡的難度大幅度降低,這讓深度學習教徒們看到了更多希望。
隨後便是2009年,斯坦福的吳恩達等人發表了突破性的一篇論文[6],GPU憑藉超過CPU 70倍的算力將AI訓練時間從幾周縮短到了幾小時。這篇論文爲人工智能的硬件實現指明瞭方向。GPU大大加速了AI從論文走向現實的過程。
Andrew Ng(吳恩達)
值得一提的是,吳恩達於2011年加入Google Brain,是開篇提到的谷歌貓項目領導者之一。Google Brain最終沒能用上GPU的原因,外人不得而知,但之後吳恩達離開谷歌加入百度前後,便一直有傳聞稱是因爲谷歌對GPU的態度不明。
經過無數人的探索,接力棒終於交到了深度學習大師Hinton的手上,此時時間已經指向了2012年。
2012年,Hinton和Alex Krizhevsky、Ilya Sutskeverz這兩位學生一起設計了一個深度卷積神經網絡AlexNet,計劃參加這一年的ImageNet大賽。但問題是如果用CPU來訓練AlexNet可能需要幾個月的時間,於是他們把目光轉向了GPU。
這顆在深度學習的發展歷史中至關重要的GPU,便是著名的“核彈顯卡” GTX 580 。作爲英偉達最新Fermi架構的旗艦產品,GTX 580被塞入512顆CUDA核心(上一代爲108顆),算力飛躍的同時,誇張的功耗和發熱問題也讓英偉達被賜名“核彈工廠”。
甲之砒霜,乙之蜜糖。跟用GPU訓練神經網絡時的“順滑”相比,散熱問題簡直不值一提。Hinton團隊用英偉達的CUDA平臺順利地完成了編程,在兩張GTX 580顯卡的支持下,1400萬張圖片的訓練只花了一個周,AlexNet順利奪冠。
由於ImageNet比賽和Hinton本人的影響力,所有人工智能學者都在一瞬間意識到了GPU的重要性。
兩年後,谷歌攜GoogLeNet模型參加ImageNet,以93%的準確率奪冠,採用的正是英偉達GPU,這一年所有參賽團隊GPU的使用數量飆升到了110塊。在比賽之外,GPU已經成爲深度學習的“必選消費”,給黃仁勳送來源源不斷的訂單。
這讓英偉達擺脫了移動端市場慘敗的陰影——2007年iPhone發佈後,智能手機芯片的蛋糕迅速膨脹,英偉達也試圖從三星、高通、聯發科等碗裡分一杯羹,但推出的Tegra處理器因爲散熱問題鎩羽而歸。最後反而是被GPU拯救的人工智能領域,反哺給了英偉達一條第二增長曲線。
但GPU畢竟不是爲了訓練神經網絡而生,人工智能發展的越快,這些問題暴露地就越多。
例如,雖然GPU跟CPU差異顯著,但兩者根子上都遵循馮·諾伊曼結構,存儲和運算是分離的。這種分離帶來的效率瓶頸,圖像處理畢竟步驟相對固定,可以通過更多的並行運算來解決,但在分支結構衆多的神經網絡中很是要命。
神經網絡每增加一層或一個分支,就要增加一次內存的訪問,存儲數據以供回溯,花費在這上面的時間不可避免。尤其在大模型時代,模型越大需要執行的內存訪問操作就越多——最後消耗在內存訪問上的能耗要遠比運算要高很多倍。
簡單比喻就是,GPU是一個肌肉發達(計算單元衆多)的猛男,但對於收到的每條指令,都得回過頭去翻指導手冊(內存),最後隨着模型大小和複雜度的提升,猛男真正幹活的時間很有限,反而被頻繁地翻手冊累到口吐白沫。
內存問題只是GPU在深度神經網絡應用中的諸多“不適”之一。英偉達從一開始就意識到這些問題,迅速着手“魔改”GPU,讓其更適應人工智能應用場景;而洞若觀火的AI玩家們也在暗渡陳倉,試圖利用GPU的缺陷來撬開黃仁勳帝國的牆角。
一場攻防戰就開始了。
02 Google和Nvidia的暗戰
面對排山倒海的AI算力需求和GPU的先天缺陷,黃仁勳祭出兩套應對方案,齊頭並進。
第一套,就是沿着“算力老仙,法力無邊”的路子,繼續暴力堆砌算力。 在AI算力需求每隔3.5個月就翻倍的時代,算力就是吊在人工智能公司眼前的那根胡蘿蔔,讓他們一邊痛罵黃仁勳的刀法精湛,一邊像舔狗一樣搶光英偉達所有的產能。
第二套,則是通過“改良式創新”,來逐步解決GPU跟人工智能場景的不匹配問題。 這些問題包括但不限於功耗、內存牆、帶寬瓶頸、低精度計算、高速連接、特定模型優化……從2012年開始,英偉達驟然加快了架構更新的速度。
英偉達發佈CUDA後,用統一的架構來支撐Graphics和Computing這兩大場景。2007年第一代架構登場,取名Tesla,這並非是黃仁勳想示好馬斯克,而是致敬物理學家尼古拉·特斯拉(最早還有一代是居里架構)。
之後,英偉達每一代GPU架構都以著名科學家來命名,如下圖所示。 在每一次的架構迭代中,英偉達一邊繼續堆算力,一邊在不“傷筋動骨”的前提下改良。
比如2011年的第二代 Fermi架構 ,缺點是散熱拉胯,而2012年的第三代架構 Kepler 就把整體設計思路從high-perfermance轉向power-efficient,改善散熱問題;而爲了解決前文提到的“肌肉傻瓜”的問題,2014年的第四代 Maxwell架構 又在內部增加更多的邏輯控制電路,便於精準控制。
爲了適應AI場景,英偉達“魔改”後的GPU某種程度上越來越像CPU——正如CPU優秀的調度能力是以犧牲算力爲代價一樣,英偉達不得不在計算核心的堆疊上剋制起來。但身背通用性包袱的GPU再怎麼改,在AI場景下也難敵專用芯片。
率先對英偉達發難的,是最早大規模採購GPU來進行AI計算的Google。
2014年憑藉GoogLeNet秀完肌肉後,Google就不再公開參加機器識別大賽,並密謀研發AI專用芯片。 2016年Google憑藉AlphaGo先聲奪人,贏下李世石後旋即推出自研的AI芯片TPU,以“爲AI而生”的全新架構打了英偉達一個措手不及。
TPU是 Tensor Processing Unit 的首字母縮寫,中文名叫做“張量處理單元”。如果說英偉達對GPU的“魔改”是拆了東牆補西牆,那麼TPU便是通過從根本上大幅降低存儲和連接的需求,將芯片空間最大程度讓渡給了計算,具體來說兩大手段:
第一是量化技術。 現代計算機運算通常使用高精度數據,佔用內存較多,但事實上在神經網絡計算大多不需要精度達到32位或16位浮點計算,量化技術的本質基本上是將32位/16位數字近似到8位整數,保持適當的準確度,降低對存儲的需求。
第二是脈動陣列, 即矩陣乘法陣列,這也是TPU與GPU最關鍵的區別之一。簡單來說,神經網絡運算需要進行大量矩陣運算,GPU只能按部就班將矩陣計算拆解成多個向量的計算,每完成一組都需訪問內存,保存這一層的結果,直到完成所有向量計算,再將每層結果組合得到輸出值。
而在TPU中,成千上萬個計算單元被直接連接起來形成矩陣乘法陣列,作爲計算核心,可以直接進行矩陣計算,除了最開始從加載數據和函數外無需再訪問存儲單元,大大降低了訪問頻率,使得TPU的計算速度大大加快,能耗和物理空間佔用也大大降低。
CPU、GPU、TPU內存(memory)訪問次數對比
Google搞TPU速度非常快,從設計、驗證、量產到最後部署進自家數據中心只花了15個月的時間。經過測試,TPU在CNN、LSTM、MLP等AI場景下的性能和功耗大大勝過了英偉達同期的GPU。壓力便一下子全部給到了英偉達。
被大客戶背刺的滋味不好受,但英偉達不會站着捱打,一場拉鋸戰開始了。
Google推出TPU的5個月後,英偉達也祭出了16nm工藝的 Pascal架構 。新架構一方面引入了著名的 NVLink高速雙向互聯技術 ,大幅提升連接帶寬;一方面模仿TPU的量化技術,通過降低數據精度來提升神經網絡的計算效率。
2017年,英偉達又推出了首個專爲深度學習設計的 架構Volta ,裡面第一次引入了 TensorCore ,專門用於矩陣運算的——雖然4×4的乘法陣列跟TPU 256×256的脈動陣列相比略顯寒酸,但也是在保持靈活和通用性的基礎上作出的妥協。
在英偉達V100中TensorCore實現的4x4矩陣運算
英偉達的高管對客戶宣稱:“Volta並不是Pascal的升級,而是一個全新的架構。”
Google也分秒必爭,2016年以後TPU在五年內更新了3代,2017年推出了TPUv2、2018年推出了TPUv3、2021年推出了TPUv4,並把數據懟到英偉達的臉上[4]:TPU v4比英偉達的A100計算速度快1.2~1.7倍,同時功耗降低1.3~1.9倍。
Google並不對外出售TPU芯片,同時繼續大批量採購英偉達的GPU,這讓兩者的AI芯片競賽停留在“暗鬥”而非“明爭”上。但畢竟Google把TPU其部署到自家的雲服務系統中,對外提供AI算力服務,這無疑壓縮了英偉達的潛在市場。
Google CEO Sundar Picha對外展示TPU v4
在兩者“暗鬥”的同時,人工智能領域的進展也在一日千里。2017年Google提出了革命性的Transformer模型,OpenAI隨即基於Transformer開發了GPT-1,大模型的軍備競賽爆發,AI算力需求自2012年AlexNet出現之後,迎來了第二次加速。
察覺到新的風向之後,英偉達在2022年推出Hopper架構,首次在硬件層面引入了 Transformer加速引擎 ,宣稱可以將基於Transformer的大語言模型的訓練時間提升9倍。基於Hopper架構,英偉達推出了“地表最強GPU”—— H100 。
H100是英偉達的終極“縫合怪”,一方面引入了各種AI優化技術,如量化、矩陣計算(Tensor Core 4.0)和Transformer加速引擎;另一方面則堆滿了英偉達傳統強項,如7296個CUDA核、80GB的HBM2顯存以及高達900GB/s的NVLink 4.0連接技術。
手握H100,英偉達暫時鬆一口氣,市面上尚未出現比H100更能打的量產芯片。
Google和英偉達的暗中拉鋸,同樣也是是一種相互成就: 英偉達從Google舶來了不少創新技術,Google的人工智能前沿研究也充分受益於英偉達GPU的推陳出新,兩者聯手把AI算力降低到大語言模型“踮着腳”能用的起的水平。風頭正勁者如OpenAI,也是站在這兩位的肩膀之上。
但情懷歸情懷,生意歸生意。圍繞GPU的攻防大戰,讓業界更加確定了一件事情:GPU不是AI的最優解,定製化專用芯片(ASIC)有破解英偉達壟斷地位的可能性。裂縫已開,循味而來的自然不會只有Google一家。
尤其是算力成爲AGI時代最確定的需求,誰都想吃飯的時候跟英偉達坐一桌。
03 一道正在擴大的裂縫
本輪AI熱潮除了OpenAI外,還有兩家出圈的公司,一家是AI繪圖公司Midjourney,其對各種畫風的駕馭能力讓無數碳基美工心驚膽戰;另外一家是Authropic, 創始人來自OpenAI,其對話機器人Claude跟ChatGPT打的有來有回。
但這兩家公司都沒有購買英偉達GPU搭建超算,而是使用Google的算力服務。
爲了迎接AI算力的爆發,Google用4096塊TPU搭建了一套超算(TPU v4 Pod),芯片之間用自研的光電路開關 (OCS) 互連,不僅可以用來訓練自家 的LaMDA、MUM和PaLM等大語言模型,還能給AI初創公司提供價廉物美的服務。
Google TPU v4 Pod超算
自己DIY超算的還有特斯拉。在推出車載FSD芯片之後,特斯拉在2021年8月向外界展示了用3000塊自家D1芯片搭建的超算Dojo ExaPOD。其中D1芯片由臺積電代工,採用7nm工藝,3000塊D1芯片直接讓Dojo成爲全球第五大算力規模的計算機。
不過兩者加起來,都比不過微軟自研Athena芯片所帶來的衝擊。
微軟是英偉達最大的客戶之一,其自家的Azure雲服務至少購買了數萬張A100和H100高端GPU,未來不僅要支撐ChatGPT天量的對話消耗,還要供給Bing、Microsoft 365、Teams、Github、SwiftKey等一系列要使用AI的產品中去。
仔細算下來,微軟要繳納的“Nvidia稅”是一個天文數字,自研芯片幾乎是必然。就像阿里當年算了一下淘寶天貓未來對雲計算、數據庫、存儲的需求,發現也是一個天文數字,於是果斷開始扶持阿里雲,內部展開轟轟烈烈的“去IOE”運動。
節省成本是一方面,垂直整合打造差異化是另一方面。 在手機時代,三星手機的CPU(AP)、內存和屏幕都是自產自銷,爲三星做到全球安卓霸主立下汗馬功勞。Google和微軟造芯,也是針對自家雲服務來進行芯片級優化,打造差異性。
所以,跟蘋果三星不對外出售芯片不同,Google和微軟的AI芯片雖然也不會對外出售,但會通過“AI算力雲服務”來消化掉英偉達一部分潛在客戶,Midjourney和Authropic就是例子,未來會有更多的小公司(尤其是AI應用層)選擇雲服務。
全球雲計算市場的集中度很高,前五大廠商(亞馬遜AWS、微軟Azure、Google Cloud、阿里雲和IBM)佔比超60%,都在做自己的AI芯片,其中Google的進度最快、IBM的儲備最強、微軟的衝擊最大、亞馬遜的保密做的最好、阿里做的困難最多。
國內大廠自研芯片,Oppo哲庫的結局會給每個入場的玩家投上陰影。但海外大廠做自研,人才技術供應鏈都可以用資金來構建出來,比如特斯拉當年搞FSD,挖來了硅谷大神Jim Keller,而Google研發TPU,直接請到了圖靈獎獲得者、RISC架構發明人David Patterson教授。
除了大廠外,一些中小公司也在試圖分走英偉達的蛋糕,如估值一度達到28億美金的 Graphcore ,國內的寒武紀也屬於此列。下表列舉了目前全球範圍內較爲知名的初創AI芯片設計公司。
AI芯片初創公司的困難在於:沒有大廠雄厚的財力持續投入,也不能像Google那樣自產自銷,除非技術路線獨闢蹊徑或者優勢特別強悍,否則在跟英偉達短兵相接時基本毫無勝算,後者的成本和生態優勢幾乎可以抹平客戶一切疑慮。
Start-up公司對英偉達的衝擊有限,黃仁勳的隱憂還是在那些身體不老實的大客戶身上。
當然,大廠現在還離不開英偉達。比如即使Google的TPU已經更新到了第4代,但仍然需要大批量採購GPU來跟TPU協同提供算力;特斯拉即使有了性能吹上天的Dojo超算,馬斯克在籌建AI新公司時仍然選擇向英偉達採購10000張GPU。
不過對於大廠的塑料友情,黃仁勳早就在馬斯克身上領略過。2018年馬斯克公開宣稱要自研車載芯片(當時用的是英偉達的DRIVE PX),黃仁勳在電話會議上被分析師當場質問,一度下不來臺。事後馬斯克發表了一番“澄清”,但一年之後特斯拉仍然頭也不回地離英偉達而去[5]。
大廠在省成本這方面,從來不會留情。PC機時代Intel的芯片雖然賣給B端,但消費者具有強烈的選擇自主性,廠商需要標榜“Intel Inside”;但在算力雲化時代,巨頭可以屏蔽掉一切底層硬件信息,未來同樣購買100TFlops算力,消費者能分得清哪部分來自TPU,哪部分來自GPU嗎?
因此,英偉達最終還是要直面那個問題:GPU的確不是爲AI而生,但GPU會不會是AI的最優解?
17年來,黃仁勳把GPU從單一的遊戲何圖像處理場景中剝離出來,使其成爲一種通用算力工具,礦潮來了抓礦潮,元宇宙火了跟元宇宙、AI來了抱AI,針對一個個新場景不斷“魔改”GPU,試圖在“通用性”和“專用性”之間找到一個平衡點。
覆盤英偉達過去二十年,其推出了數不清的改變業界的新技術: CUDA平臺、TensorCore、RT Core(光線追蹤)、NVLink、cuLitho平臺(計算光刻)、混合精度、Omniverse、Transformer引擎…… 這些技術幫助英偉達從一個二線芯片公司變成了全行業市值的南波腕,不可謂不勵志。
但一代時代應該有一個時代的計算架構,人工智能的發展一日千里,技術突破快到以小時來計,如果想讓AI對人類生活的滲透像PC機/智能手機普及時那樣大幅提升,那麼算力成本可能需要下降99%,GPU的確可能不是唯一的答案。
歷史告訴我們,再如日中天的帝國,可能也要當心那道不起眼的裂縫。
全文完,感謝您的閱讀。
關於「硅基研習社」:遠川研究所旗下新賬號,只研究三個方向:人工智能、機器人、芯片。深度思考,連接產業,追蹤浪潮,敬請關注。
參考資料
[1] ImageNet Classification with Deep Convolutional Neural Networks, Hinton
[2] Microsoft Readies AI Chip as Machine Learning Costs Surge, The Information
[3] High Performance Convolutional Neural Networks for Document Processing
[4] Google’s Cloud TPU v4 provides exaFLOPS-scale ML with industry-leading efficiency
[5] 特斯拉的AI野心,遠川研究所
[6] Large-scale Deep Unsupervised Learning using Graphics Processors
作者:何律衡/戴老闆
編輯:戴老闆
視覺設計:疏睿
責任編輯:李墨天