您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>主機配件>cpu>

詳細解讀GPU的起源及發(fā)展

2023年12月25日 10:07 LiveVideoStack 作者: 用戶評論(0

大模型AI席卷全球,推理創(chuàng)新的APP、場景落地越來越多。當(dāng)訓(xùn)練達到一定階段,推理必然會形成一個爆發(fā)。推理的產(chǎn)品要起來,必然要把推理的成本降到今天 1/ 10 甚至 1/100。此時該如何選好、用好 GPU ,進而影響推理成本?

最近, LiveVideoStack榮幸地邀請到PPIO的王聞宇老師接受采訪。本文將從芯片怪獸英偉達公司壟斷式增長和美國“卡脖子”2個熱點問題出發(fā)。圍繞過去、現(xiàn)在、未來三個時間線為大家梳理GPU的起源及其軟硬件技術(shù)的更迭;同時,深度剖析GPU主流產(chǎn)品的參數(shù)和技術(shù)發(fā)展現(xiàn)狀,并結(jié)合當(dāng)前GPU的微架構(gòu)設(shè)計,給出算力工程優(yōu)化的幾個思考和有效解決方案。

文/王聞宇

整理/LiveVideoStack

作者簡介

PPIO派歐云的聯(lián)合創(chuàng)始人和CTO王聞宇,2004年就開始做音視頻,曾是PPTV 的聯(lián)合創(chuàng)始人并擔(dān)任首席架構(gòu)師一職,主導(dǎo)了P2P、直播、點播、編碼等一系列產(chǎn)品。PPTV被出售后,轉(zhuǎn)投車聯(lián)網(wǎng)公司智能支撐領(lǐng)域。2018年重回音視頻領(lǐng)域創(chuàng)辦PPIO派歐云,目標(biāo)在于把對技術(shù)以及資源的理解打造成服務(wù),并服務(wù)于整個音視頻行業(yè)以及游戲領(lǐng)域與AI領(lǐng)域。

00

前言:算力與GPU

算力,即計算能力(Computing Power)。更具體來說,算力是通過對信息數(shù)據(jù)進行處理,實現(xiàn)目標(biāo)結(jié)果輸出的計算能力。

最早的算力引擎。是人類的大腦,后來演變成草繩、石頭、算籌(一種用于計算的小棍子)、算盤。到了20世紀40年代,世界上第一臺數(shù)字式電子計算機ENIAC誕生,人類算力正式進入了數(shù)字電子時代。再后來,隨著半導(dǎo)體技術(shù)的出現(xiàn)和發(fā)展,我們又進入了芯片時代,芯片成為了算力的主要載體。進入21世紀后,算力再次迎來了巨變,云計算技術(shù)出現(xiàn),算力云化之后,數(shù)據(jù)中心成為了算力的主要載體。人類的算力規(guī)模,開始新的飛躍。

我們通常將目前負責(zé)輸出算力的芯片,分為通用芯片和專用芯片。專用芯片,主要是指FPGA(可編程集成電路ASIC(專用集成電路)。像x86這樣的CPU處理器芯片,就是通用芯片。它們能完成的算力任務(wù)是多樣化的,靈活的,但是功耗更高。

游戲、數(shù)字貨幣挖礦、AI、科學(xué)計算等各方面都需要GPU,GPU成為了當(dāng)下的關(guān)鍵問題。下面我就圍繞GPU以及對算力整個行業(yè)的思考展開分享。

2023年兩個事件的聯(lián)想:

事件一:英偉達芯片怪獸一家獨大!市值突破萬億美金

5月30日的時候,發(fā)生了一件重大的事情,5月30日美股交易時段,英偉達市值一天內(nèi)暴漲超2000億,沖破1萬億美元大關(guān),英偉達的市值遠大于Intel、AMD、高通,MTK的總和,甚至是其他公司的10倍;再看英偉達公司的PS、PE指標(biāo),可以看出綜合情況是非常優(yōu)秀的。

那么,英偉達芯片怪獸的地位是如何形成的?我在文章的最后會分析。

93acfe32-a2ba-11ee-8b88-92fbcf53809c.png

事件二:美國卡脖子問題再次升級!

93bc2fce-a2ba-11ee-8b88-92fbcf53809c.png

上圖所示的卡型至少有一款是AI領(lǐng)域必備的卡型,但是令人遺憾的是,由于美國卡脖子問題再次升級,以上卡型全部被納入禁售名單。

01

過去篇

1.1

為什么需要GPU?

93cf15f8-a2ba-11ee-8b88-92fbcf53809c.png

CPU的定位是通用計算芯片,有強大的調(diào)度,管理,協(xié)調(diào)能力,應(yīng)用范圍廣,靈活性最高,善于邏輯控制,串行的運算。

GPU的定位是并行計算芯片,主要是將其中非常復(fù)雜的數(shù)學(xué)和幾何計算抽出,變成一個超高密度、能夠并行計算的方式。最初專用于圖形處理,后漸漸用于高密度通用計算,包括AI計算。

1.2

GPU的起源

GPU 的發(fā)展源于80年代,IBM是GPU理念的創(chuàng)始者,但它并未堅持。所以真正意義上的第一款GPU是英偉達在1999年發(fā)布的Geforce 256,并正式提出一個響亮的名字“Graphics Processing Unit”,這就是GPU的來源。從此之后,GPU一直高速發(fā)展。

93df9126-a2ba-11ee-8b88-92fbcf53809c.png

圖:這是第一款真正意義的GPU的照片

1.3

GPU的世界就是“兩位華人之間的戰(zhàn)爭”

大家常說,GPU的世界就是“兩位華人之間的戰(zhàn)爭”。英偉達的創(chuàng)始人黃仁勛是美籍華人,黃仁勛的外甥侄女蘇姿豐是AMD的CEO。也就是說,英偉達與AMD兩大巨頭企業(yè)的CEO是親戚關(guān)系,掌握了全世界最強大的兩個GPU。如果再加上TSMC(臺積電)也是華人,可以說華人主宰了尖端半導(dǎo)體行業(yè)的半壁江山。

這GPU公司的競合歷史:

940f4970-a2ba-11ee-8b88-92fbcf53809c.png

上圖為GPU發(fā)展過程圖,可以看出3dfx早期發(fā)展迅猛,2000年以不到一億美金的估值被英偉達收購,ATI是AMD顯卡的前身,2006年被AMD收購,所以后期基本為英偉達與AMD雙雄爭霸。

注意,這個圖中似乎少了誰,就是著名的Intel。其實Intel在1998年發(fā)布了絕版獨立顯卡i740,在此之后的23年,就沒有再發(fā)布過獨立GPU,聚焦在做集成顯卡,退出了GPU市場,現(xiàn)在看來,這不是明智的戰(zhàn)略選擇。直到2022年,Intel終于看到AI發(fā)展的趨勢,才發(fā)布了新的獨立顯卡系列,這就是ARC系列。

GPU早期是為了用于圖形渲染

9430ed00-a2ba-11ee-8b88-92fbcf53809c.png

GPU早期一般為了3D渲染而設(shè)計。從計算機圖形學(xué)的角度,GPU將三維事件的點陣通過矩陣變化投影到二維平面上,這個過程叫做光柵化,最終在顯示器上結(jié)果。GPU的能力基本上是頂點處理、光柵化、像素處理等,這個過程包含大量的矩陣計算,剛好利用了GPU的并行性。

后來,GPU在設(shè)計上走向了通用計算。

2003年,GPGPU(General Purpose computing on GPU)的概念被首次提出來。GPU不再以圖形的3D加速為唯一目的,而是能夠用于任意并行的通用計算,例如科學(xué)計算、數(shù)據(jù)分析、基因、云游戲、AIGC等。

945a1b4e-a2ba-11ee-8b88-92fbcf53809c.png

直到2009年英偉達首次推出Tesla系列后,GPGPU時代才真正來臨。

目前國內(nèi)有許多做GPU的公司,大部分都投入在GPGPU領(lǐng)域,這些公司都放棄了圖形渲染,直接以高密度的并行計算作為發(fā)展方向。

以英偉達的產(chǎn)品來舉例,有如下產(chǎn)品系列

wKgaomWI5EKAfoo4AADoiEjLNgg503.png

第一個用于游戲領(lǐng)域,包括GeForce系列、RTX系列,我們常說的4090就是屬于游戲領(lǐng)域的系列;常說的x0y0編號就是GeForce系列。

第二個用于數(shù)據(jù)中心領(lǐng)域,包括Tesla系列,常提到A100、H100就屬于這一系列。英偉達有要求,不允許游戲領(lǐng)域中的GeForce系列進入數(shù)據(jù)中心。因此英偉達游戲系列的產(chǎn)品在同樣芯片、同樣算力的情況下,GeForce系列的價格要比Tesla系列低3~5倍。正因為價格相差太大,現(xiàn)在國內(nèi)做大模型推理、StableDiffussion圖形生成等都以4090作為首選的原因;

第三個是用于高端圖形領(lǐng)域,包括Quadro系列;這款在工業(yè)領(lǐng)域用得多。

第四個是用于汽車領(lǐng)域。

GPU支撐與架構(gòu)的不斷優(yōu)化

94875492-a2ba-11ee-8b88-92fbcf53809c.png

這是是英偉達的硬件架構(gòu)變遷圖。隨著2007年英偉達推出 CUDA 1.0版本,使其旗下所有 GPU 芯片都適應(yīng) CUDA 架構(gòu):

94add798-a2ba-11ee-8b88-92fbcf53809c.png

CUDA生態(tài)和價格也是英偉達的最核心競爭力,也是英偉達萬億市值的關(guān)鍵因素之一。英偉達投入了一萬以上的工程師在發(fā)展這個體系,基本上把人工智能里的大部分場景都做了深度優(yōu)化。英偉達長期投入CUDA生態(tài)建設(shè),為開發(fā)者服務(wù),建立好了一系列的開源生態(tài)。

94c047e8-a2ba-11ee-8b88-92fbcf53809c.png

02

現(xiàn)在篇

2.1

先進的微架構(gòu)設(shè)計

目前的GPU基本使用微架構(gòu)設(shè)計,以最早的Fermi架構(gòu)開始(2010年),那時候一個GPU是由4個GPC(圖形處理簇 Graphics Processing Clusters)、16個SM(流多處理器,Stream Multiprocessors )以及512個CUDA Core(向量運行單元)組成的,這是GPU的特性。

94eb7e40-a2ba-11ee-8b88-92fbcf53809c.png

其實圖形渲染也是微架構(gòu)的(以 2018年 Turing 微架構(gòu)為例)

95017b78-a2ba-11ee-8b88-92fbcf53809c.png

RT Core(RT核心)非常關(guān)鍵,實現(xiàn)了現(xiàn)代GPU中的光線最終效果。渲染效果中最重要的是光追,看這張光追低級效果和光追高級效果的對比圖,差距非常明顯,折射、反射、光影都呈現(xiàn)出很大的差距。

其實現(xiàn)在的手機GPU基本上都帶有光追的效果和能力,但是手機的光追效果對比英偉達GeForce 40系列GPU的光追效果差距很大。一份最新的評測將英偉達 4070與高通GEN2進行對比,各個指標(biāo)綜合得出差距為25倍,即使用最好的手機也不可能體驗到英偉達 4070渲染出來的效果。這也是云游戲成立的根本邏輯,讓玩家在手機上也能體驗到強大的GPU渲染所帶來的的畫質(zhì)效果。

我們看看現(xiàn)在最新一代GPU的情況:

最新的 Ada Lovelace 架構(gòu)(如Geforce RTX 4090)

953bbd92-a2ba-11ee-8b88-92fbcf53809c.png

看看最新的Ada架構(gòu),也就是4090這一代,這是完整的管線圖,密度相較于之前大大提高,仍然是微架構(gòu)體系。

我們放大看看GPC:

95541c52-a2ba-11ee-8b88-92fbcf53809c.png

我們再放大看看SM,是不是和前面Turing架構(gòu)的SM很像:

95664094-a2ba-11ee-8b88-92fbcf53809c.png

另外,和Ada架構(gòu)GeForce系列平行的是Hopper架構(gòu)的Tesla系列,也就是傳說中的H100/H800,這兩個架構(gòu)的管線大致是相同的,特別說明的是Tensor Core中的內(nèi)容是完全一樣的,所以在Ada架構(gòu)的4090上也可以很好地發(fā)揮Hopper架構(gòu)AI的特性。但Ada架構(gòu)與Hopper架構(gòu)最關(guān)鍵的區(qū)別,Ada不知道多卡高速互聯(lián),也就是NVLink/NVSwitch這套技術(shù)。

2.2

AI 計算中的浮點數(shù)

9577fae6-a2ba-11ee-8b88-92fbcf53809c.png

英偉達能夠成為AI領(lǐng)域中的必選項的其中一個原因涉及到浮點數(shù),浮點數(shù)在存儲的時候由三個部分組成:符號位、指數(shù)位和尾數(shù)位。

958ddf0a-a2ba-11ee-8b88-92fbcf53809c.png

浮點數(shù)的值可這樣計算:

959cd3fc-a2ba-11ee-8b88-92fbcf53809c.png

以 32 位的 float 為例,0.6 可以表示成?

95a6ce5c-a2ba-11ee-8b88-92fbcf53809c.png

如下圖,其中

●符號位是 0

●指數(shù)位是 01111110(126),表示 -1。(-1 偏移 127,即 126 - 127 = -1)

●尾數(shù)位是 1.00110011001100110011001,表示 1.1999999284744263。

95ade8ea-a2ba-11ee-8b88-92fbcf53809c.png

注意:尾數(shù)部分在實際存儲時是將小數(shù)點前的 1 省略的;指數(shù)部分需要做一次偏移,-1加上 127 的偏移變成 126 再進行存儲;最前面為符號位置,指的是這個數(shù)的正負,0 表示正數(shù),1 表示負數(shù)。每個浮點數(shù)都是由符號位、指數(shù)位和尾數(shù)位所構(gòu)成。

95bffda0-a2ba-11ee-8b88-92fbcf53809c.png

按照計算場景所要求數(shù)據(jù)精度和表示范圍,可以選擇不同的浮點數(shù)類型。常見的浮點數(shù)類型有 64 位的雙精度 double(FP64)、32 位的單精度 float(FP32)、16 位的半精度 half、以及四分之一精度的 FP8 等。其中,半精度在指數(shù)位和尾數(shù)位的分配上又可以細分成:bf16 和 FP16。同樣 FP8 也可以細分成 E5M2,E4M3。

那么在這么多浮點類型中該如何選擇呢?

●一般來說更少位數(shù)的浮點數(shù)運算所需要的計算成本也更低,因此選用更小位數(shù)的浮點數(shù)有利于提升性能降低成本。

●但更少的位數(shù)也意味著數(shù)據(jù)的表示范圍和精度的能力會降低,同時也要考慮表示范圍和精度之間的平衡,否則會導(dǎo)致數(shù)據(jù)信息的損失,在推理場景下具體表現(xiàn)為推理的效果會變差。

●另外對于 FP8 這樣的新類型,也只有最新的 GPU 硬件上才會支持,而新的硬件也往往比較昂貴。

因此,必須結(jié)合實際場景的性能要求、數(shù)據(jù)值分布以及硬件性價比等多個因素綜合考慮才可以選擇最佳的浮點類型。不同類型的浮點數(shù)在做不同硬件上處理時所帶來的性能和成本效果是完全不同的。例如,科學(xué)計算往往使用 FP64 與 FP32,對應(yīng) C 語言中的 double 與 float。但是在 AI 領(lǐng)域中,特別是推理領(lǐng)域,精度不是最敏感的因素,同時數(shù)據(jù)的分布也表現(xiàn)為集中在 0 值附近,因此在 AI 領(lǐng)域,在不損失較大效果的前提下采用更少位數(shù)的浮點數(shù)類型是一個非常不錯的優(yōu)化方案。它可以使得計算量大大減少,提升性能,降低硬件成本。

2.3

CUDA Core 和 Tensor Core

關(guān)于 CUDA Core:

NVIDIA 率先在 GPU 中引入了通用計算能力,使得開發(fā)者能利用 CUDA 編程語言來驅(qū)動。這時候 GPU 的核都是CUDA Core。由于一個 GPU 里面有大量的 CUDA Core,使得并行度高的程序獲得了極大的并行加速。但是,CUDA Core 在一個時鐘周期只能完成一個操作,類似上面的矩陣乘法操作依然需要耗費大量的時間。

95d2e3f2-a2ba-11ee-8b88-92fbcf53809c.png

關(guān)于 Tensor Core:

GPU 最善于的做的“加乘運算”(GPU中有最常用的矩陣計算,就是先乘后加,也就是FMA)FMA:Z=W*X+b

NVIDIA 為了進一步加速“加乘運算”,在 2017 年推出了 Volta 架構(gòu)的 GPU,從這個架構(gòu)開始 Tensor Core被引入。它可以在一個時鐘周期完成兩個 4×4x4 半精度浮點矩陣的乘法(64 GEMM per clock)。

95f55752-a2ba-11ee-8b88-92fbcf53809c.png

這是 Tensor Core 性能強勁的示意小視頻,他將“加乘運算”并行化了。例如 Pascal 這一架構(gòu)沒有 Tensor Core 的能力,所以輸出很慢;但在 Volta 架構(gòu)中,引入了Tensor Core之后,能夠以 12 倍的效率完成加乘的計算。

960dc788-a2ba-11ee-8b88-92fbcf53809c.png

2.4

英偉達最近兩代架構(gòu)的特性

Ampere 架構(gòu)

上一代是 Ampere 架構(gòu)(2020年),采用的是 Tenser Core 3.0 。

其中著名 A100、A800、V100,以及游戲卡 Geforce RTX 3090 就是這個 Ampere 架構(gòu)。

961a20be-a2ba-11ee-8b88-92fbcf53809c.png

這代架構(gòu)對比之前的 Turing 架構(gòu)(2018年),其 Tensor Core 主要支持了三個新的數(shù)據(jù)類型,F(xiàn)P64,TF32,和BF16。其中 TF32 沒有 32 位,只是閹割了精度尾數(shù),只有 18 位,AI 行業(yè)中 TF32 用得并不廣泛。但 BF16 就非常關(guān)鍵了,BF16 就是將 FP16 的指數(shù)位和精度位做了偏移,正是因為這個偏移使得 BF16 在 AI 訓(xùn)練的展示中范圍大大擴大,所以 BF16 也是現(xiàn)在很多 AI 模型所訓(xùn)練的主流選擇。

962d3dca-a2ba-11ee-8b88-92fbcf53809c.png

除此之外,還支持了結(jié)構(gòu)化稀疏,稀疏矩陣是在矩陣中大量都為 0(或者接近于0),能夠通過硬件快速計算出來的矩陣。Nvida 的 GPU 專門為稀疏矩陣做了優(yōu)化,使得相同規(guī)模的稀疏矩陣的計算速度是稠密矩陣的 2 倍。

964d42f0-a2ba-11ee-8b88-92fbcf53809c.png

千萬不要小看這兩個特性,我認為這兩個特性的支持大大提高了 OpenAI 的發(fā)展速度,使得 OpenAI 的 GPT3.5 能夠提前一年出現(xiàn)。

Ada 架構(gòu)和 Hopper 架構(gòu)

這一代架構(gòu)就是 Ada 架構(gòu)和 Hopper 架構(gòu)(2022年),采用的是 Tenser Core 4.0。

其中著名 H100, H800,就是這一代 Hopper 架構(gòu)的典型代表,另外,著名的游戲卡 Geforce RTX 4090 就是這一代Ada 架構(gòu),他們都是用同樣的 Tenser Core 4.0。

這代架構(gòu),最突破的變化是,Tenser Core 開始支持 FP8,就是將 FP16 又變小為 FP8,這是在AI領(lǐng)域中都要搶購4090 的原因。相較于 int8,F(xiàn)P8 能夠相對容易地實現(xiàn)全鏈路量化,將其性能提高一倍,成本降低一倍,這是最為重要的一點。

965f620a-a2ba-11ee-8b88-92fbcf53809c.png

為了讓開發(fā)者更方便地使用 fp8 來加速基于 Transformer 的模型,Nvidia 發(fā)布了 Transformer Engine (TE)。

Transformer Engine (TE) 是一個用于在 NVIDIA GPU 上加速 Transformer 模型的庫,包括在 Hopper GPU 上使用 8 位浮點(FP8)精度,在訓(xùn)練和推斷中提供更好的性能和更低的內(nèi)存利用率。TE 為主流的 Transformer 架構(gòu)提供了一系列高度優(yōu)化的構(gòu)建塊,以及一個類似于自動混合精度的 API,可以與特定框架的代碼無縫集成使用。TE 還包括一個與框架無關(guān)的 C++ API,可以與其他深度學(xué)習(xí)庫集成,以實現(xiàn) Transformer 的 FP8 支持。

這樣一來,對于大預(yù)言模型的開發(fā)者就無需手動寫底層基于 tensor core 的算子來使用 fp8 這個新特性,而是可以直接調(diào)用 TE 的 API 來組合出 LLM 的推理引擎,極大地簡化了開發(fā)者的工作量。

9670340e-a2ba-11ee-8b88-92fbcf53809c.png

2.5

關(guān)于FP8 量化帶來了很好的效果

首先,說說什么是 FP8,以及 E5M2,E4M3?

FP8 是 FP16 的衍生產(chǎn)物,跟 FP16 類似,只是 FP8 總共使用 8 個比特位來表示一個浮點數(shù)。它包含兩種編碼格式E4M3 與 E5M2。

●對于 E4M3 而言,其包含 4 個指數(shù)位、3 個尾數(shù)位、以及 1 個符號位。

●E5M2 同理,其包含 5 個指數(shù)位、2 個尾數(shù)位、以及 1 個符號位。

可見,E4M3 與 E5M2 只是在指數(shù)位和尾數(shù)位上所分配的尾數(shù)有所差別而已。很顯然 E4M3 的表示范圍要比 E5M2 大,但 E4M3 的精度上不如 E5M2。

9684a402-a2ba-11ee-8b88-92fbcf53809c.png

然后,我們看一下用 FP8 來代替 FP16/BF16 的效果怎么樣?

可以先回顧一下 FP8 的特性點:

●FP8 的指數(shù)位和尾數(shù)位相較于 FP16/BF16 都會少一些,精度和表示范圍的能力上相較于 FP16/BF16 會有所降低;

●但 FP8 的總位數(shù)只有 FP16/BF16 的一半,因此計算速度會更快,所需要的顯存資源也更少。

由此可以得出這樣一個結(jié)論:在對于數(shù)值表示范圍不大且精度要求不高的場景下,用 FP8 代替 FP16/BF16 是完全可行的。

接下來我們再看一組實際的實驗數(shù)據(jù):

下面的圖來自于一篇論文,作者將在 AI 訓(xùn)練場景下將 FP8 與 FP16/BF16 進行了對比。其中,

●橫坐標(biāo)是訓(xùn)練的進度;

●縱坐標(biāo)是損失函數(shù)的值,這個值約低越好;

●淺色實線表示的是 FP16/BF16 的訓(xùn)練效果,而深色的虛線表示的是 FP8 的訓(xùn)練效果;

●作者用不同的顏色表示126M、1.3B、5B、22B、175B 不同規(guī)格的模型。

我們可以看到同一規(guī)模的模型下,深色虛線與淺色實線的兩條曲線幾乎完全重合,這意味著用 FP8 量化的效果和用 FP16/BF16 基本相同。

969f601c-a2ba-11ee-8b88-92fbcf53809c.png

因此,假如把 FP8 來代替 FP16/BF16,訓(xùn)練和推理的性能至少可以提高一倍,而且效果上沒有差異。

最后,我們再來看一下 FP8 的量化與 INT8 量化相比有什么優(yōu)勢?

這是 FP8 和 INT8 的值分布情況:

96bb867a-a2ba-11ee-8b88-92fbcf53809c.png

不難看出,

●FP8 的值分布呈現(xiàn)非均勻分布,它在絕對值較小的區(qū)域比較密集,而在絕對值較大的區(qū)域表現(xiàn)為稀疏;

●而 INT8 的值是完全均勻的;

●另外,如果用 INT8 來表示 FP8 的話,會在絕對值較小的區(qū)域產(chǎn)生較大損失,而在絕對值較大的區(qū)域表現(xiàn)良好。

綜上所述,對于 0 值附近分布比較稠密,距離 0 值較遠的數(shù)據(jù)比較稀疏的這種數(shù)據(jù)分布來說,F(xiàn)P8 是最好的。而 AI 領(lǐng)域的模型權(quán)重恰恰大概率符合這一特性,因此,用 FP8 來進行量化會比 INT8 的損失要更少。

下圖是一個 FP8 和 INT8 量化后效果的具體對比,可以看出原數(shù)據(jù)經(jīng)過 INT8 量化后許多 -0.1、-0.001 的數(shù)據(jù)都被量化為 0 了,但用 FP8 量化時,無論是 E5M2、E4M3,這些較少數(shù)值的數(shù)據(jù)基本都被很好地保留了。

96d2e3b0-a2ba-11ee-8b88-92fbcf53809c.png

上面我們只是理論上說明了 FP8 對于 0 值附近的數(shù)值具有很好的精度保留能力。但實際推理過程中激活值真的是在 0 值附近分布得更加稠密嗎?

有學(xué)者針對這一問題專門做了驗證,如下圖,他把模型推理過程中的激活值都提取了出來,分別在第2層、第12層、第24層做了采樣。我們可以看到無論是在 attention 階段還是在 FFN 階段,各個模型層的激活值都有顯著的近似正態(tài)分布的性質(zhì)(當(dāng)然這里面也會有一些極少量的離群值,這些值可以在具體的量化方案中做特殊的處理)。

96e414e6-a2ba-11ee-8b88-92fbcf53809c.png

激活值在 0 分布較為稠密的特性,正符合了 FP8 的表現(xiàn)能力,這就是 FP8 逐漸成為大家做 AI 的主流的原因,也是 Ada/Hoper 架構(gòu)受歡迎的主要原因之一。

在 Ampere 架構(gòu)時代,很多人用 INT8 量化,但在 Ada/Hopper 架構(gòu)時代,INT8 量化的效果遠沒有 FP8 好。

因此,在 Ada/Hopper 架構(gòu)上應(yīng)該優(yōu)先使用 FP8 量化而非 INT8 量化,因為 FP8 具有 INT8 級別的性能的同時,又減少了量化帶來的數(shù)據(jù)精度損失。

2.6

說說稀疏化加速(HyperAttention)

再談?wù)勏∈杌募铀?。稀疏化是什么?圖上示意的是一個矩陣,矩陣中有很多0,它會通過行和列之間的交換,最終把數(shù)據(jù)密度高的地方,拉到這條反斜線。后面無論是加還是乘,都能很快計算出來。

970528c0-a2ba-11ee-8b88-92fbcf53809c.png

要把左側(cè)中的第一個圖變?yōu)榈谌齻€圖,首先要變?yōu)榈诙€圖,凡是黑框以內(nèi)的數(shù)據(jù)保留,剩余的全部歸零,也就是把一些比較暗的線都剪掉了。在處理大矩陣時效率很低,在處理第二個圖的矩陣時效率則非常高。這就是一種常見的方案,叫剪枝。

