Evolution of the Graphics Processing Unit (GPU)
2021-12-13知識
【Evolution of the Graphics Processing Unit】是Micro雜誌在慶祝微處理器誕生50周年(Intel 4004)的專刊裏邀請輝達的幾位工程師撰寫的回顧式的文章,原文連結在這裏。最早讀這篇文章是收到了google scholar推播的通知,興沖沖地跑過去讀了一遍,覺得挺精彩。這個周末又有同事推薦,還提到了這一期專刊的內容,於是又讀了一遍這篇文章,順便還讀了幾篇其他文章(比如Intel的這篇回顧, Hennessy的這篇回顧,以及Faggin的這篇回顧),有些感觸,聊作記錄。
如果以
1971
年Intel 4004誕生記為微處理器元年的話,
22年
後,也就是
1993年
,NVIDIA這家公司才創立。如果我們以比較主流(比如以量化體系結構教材為參考)的體系結構技術演化代際來劃分的話,
1993
年還處於Instruction Level Parallelism的黃金時代。如果我們強調NVIDIA異構計算的架構內容的話,那麽直到
2006年
G80和CUDA釋出之後,GPU代表的異構計算範式才算進入開發者視野,彼時恰是體系結構技術從ILP向多核以及Thread Level Parallelism轉向的階段。直到
2012年
,Google基於48塊GTX680 GPU替換掉之前由16000塊CPU搭建的訓練系統完成廣受關註的「貓臉辨識」深度學習網路訓練,以及在同一年,由兩塊GeForce580支持訓練的AlexNet在ImageNet比賽上大放異彩,借AI這一撥再興起的東風,GPU才算在異構計算領域進入到一個黃金時代。而
17年
V100的釋出,憑借第一代FP16 TensorCore的加持,NV在面向AI場景的峰值算力和當時的Google TPU形成了on-par的態勢,避免了在關鍵時間點的技術掉隊。並且隨著接續幾年硬體的叠代,最終在最新釋出的MLPerf 1.1訓練送出的結果的8個模型中,有6個模型(ResNet50和SSD模型相較TPU V4仍有些微差距)取得了第一名的成績,才算是在技術上以及商業結果上暫時(這裏說暫時是因為已經能夠看到在未來一兩年內圍繞AI加速領域的激烈競爭態勢了,包括Intel/AMD這樣的傳統大廠,寒武紀/Graphcore/Habana/Cerebras等新興的AI芯片公司,以及AWS/Tesla/阿裏/Google的垂直整合AI硬軟技術棧,前行仍需如履薄冰)穩固了其在雲端AI訓練推理的龍頭地位。93年到06年,06年到12年,12年到17年,17年到21年,每一個跨越,都殊為不易。芯片行業的規律,使得一次大的架構變化從蘊釀想法到最終落地釋出,通常是以兩年為單位(我個人對一年完成一款重要芯片流片之類的新聞其實是不太感冒,之前包括一些大廠,還有一些創業公司,會用一年之內完成一款重要芯片的釋出說事,我總覺得明顯有悖芯片行業規律,希望這樣的新聞越少一些追捧對行業才更好一些),按這個規律推算,大體能夠看到每一個跨越階段所能夠提供的硬體層面的試錯機會數量。而硬體之外,還需要考慮到軟體及生態的建設(和試錯),這就更加復雜。說每一步重要決策如履薄冰,當不為過。自己在剛進入AI硬體行業的時候,還習慣性帶有比較多軟體的思維,等到略有一些體感以後,就會體會到這個行業很深的規律性和嚴肅性。僅靠加班加點和人海戰術並不能保證在這個行業裏的成功(雖然我也了解到這個行業裏有公司靠著極強的紀律性和人海壓力方式取得了不俗的成績,但接觸這個行業越久,反而會越覺得那種方式的損耗以及隱患和負作用可能是巨大的,之前的成功跟獨特的歷史階段和國情有關。但長期推進這種方式不進行調整是否能夠持久,我的態度會從之前的支持轉變為現在的中立),除了技術上不斷吸引優秀的人才之外,怎樣針對這個行業的特點對生產關系,組織形態進行合理的設計,來確保決策品質及實施效率都是蠻值得考究之處。生產力決定生產關系,生產關系反作用於生產力,誠哉此理。
上面的討論稍微宏觀務虛了一些。回歸到具體一些的內容。從
2010年
Fermi代際的G80支持FP64計算操作開始(
750GFlops
),到
2020年
釋出的Ampere GPU的
19.5TFlops
,
10年時間
FP64算力提升超過
20倍
,年化增長率超過
35%
。如果我們再來看一下AI推理算力的演化,那麽從
2012年
Kepler的
4TFlops
到
2020年
的Ampere的
1248Tops
(INT8定點計算+結構化稀疏),
8年
時間推理算力提升超過
300倍
,年化增長率超過
1倍
。與此同時,我們也能夠看到模型復雜度上升帶來的算力需求的變化,以NLP場景為例,從
2018年
的BERT模型到
2020年
的GPT-3,訓練復雜度上升了
1000倍
,2018年還是V100的當打之年,其峰值FP16算力是
125TFlops
,而Ampere面向訓練場景的峰值算力是
312TFlops
。以單位芯片面積算力來衡量的話,相較V100只有
2.4倍
,剩下的超過400倍的算力需求差距只能靠大規模並列來進行解決。
而大規模並列,對於普通建模使用者來說,意味著訓練成本的急速上升。這就可能會抑制AI技術的普惠落地。
借用文章裏的觀點,假設按最激進的
每年提升1倍
來估算,並且這種程度的提升可以再維持幾個代際(假設代際數為
3
),那麽,按兩年一個代際來計算,一共
6年
,相較當前的Ampere也就是
64倍
的算力提升(這已經是一個比較理想化的數位,因為每年提升一倍是按推理場景來估算,訓練場景的算力提升會顯著低於這個數位)。這會給未來的技術演化會帶來什麽啟示呢?拋開硬體架構本身的演化之外,我的一個推斷是建模層面會需要新的範式創新,配合硬體架構升級來一起解決建模能力和算力需求之間的矛盾。一種可能是在當前hot的大模型之外,湧現出更多不那麽大的「中小」規模模型技術,另一種可能是在當前大模型預訓練模型基礎之上,演化出更多相對cheap的下遊finetune的套用範式,使得大模型訓練成本高的問題變成免洗的固定成本。相關的工作,其實已經有相當一部份在開展中了。圍繞AI算力最佳化,未來湧現出更多模型系統聯合最佳化的工作,我想應該是一個值得預期的事情。
上面討論到了NV GPU的AI訓練算力提升振幅離模型訓練復雜性上升振幅有相當的距離,如果我們試圖按第一性原理來做更進一步的分析,假設我們沒有任何負擔,從頭做一個AI specific的DSA芯片 ,訓練算力的提升還有多少margin呢?也授權以從這樣的角度嘗試回答這個問題。Tesla在今年Hotchips上announce的Dojo是一款典型的面向其內部場景垂直整合的AI加速芯片 ,其單芯片峰值算力是
362TFlops
(FP16/CPF8),芯片面積是
645平方公釐
,整合
50個Billion
的晶體管。相對照的是NVIDIA A100,其峰值算力是
312TFlops
,芯片面積
826平方公釐
,整合
54 Billion
的晶體管。考慮到Dojo面向其垂直場景,並且沒有任何過往架構的包袱,所以其單位面積的晶體管整合度超過A100的
18%
。我們做一個理想化的插值,以Dojo的峰值算力作為更接近第一性原理的數值的話,那麽A100的峰值算力潛力可能達到
390TFlops
。以這個數值為基線,按上面提到的6年64倍算力提升預估可以達到
24960TFlops
,是V100的
199X
。距離GPT-3相較BERT的
1000X
算力需求提升,仍然有
5X
的差距。並且,這個數位是一個非常理想化的預估,因為同時加上了
只考慮單一場景的垂直最佳化
+
訓練算力每年1倍提升
+
軟體系統完美發揮硬體新增算力(幾乎不可能
)+
持續6年
的假設。所以,另一個可能的思路也許還真的是類似Cerebras的Wafer computing了:)?不過參考這裏的一個對比分析,能夠看到Cerebras的單位晶體管可獲得的AI算力其實相比比A100還是有比較明顯的差距,即便是按最新的7奈米工藝的WSE-2芯片最樂觀的情況推斷,也仍然有將近
3X
的gap,這可能也是在Cerebras的官網宣傳材料裏沒有放出峰值算力指標的原因之一。
單芯片範疇,透過當前的架構層面創新手段,帶來數量級(類似當年TPU剛出來,以及Volta中加入TensorCore的時代,帶來近
10X
算力提升)AI算力提升的時代,至少對於訓練場景來說,恐怕在未來五年之內就會遇到瓶頸了。整個行業需要新的技術視角來解決有效AI算力提升的問題。這些視角可能來源於工藝封裝,可能來源於模型結構的設計,可能來源於全棧系統的再梳理,也可能來源於新的體系結構層面的巨大突破。未來已來,路在腳下。
最後,仍然打個招聘小廣告,對上面討論的話題,以及相關技術工作感興趣的同學,歡迎聯系我,一起打造更好的軟硬全棧AI計算加速技術。關於招聘資訊在之前的幾篇貼文(這裏,這裏,還有這裏)裏都有提到,校招/社招/實習皆可,工作地點也比較flexible,感興趣的朋友可以直接信件我
[email protected]
.