9712ec58-a2ba-11ee-8b88-92fbcf53809c.png

972dfdae-a2ba-11ee-8b88-92fbcf53809c.png

973e2094-a2ba-11ee-8b88-92fbcf53809c.png

剪枝能夠很好用于長序列長度模型,當(dāng)序列的上下文特別大時,剪枝的效果會非常明顯。

圖中的forward屬于推理,forward+backward屬于訓(xùn)練。可以簡單理解,隨著上下文越長,剪枝效果越好。如果是因果論的模型(例如laMa模型),在很長的參數(shù)下會有20倍的差異,但是在非因果論的模型(例如GM模型),優(yōu)勢會少一些。大家可能見到過一個模型能支持很長的上下文,能夠把《哈利波特》一本書讀下去,其實并不難,只要用剪枝就能做出一定的效果。

2.7

說說投機采樣

投機采樣(Speculative Decoding)是 Google 和 DeepMind 在 2022 年同時發(fā)現(xiàn)的大模型推理加速方法。它可以在不損失生成效果前提下,獲得 3x 以上的加速比。GPT-4 泄密報告也提到 OpenAI 線上模型推理使用了它。雖然OpenAI 的具體方法保持保密,但谷歌團隊已經(jīng)將其研究成果公之于眾,并入選 ICML 2023 Oral。這項技術(shù)很有可能可能成為未來大型模型推理的標(biāo)配。

投機采樣是一種創(chuàng)造性的工程化加速方法,它與算子融合、模型量化等方法完全是不同維度的。

其核心是,用一個比原模型小很多的草稿模型(draft model),來加速原模型的推理。草稿模型一般都會比原模型小很多倍,因此推理速度也是比原模型更快,消耗資源更少,但它有一個缺點,就是推理生產(chǎn)的 token 可能是不對的。

那怎么解決這個問題呢?很簡單,解決方案是先讓小的草稿模型推理若干的 token,然后再將這些 token 讓大模型檢驗其是否合理。如果合理則繼續(xù)讓小模型接著推理,否則就大模型自行推理。

由于大模型檢驗小模型的推理結(jié)果是可以并行地檢查多個 token 的,因此這個過程要比大模型自己一個一個的推 token 要快很多。這也就意味著,只要小模型在多數(shù)情況下的推理是正確的,那么整個的推理速度就會很快。

用一個比喻來形容的話,有點像一個教授帶著研究生做課題,課題中的一些研究任務(wù)直接就交給研究生完成了,但教授會對這些任務(wù)的完成情況進行檢驗,如果有錯誤教授會再做出修正,這樣老師和學(xué)生相互配合,這個科研的效率就提升了很多。

目前一些推理框架已經(jīng)開始支持 投機采樣了,如 llama.cpp。也有一些開源模型直接同時提供了原模型和草稿模型,如:Chinese-LLaMA-Alpaca-2。

llama.cpp 的作者 gg 實測,通過投機采樣可以提升至原來 2 倍的推理速度。

975d48ca-a2ba-11ee-8b88-92fbcf53809c.png

2.8

關(guān)于多卡互聯(lián)的評測數(shù)據(jù)

多卡協(xié)同是英偉達顯卡系列的關(guān)鍵:

wKgZomWI5GqAYovgAAPaxtoWU_A182.png

多卡協(xié)同也是當(dāng)今發(fā)展的關(guān)鍵。圖上列出了NV測試庫里的第二代、第三代、第四代的動畫協(xié)同技術(shù),可以發(fā)現(xiàn),不同的架構(gòu)一直在升級,從 Volta 到 Ampere 到 Hopper,總帶寬數(shù)和 GPU 最大鏈路數(shù)都有所增加。

NVLink 主要用于兩卡甚至四卡間的交替互聯(lián),但是卡多后則無法使用 NVLink,要用 NVSwitch。

第二個圖就是 NVSwtich 的數(shù)據(jù),因為它在訓(xùn)練時數(shù)據(jù)非常大,一個卡的數(shù)據(jù)存不下來,就必須用卡間通信,卡間帶寬是多卡互聯(lián)技術(shù)在大模型訓(xùn)練時會遇到的非常大的瓶頸。

為什么 4090 是性價比最好的推理顯卡?

●相較于 H800 商用卡,消費級卡 4090 具有極高的性價比優(yōu)勢;

●相較于 不支持 fp8 的 3090/A800 來說,4090 又支持 fp8 這一新特性;

●在 40 系的同代卡中,4090 的顯存又是最大的,性能最高的;

●8 卡 4090 的整機基本上可以滿足未量化 70B 級別的大模型推理。

因此綜合來說,對于 fp8 有強需求的推理場景,4090 是各種因素平衡下最佳的選擇。

03

未來篇:趨勢思考

3.1

說說 H100 比 A100 強在哪兒?

979d2dc8-a2ba-11ee-8b88-92fbcf53809c.png

H100比A100強不是因為密度提升,其實就密度本省只有1.2倍的提升;更多是因為微架構(gòu)的設(shè)計。新的Tensor Core提升了2倍,新的Transformer引擎提升了2倍,頻率提升1.3倍,總計提升了6倍(在大模型下表現(xiàn))。因此英偉達的性能不是純靠密度提升的,是通過架構(gòu)優(yōu)化進行的提升。

未來的H200和B100,性能還會有指數(shù)性的上升。

97b73006-a2ba-11ee-8b88-92fbcf53809c.png

這是英偉達未來大致的新GPU路線圖:

97d26f74-a2ba-11ee-8b88-92fbcf53809c.png

3.2

CPU 和 GPU的二合一可能也是新的方向

未來還有一個可能的趨勢是CPU和GPU二合一。例如AMD的MI300,基本是直接把GPU和CPU合在一起。也有人選擇,蘋果的M2Ultra,因為它擁有很大內(nèi)存,顯存帶寬也差不多。

AMD的 Instinct MI300系列。如MI300A,24盒Zen4架構(gòu)CPU,CDNA3架構(gòu)GPU,128GB HBM3內(nèi)存,5.2T顯存帶寬。

還有蘋果的Apple M2 Ultra系列。

3.3

還有一種 GPU 的變種 ==> IPU

2022年6月,MLPerf(全球最權(quán)威的AI計算競賽) Graphcore 的 IPU ( Intelligence Processing Unit)打敗了當(dāng)時的王者NVIDA 的 A100,除此之前,還有其他說法,如Google 提出的TPU ( Tensor Processing Unit),還有NPU (Nerual Processing Unit),可以理解他們是類似的,在某些特定的 AI 和 ML 任務(wù)中有出色的表現(xiàn)。

那么,IPU未來會取代GPU的位置嗎?

98645b78-a2ba-11ee-8b88-92fbcf53809c.png

IPU雖然近幾年在高速發(fā)展,但在我看來,不可能取代GUP的位置,因為它們擅長的不一樣。CPU擅長的是控制和復(fù)雜運算,GPU擅長的是各種高密度的通用的計算,IPU更擅長處理某個特定的AI任務(wù)和推理,因此這三者未來應(yīng)該是有效結(jié)合的關(guān)系??赡芪磥鞢PUIPU的使用量是11。

3.4

?“卡脖子”問題

2022年8月31日:美國政府通知 英偉達 和 AMD,分別限制中國出口 A100、H100、MI250AI 芯片。

之后英偉達針對2022年的禁令,推出了降低參數(shù)配置的閹割卡,也就著名的A800,H800,主要降低了卡間通行速率,和浮點算力 (FP64,FP32)。

98754136-a2ba-11ee-8b88-92fbcf53809c.png

卡間通訊對大模型訓(xùn)練來說,非常關(guān)鍵,這樣大大限制了訓(xùn)練的效率。

2023年10月17日,是美國商務(wù)部的新一輪限制,這次除了 A100、 H100,還限制了 A800、H800、L40s,甚至游戲卡 RTX4090 也不例外。

但和上次一樣,英偉達很快推出了“特供卡” ,HGX、H20、 L20、L 2 (這些卡均不能卡間通訊),性能大受影響不到之前的 H100 的20%。

988a251a-a2ba-11ee-8b88-92fbcf53809c.png

那么我們中國公司應(yīng)該怎么應(yīng)對“卡脖子”呢,大概有幾個路徑吧

●第一:買不到卡,慢慢訓(xùn)練,時間變長

●第二:走完全不同的技術(shù)路線,發(fā)展“小模型”發(fā)展量化,用低端卡(甚至比GeForce RTX4090還要低的)來訓(xùn)練

●第三:還有就是在國外用公開數(shù)據(jù)集訓(xùn)練,在國內(nèi)用私有數(shù)據(jù)集Fine-Tuning。

還有就是用舉國之力解決“卡脖子”問題。其實芯片設(shè)計能力其實不是最關(guān)鍵的瓶頸,F(xiàn)AB廠和光刻機才是最關(guān)鍵的問題。

大家千萬不要認為瓶頸只有光刻機,其實FAB廠也是瓶頸。FAB廠流程很多,包括硅晶圓的制備、光刻、蝕刻、沉積、摻雜、金屬互聯(lián)、鈍化、測試和封裝等。

要做一個先進的FAB廠其實非常難,要建設(shè)一個先進的FAB廠,需要投入至少150億美金。

TSMC(臺積電)之所以能占據(jù)很大的市場比例,關(guān)鍵是他們7nm以下的良品率做得非常高,背后很大的原因是TSMC養(yǎng)了上百位頂級的化學(xué)家、材料學(xué)家和生物學(xué)家來研發(fā)和解決問題。

這是FAB廠的目前能做到的能力表:

98b2d91a-a2ba-11ee-8b88-92fbcf53809c.png

有消息稱,2024年TSMC的3nm/4nm的芯片產(chǎn)能,基本被英偉達,蘋果和高通包完了,他們3大巨頭的芯片產(chǎn)能,也要看TSMC是怎么分量的。

除了FAB廠之外,最最關(guān)鍵的瓶頸就是光刻機了,可以看見,ASML占據(jù)了先進光刻機的絕大部分市場。特別是EUV技術(shù)(極紫外光刻技術(shù)),目前只有ASML能做到,只有這個技術(shù),才能光刻出10nm以下制程的芯片。

98c9f582-a2ba-11ee-8b88-92fbcf53809c.png

不用光刻技術(shù)的對照表:

98da7240-a2ba-11ee-8b88-92fbcf53809c.png

那么,中國的國產(chǎn)光刻機做得最好的是上海微電子,他們目前最先進的技術(shù)是ArF(氟化氬技術(shù)),能做出最高精度也只有90nm(相當(dāng)于ASML在10年前的技術(shù)),因此光刻之路漫漫雖遠兮。

98f51208-a2ba-11ee-8b88-92fbcf53809c.png

也有人說中國沒有,沒不能想辦法從國外“偷”一臺EUV的ASML技術(shù)不就行了。我看這太天真了,這種關(guān)鍵技術(shù)就別想了。

ASML的EUV我了解需要至少5架波音747裝滿才能把零件裝完。除此之外,ASML的光刻機是需要云端激活的,每次安裝和變動的時候,

ASML會派人來調(diào)試,標(biāo)記好地理位置,關(guān)鍵核心部件和系統(tǒng)都是通過互聯(lián)網(wǎng)遠程激活的。如果后續(xù)ASML發(fā)現(xiàn)GPS位置變了,關(guān)鍵核心部件和系統(tǒng)會直接遠程云端鎖定,用不了。

所以我們要解決這個問題,只有老老實實自力更新,自己攻克EUV光刻技術(shù)。

04

關(guān)于PPIO派歐云

PPIO派歐云的定位主要是做分布式云,怎么理解PPIO的分布式云呢?

首先從骨干網(wǎng)角度看,圖中標(biāo)記了“算力”的就是PPIO分布式算力的部署位置,PPIO把算力部署在一些骨干網(wǎng)的大型節(jié)點、地市級的IDC甚至小IDC。

99216c04-a2ba-11ee-8b88-92fbcf53809c.png

其次從城域網(wǎng)角度看,這是運營商北向-南向的圖,PPIO也把算力部署在了匯聚層的DC。左邊的圖是固網(wǎng),右邊是移動網(wǎng),在移動網(wǎng)中算力部署在MEC。

993d9d70-a2ba-11ee-8b88-92fbcf53809c.png

PPIO派歐云的產(chǎn)品架構(gòu)如圖,通過自建和招募的方式,把很多資源集成起來,建立好自己的軟件服務(wù),在此之上建立IaaS和PaaS的服務(wù)。PPIO派歐云主要覆蓋的領(lǐng)域是音視頻(CDN/泛CDN)、實時云渲染(包括云游戲)、AI推理,AI小模型的訓(xùn)練場景。

995bda92-a2ba-11ee-8b88-92fbcf53809c.png

這是 PPIO 的 AI 算力 IaaS 產(chǎn)品如下:

我們開發(fā)了具有核心云功能的 AI 算力平臺,對外提供 GPU 裸金屬,GPU 服務(wù)器,GPU容器三種形態(tài)的算力資源,以滿足不同的 AI 算力場景。

此外,我們也為客戶提供負載均衡、應(yīng)用防火墻和DDoS防火等線上業(yè)務(wù)上必須的核心功能。為了方便客戶使用算力資源,我們不僅開發(fā)了基于界面的控制臺,也提供了開放 API 供客戶進行二次開發(fā)和系統(tǒng)集成。通過這個 API 客戶可以很方便地控制GPU 裸金屬,GPU 服務(wù)器,GPU容器三種資源。

另外,我們也提供了無盤系統(tǒng),跨區(qū)服務(wù)等特色服務(wù),也可以協(xié)助客戶過等級保護。

996dae8e-a2ba-11ee-8b88-92fbcf53809c.png

PPIO派歐云,除了提供算力IaaS產(chǎn)品,還能提供 MLOps(AI Infra)推理解決方案,幫助大模型公司實現(xiàn)算子優(yōu)化、算子融合、量化,剪枝,蒸餾,投機采樣等技術(shù)解決方案,從而做到推理加速。

在模型層,PPIO 具有豐富的模型壓縮經(jīng)驗,可以幫助客戶對模型進行量化、剪枝和蒸餾;

同時經(jīng)過壓縮過的模型,也需要推理引擎進行適配,PPIO 具備對市場上主流推理引擎的適配能力,如 TGI, vLLM, llama.cpp,openppl-llm, trt-llm 等。

為進一步提高推理的性能,PPIO 在算子融合,算子優(yōu)化方面也有豐富的沉淀,可以為客戶的模型做特別的適配,以滿足主流推理引擎不支持某些算子或算子性能過低的情況。

998b30c6-a2ba-11ee-8b88-92fbcf53809c.png

最后

根據(jù) Verified Market Research 的預(yù)測,2020年 GPU 全球市場規(guī)模為254億美金,預(yù)計到2028年將達到2465億美金,行業(yè)保持高速增長,CAGR 為32.9%,2023年 GPU 全球市場規(guī)模預(yù)計為595億美元。

999b4858-a2ba-11ee-8b88-92fbcf53809c.png

資料來源:Verified Market Research ,中信建投)

期待,算力最終帶來新的工業(yè)革命,改變?nèi)澜缛祟惖纳罘绞健?/p>

審核編輯:黃飛

?

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

( 發(fā)表人:黃飛燕 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?