色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

瘋狂的H100:現代GPU體系結構淺析,從算力焦慮開始聊起

sakobpqhz ? 來源:算力基建 ? 2023-10-29 09:48 ? 次閱讀

得益于 ChatGPT 引發的新一波 AI 浪潮,2023 年各大科技公司大量采購 NVIDIA 生產的 H100 等系列 GPU。據 NVIDIA 2024 財年第二季度財報[1],NVIDIA 收入創下紀錄新高,達到 135.07 億美元,遠超分析師給出 110.4 億美元預期。目前市場上對 H100 的需求在 43.2 萬張左右,每張售價約 3.5 萬美元,受限于臺積電的產能,2023 年 NVIDIA H100 的產量早已銷售一空,目前 GPU 的短缺或將持續到 2024 年[2]。

在 eBay 上,一張 NVIDIA H100 SXM 80GB 的 GPU 售價目前 (2023.10) 已經被炒到了 4.5 萬美元[3]。于此同時,估值僅 20 億美元的 CoreWeave 以 NVIDIA H100 為抵押,卻拿到了 23 億美元的債務融資[4]。要知道,CoreWeave 手上目前并沒有這么多的等價 NVIDIA H100,它有的僅僅只是 NVIDIA 的 H100 供貨承諾。仿佛過去二十年國內狂飆的土地財政一般,房地產商通過土地拍賣拿到的土地,又可以快速抵押拿到銀行的貸款,NVIDIA H100 在當下也成為了如土地一般的硬通貨。 本文嘗試深入到硬件,從英偉達 H100 系列 GPU 入手,解析現代 GPU 體系結構,試圖去理解在大模型繼續狂飆的當下,為何賣的如此之貴的 H100 還能夠賣的這么好。

01.TLDR

本文所有的資料來自于互聯網公開信息,更多是從程序員的角度去理解現代 GPU 的體系結構,強烈推薦大家閱讀本文附錄的原始資料,文中的觀點與本人雇主無關。

除了以 H100 為代表的英偉達 GPU,市場上同場競爭的還有很多其他類型的 GPU:比如來自 AMDIntel 的 GPU,以華為昇騰 910 AI 加速芯片,Google 的 TPU,AWS 自研 Tranium 和 Inferentia,乃至來自壁仞等創業公司的 GPU 等。因為工作中主要使用的是英偉達的 GPU,本文目光也主要集中在英偉達的 H100。

隨著時代的發展,最早源于圖形渲染領域的 GPU,不斷在 HPC、圖形學和深度學習這三個領域游走,前幾年還在加密貨幣中發揮了重要作用。本文不太會詳細介紹其圖形渲染方向的能力,更多側重于像計算側能力的演進與發展。受限于篇幅,本文暫時不會涉及 MIG 和機密計算等新特性,也不太介紹 NVLink 等通信能力。

作為一名軟件工程師,本文作者對于硬件的理解也并不算深刻與全面,甚至可能會存在偏差與錯誤,在介紹相關方向的時候也肯定會存在遺漏,歡迎大家交流與指正。

本文相對較長,全文超過 10000 字,閱讀預計需要 20 分鐘左右。

02.Technical Terms

在真正開始之前,這里先簡單介紹下本文可能會碰到的技術縮略語,現在不需要深刻理解其含義,只需要有初步印象即可。

FLOPS Floating point Operations per Second FLOPS 為每秒浮點數運算次數,FLOPs 則表示浮點運算次數
DGX Deep-learning GPU Accelerator NVIDIA 推出的一系列專門用于加速深度學習工作負載的高性能計算平臺
HGX High-Performance GPU Accelerator NVIDIA 推出的服務器參照平臺。OEM 廠商用于構建 4 GPU 或 8 GPU 服務器,由 Supermicro 等第三方 OEM 制造
SXM[6] Server PCI Express Module NVIDIA 用于連接 GPU 的高帶寬 socket 接口,相比 PCIe 具有高帶寬、低延遲、高拓展性、直接互聯等特點
HBM High Bandwidth Memory 一種先進的內存技術,相對于 GDDR 等具有高帶寬、低功耗、封裝緊湊等特點
CoWoS[7] Chip on wafer on Substrate 三維堆疊,相對于 GDDR 等具有高帶寬、低功耗、封裝緊湊等特點
GPC Graphics Processor Cluster 圖形處理集群,每個 GPC 包含若干個 TPC
TPC Texture Processor Cluster 紋理處理集群,每個 TPC 包含若干個 SM
SM Streaming MultiProcessor NVIDIA GPU 架構中的核心計算單元,負責執行并行計算任務
SIMT Single Instruction Multiple Thread 單指令多線程,NVIDIA GPU 中的一種并行計算模型,將 SIMD 和多線程結合起來,使得多個線程可以同時執行相同的指令,但是處理不同的數據
GEMM General Matrix Multiplication 通用矩陣乘,是一種廣泛用于深度學習神經網絡模型的計算操作
MMA Matrix Multiply-Accumulate 矩陣乘加
FMA Fused Multiply-Accumulate 融合矩陣乘加,通過單個指令實現矩陣乘加
TMA Tensor Memory Accelerator 張量內存加速器
MIG Multi-Instance GPU 多實例 GPU
TEE Trusted Execution Environments 可信執行環境
SHARP Scalable Hierarchical Aggregation and Reduction Protocol 可擴展分層次聚合和歸約協議,NVIDIA 推出的一種高性能集合通信協議,將聚合操作卸載到交換機,消除多次傳輸數據的需要
DSA Domain Specific Architecture 領域專用架構,是一種針對特定應用場景進行優化的芯片架構,旨在提高芯片的性能和效率
英文 縮寫 中文釋義

03.算力需求膨脹,大模型訓練需要多少卡

昂貴 H100 的一時洛陽紙貴,供不應求,大模型訓練究竟需要多少張卡呢?GPT-4 很有可能是在 10000 到 20000 張 A100 的基礎上訓練完成的[8]。按照 Elon Musk 的說法,GPT-5 的訓練可能需要 3 萬到 5 萬張 H100,盡管之后被 Sam Altman 否認,也可窺見大模型訓練對于算力的巨大需求。 Inflection 公司宣布他們正在構建世界上最大的 AI 集群,包含 22000 張 NVIDIA H100,FP16 算力可以達到 22 exaFLOPS,如果更低精度的算力(也就是 FP8)得到使用,則可以獲得更高算力 [9]。這是一個非常驚人的數字,要知道 Frontier 超級計算機是目前唯一達到 ExaFLOPS 算力量級的超級計算機。對比目前排名第七的神威太湖之光超級計算機,最大算力也只有 94.64 PetaFlOPS。Inflection 自豪地宣稱,如果參與超級計算機 Top 500 排行[10],他們可以很輕松地排到第二名,并且逼近排名第一的 Frontier 超級計算機。

The deployment of 22,000 NVIDIA H100 GPUs in one cluster is truly unprecedented, and will support training and deployment of a new generation of large-scale AI models. Combined, the cluster develops a staggering 22 exaFLOPS in the 16-bit precision mode, and even more if lower precision is utilized. [9]

Inflection 基于超過 3500 張 NVIDIA H100 實現了在 C4 數據集下僅用了不到 11 分鐘,即訓練完 GPT-3 的模型[11]。對比 OpenAI 在 2020 年時使用數千張 NVIDIA V100 訓練 GPT-3,花了一個月左右的時間,對比 V100,H100 算力顯著增長。這里截圖不全,只大致反映當前參與 Benchmark 的廠商與系統[12]。

8308980c-756a-11ee-939d-92fbcf53809c.png

22000 張 NVIDIA H100 構成的 AI 集群,微軟和英偉達投資給 Inflection 的 13 億美元也許就要花去大半了。這一幕令人驚奇,也許存在泡沫,但真金白銀不會騙人,我們也好好算算為什么需要這么多卡。OpenAI 早在 2020 年的 Scaling Laws[13] 論文中給我們提出了一個經驗公式:831159f6-756a-11ee-939d-92fbcf53809c.png

這里面:

C是訓練一個 Transformer 模型所需要的算力,單位是 FLOPs

P是一個 Transformer 模型中參數的數量

D是訓練數據集的大小,也就是用多少 tokens 來訓練

π是指訓練集群中所有硬件總的算力吞吐,單位是 FLOPs,計算方法為

83150966-756a-11ee-939d-92fbcf53809c.png

T是指訓練這個模型需要的時間,單位是 seconds

Scaling Law 論文 Section 2.1 對于這個公式的做了簡單的推導,在 forward pass需要的 FLOPs 數為8319e350-756a-11ee-939d-92fbcf53809c.png,在 backward pass 需要的 FLOPs 數大致是 forward pass 的 2 倍,因此832052bc-756a-11ee-939d-92fbcf53809c.png,這即是系數 6 的來源。 ? 之所以有這樣簡潔的公式,是因為無論是 bias vector addition,layer normalization,residual connections, non-linearities,還是 softmax,甚至是 attention 的計算都不是占算力的主要因素,最關鍵的還是 Transformer 中的矩陣運算。

832ab522-756a-11ee-939d-92fbcf53809c.png

Parameter counts and compute (forward pass) for a transformer model, Source: Scaling Law Paper 記住上面的假設之后,我們就可以簡單地算出這里的系數 6 了,前向 2 次,反向 4 次,如下圖所示。

83365c9c-756a-11ee-939d-92fbcf53809c.gif

至此,基于上面的假設,我們已經推導出了經驗經驗公式中 6 的來源,至于為什么這個假設是正確的,可以參考 Scaling Law 的論文或者這篇文章[14]。

這個經驗公式在 GPT-3 的論文中也再次得到了驗證,可以看到對于 GPT-3 這種 decoder-only 結構的 transformer 模型,每個參數每個 token 所需要的 FLOPs 即為 6。而對于 T5 這種 encoder-decoder 結構的 transformer 模型,在 forward pass 和 backward pass,因為對每個 token 只有一半的參數是 active 的,因此這個經驗公式里面的系數為 3。

833a569e-756a-11ee-939d-92fbcf53809c.png

在計算所需算力的時候,我們剛才都是使用 FLOPS 這個單位,也就是 FLOP-seconds,Scaling Laws 論文中傾向于使用 PetaFLOP-days 的單位,這樣能夠更加直觀的感受出訓練一個模型需要多長時間。以 Meta 年初開源的 LLaMA-1 為例,65B 的模型基于 1.4T 的 tokens 訓練,使用了 2048 塊 NVIDIA A100 GPU,那么需要訓練多久呢?

所需算力

NVIDIA A100 WhitePaper 中給出 BF16 Tensor Core 的算力為 312 TFLOPS[15],但是實際上算力一般在 130 到 180 TFLOPS 中間,這里我們取中間值 150 TFLOPS[16]

根據實際算力計算集群算力吞吐為

訓練 LLaMA-1 所需耗時為

這一計算和 LLaMA-1 在論文中實際訓練時間基本一致:

When training a 65B-parameter model, our code processes around 380 tokens/sec/GPU on 2048 A100 GPU with 80GB of RAM. This means that training over our dataset containing 1.4T tokens takes approximately 21 days.

834606b0-756a-11ee-939d-92fbcf53809c.png

LLM Training Cost, Source: https://karpathy.ai/stateofgpt.pdf

進一步計算,NVIDIA H100 WhitePaper 上給出 BF16 1979 TFLOPS,因為這個指標包含了 sparsity,實際稠密算力大約在 1000 TFLOPS[17]。對比 A100,差不多有 3 倍的增長,那么同樣數目的 GPU,不考慮其他因素做最粗糙的計算,LLaMA-1 65B 的訓練時長差不多可以減少到 10 天以下[18]。考慮到 H100 新推出的 FP8 Tensor Core 3,958 TFLOPS 的算力,以及新一代 NVLink Network 的通信帶寬,訓練速度可以進一步加快,GPT-3 175B 訓練可以相比 A100 可以快 6 倍多。

834a6f3e-756a-11ee-939d-92fbcf53809c.png

NVIDIA H100 vs A100 Performance, Source: NVIDIA WhitePaper

除了性能上相對于 A100 有明顯優勢,H100 在成本上也優于 A100。雖然 H100 在單位成本上是 A100 的 1.5 到 2 倍,但是效率上是 A100 的 3 倍,因此 H100 的每美元性能要比 A100 要更高。這就是老黃說的 「The More You Buy,The More You Save」,NVIDIA 贏麻了 。

83577fee-756a-11ee-939d-92fbcf53809c.png

Estimated times and cost for a 7B model on 8x NVIDIA H100 vs. 8x NVIDIA A100, Source: MosaicML

通過上面的計算,我們可以看到 LLM 訓練對于 GPU 提出的巨大需求,也看到了 H100 相對于 A100 的巨大優勢,這也是為何目前 H100 供不應求的原因之一。接下來,本文會嘗試深入到 H100 硬件,看看 H100 比 A100 到底好在哪里。

04.H100 系列產品線長什么模樣

NVIDIA 的產品線比較復雜,包括了數據中心,到專業工作站,以及消費級 GPU 和嵌入式等不同場景,其系列產品名稱也比較復雜,你可以在這里[19]看到。

83620720-756a-11ee-939d-92fbcf53809c.png

本文主要關注數據中心 H100 的系列產品線,在深入到具體硬件體系結構之前,我們先看看 NVIDIA 基于 H100 的系列產品線模樣,對 HGX 和 DGX 先有一個粗略的印象。

836df09e-756a-11ee-939d-92fbcf53809c.png

這個是 H100 GPU 芯片,包含 HBM3 高速顯存,通過臺積電的 CoWoS 技術封裝在一起

83794548-756a-11ee-939d-92fbcf53809c.png

臺積電的 CoWoS 技術大概是這樣,Credit: TSMC

8380b99a-756a-11ee-939d-92fbcf53809c.png

這是 H100 GPU 封裝在 SXM5 模塊中

838c1740-756a-11ee-939d-92fbcf53809c.png

NVIDIA HGX H100,由8個H100 SXM5 模塊加上4個NVSwitch Chip 在同一個 system board 上

值得注意的是,這 4 個 NVSwitch Gen3 芯片總共具有 3.6 TFLOPS 的 SHARP In-Network Computing 計算能力,此處暫時不表,后面再寫篇文章聊聊 SHARP。

83d100d0-756a-11ee-939d-92fbcf53809c.png

DGX H100 在 HGX 100 的基礎上,進一步配置了 CPU、存儲與網卡

83dcba6a-756a-11ee-939d-92fbcf53809c.png

進一步 ScaleUp DXG H100,將32個 DGX 聚合到一起,形成 DGX H100 SuperPod

83e834a8-756a-11ee-939d-92fbcf53809c.png

上個月 NVIDIA 又發布了 GH200,實際上就是 Grace CPU 加上 Hopper GPU

83ecbffa-756a-11ee-939d-92fbcf53809c.png

這是他們之間的邏輯鏈路

05.CUDA 編程模型與 H100 體系結構

本節將會結合 NVIDIA CUDA 的編程模型,對照分析 H100 GPU 體系結構。如下圖所示,滿配的 GH100 有 8 個 GPC,每個 GPC 有 9 個 TPC,每個 TPC 內有 2 個 SM,總共有 144 個 SM。基于 SXM5 的 H100 砍掉了 6 個 TPC,只有 66 個 TPC,總計 132 個 SM。

83f83cfe-756a-11ee-939d-92fbcf53809c.png

H100 支持第四代 NVLink 和 PCIe Gen5,支持 6 個 HBM3 Stacks,DRAM 帶寬達到 3TB/s,L2 Cache 到 50MB。

84016978-756a-11ee-939d-92fbcf53809c.png

繼續放大每一個 SM,查看其中組成:

Computing CUDA Core FP32 Unit 128,分成四組,每組 32 個
Computing CUDA Core FP64 Unit 64,分成四組,每組 16 個
Computing CUDA Core INT32 Unit 64,分成四組,每組 16 個
Computing TensorCore Gen4 4,分成四組,每組 1 個
Computing SFU 4,分成四組,每組 1 個
Computing Tex 4,分成四組,每組 1 個
Scheduling WARP Scheduler 4,分成四組,每組 1 個,32 thread/clk
Scheduling Dispatch Unit 4,分成四組,每組 1 個,32 thread/clk
Storage Register File 256KB,分成四組,每組 64 KB
Storage L0 Instruction Cache --
Storage L1 Data Cache/Shared Memory 256KB
Storage L1 Instruction Cache --
Storage LD/ST 32,分成四組,每組 8 個
Storage+Computing Tensor Memory Accelerator 1
Functions in SM Component Name Unit per SM

包含 128 個 CUDA Core,分為 4 組,每組包含 16 個 FP64 Unit,16 個 INT32 Unit 和 32 個 FP32 Unit,這些 CUDA Core 單元可以用于超算、圖形渲染等場景的計算。

包含第四代 Tensor Core,此處暫時略過,在 Tensor Core 那節會詳細介紹。

840c8c7c-756a-11ee-939d-92fbcf53809c.png

密集恐懼癥者看到 SM 這密密麻麻的計算核心或許會有點害怕,為了更好的理解 NVIDIA GPU 的結構,我們看可以看下面的簡化版本:

對于每一個 GPU,通過 GPC 和 TPC 的層級可以劃分為很多的 SM

SM 進一步可以劃分為 4 組,每組都有自己的 64KB Register File 和很多的計算核心,

同一個 SM 中所有運行的 thread 共享 256KB 的 Shared Memory 和 L1 Data Cache

同一個 GPU 內的所有 SM 共享 50MB L2 Cache 和 80GB HBM3 Memory

進一步向外看,同一個節點上的 GPU 通過 NVLink/NVSwitch 連接在一起

841b02fc-756a-11ee-939d-92fbcf53809c.png

簡化的 H100 結構

這張圖里面我們已經看到了對應于硬件,從軟件層面 CUDA 編程模型中的視角,我們進一步介紹 CUDA 編程模型。在 CUDA 編程模型中,CPU 和主存被稱為 Host,GPU 和顯存被稱為 Device。CUDA 程序中既包含 Host 程序,又包含 Device 程序,它們分別在 CPU 和 GPU 上運行。

84233418-756a-11ee-939d-92fbcf53809c.png

為了實現 GPU 并行加速計算,我們需要在 Host 上執行 kernel launch,讓核函數在 Device 上的多個線程并發執行。CUDA 將核函數所定義的運算稱為線程(Thread),多個線程組成一個塊(Block),多個塊組成網格(Grid)。具體的方式就是在調用核函數的時候通過 <<>> 來指定核函數要執行的線程數量 N,之后 GPU 上的 N 個 Core 會并行執行核函數,并且每個線程會分配一個唯一的線程號 threadID,這個 ID 值可以通過核函數的內置變量 threadIdx 來獲得。 一個線程需要兩個內置的坐標變量 (blockIdx,threadIdx) 來唯一標識,它們都是 dim3 類型變量,其中 blockIdx 指明線程所在 grid 中的位置,而 threaIdx 指明線程所在 block 中的位置。下面即是一個典型的矩陣乘法的 CUDA 程序示例,定義 block 大小為 16 x 16,也就是每個 block 有 256 個 threads。grid 的值則根據矩陣大小算出來需要多少個 block。

842e484e-756a-11ee-939d-92fbcf53809c.png

為了進一步理解這里的 CUDA 編程模型概念與硬件結構,我們繼續聊聊剛才沒有提到的 WARP Scheduler。NVIDIA SM 采用 SIMT 架構[21],線程束 warp 是最基本的執行和調度單元,一個 warp 一般包含 32 threads,這些 threads 以不同的數據資源執行相同的指令。

thread 最小的計算單元,每個 thread 擁有自己的程序計數器和狀態寄存器 對應于 Core, or lanes
warp 最小的執行和調度單元,一個 SM 的 CUDA Core 會分組成幾個 warp Warp Scheduler 一次調度一個 warp
block 一個 block 中的 warp 只能在同一個 SM 調度 對應于 SM,一個 warp 中的 threads 必然在同一個 block
grid 一個 GPU 對應于 GPU
CUDA 視角 功能 硬件視角

雖然 warp 中的線程執行同一程序地址,但可能具有不同的行為,比如分支結構,因為 GPU 規定 warp 中所有線程在同一周期執行相同的指令,warp 發散會導致性能下降。一個 SM 同時并發的 warp 是有限的,因為資源限制,SM 要為每個線程塊分配共享內存,而也要為每個線程束中的線程分配獨立的寄存器,所以 SM 的配置會影響其所支持的線程塊和 warp 并發數量。

84485c02-756a-11ee-939d-92fbcf53809c.png

同一個 block 的 warp 只能在同一個 SM 調度運行,但是同一個 SM 可以容納來自不同 block 的多個 warp。主流的架構中每個 SM 最大 2048 個 threads,也就是最多 64 個 warps。一個 SM 有 4 組 warp scheduler,哪個 warp ready 了就調度哪個。一般 warp 可能因為在等內存搬運、等計算 core 或者等 sync 之類的而沒有 ready。warp 調度上了之后,就可以走到 dispatch unit。

844cfb2c-756a-11ee-939d-92fbcf53809c.png

到現在為止,前面介紹的 CUDA 編程模型實際上都是在 Hopper 架構以前的抽象,也就是 grid/block 兩級調度,block 映射到 SM 上。隨著 Cooperative Groups 的引入和異步編程的支持,多個 Kernel 之間以生產者和消費者的方式通信,SM 到 SM 之間的通信帶寬也在增加。

8459b524-756a-11ee-939d-92fbcf53809c.png

在 Hopper 架構中,新增了 Distributed Shared Memory (DSMEM) 的概念,在一個 GPC 內部的 SM 有了專用的通信帶寬,因此 CUDA 上新增了一層 Cluster 的調度層次。

84662d40-756a-11ee-939d-92fbcf53809c.png

847182a8-756a-11ee-939d-92fbcf53809c.png

有了 cluster 這一層抽象之后,類似于同一個 block 的 threads 都會被調度到同一個 SM,同一個 cluster 的 thread blocks 都會被調度到同一個 GPC 中。

847dac86-756a-11ee-939d-92fbcf53809c.png

這樣同一個 cluster 中不同 block 的 threads 可以通過 SM to SM Network 訪問另一個 block 的 DSMEM。這樣在一個 GPC 內部實現多個 SM 的 LD/ST,Atomic,Reduce 和異步 DMA 操作都變得非常的簡潔。

84818946-756a-11ee-939d-92fbcf53809c.png

從 CUDA 編程模型的內存模型也就變成了下圖所示:

848a1eee-756a-11ee-939d-92fbcf53809c.png

本質上看,CUDA 引入 block 和 cluster 的抽象,都是為了更好地利用空間局部性原理。Block 可以讓所有的 threads 調度到同一個 SM,讓 threads 可以通過 fast barriers 快速同步,并且通過 SM 的 Shared Memory 交換數據。隨著 GPU 的 SM 越來越多,僅僅使用 Block 這一層抽象已經不能夠更好地利用局部性原理,因此 Hopper 引入了 Cluster 這層抽象,讓所有的 threads 運行在同一個 GPC 內部。

總結:本小節簡單介紹了下 NVIDIA CUDA 編程模型與對應的 GPU 硬件體系結構。事實上,NVIDIA 的硬件體系結構是在不斷變化的,從最早 Telsa 架構的 SIMT 模型,到 Volta 架構為每個 Thread 引入獨立的程序計數器 PC,再到后面 Cooperative Groups 和異步編程 API 的引入,這些設計是經過了各種權衡和 tradeoff 做出的。關于 NVIDIA 系列 GPU 架構的演進,強烈推薦 zartbot 的系列文章[22]。

06.CUDA Core 與 Tensor Core 的演進

在深度學習中有大量的

84982980-756a-11ee-939d-92fbcf53809c.png

計算,然后通過激活函數傳遞到下一層神經網絡。這是一個典型的 GEMM 操作,對于 GEMM 的優化是一個非常有意思的話題,從數學角度 Strassen 等算法的優化,到計算機角度利用訪存局部性[23]等原理進行優化,乃至各種硬件層面的優化,都可以做的非常深。 2016 年 Google 發布 TPU[24],基于脈動陣列[25]這一古老技術從硬件上優化矩陣乘法,吹響了各類 DSA 的 AI 芯片挑戰 NVIDIA GPU 的號角。在 SIMT 道路上一路前行的 NVIDIA 積極應戰,在上一波深度學習喧囂的高潮也就是 2017 年發布了 Volta 架構,開始走上 DSA 的路子,引入了 Tensor Core。

84a31e9e-756a-11ee-939d-92fbcf53809c.gif

Volta Tensor Core vs Pascal CUDA Core

與 CUDA Core 在單位時鐘周期只能執行一次浮點乘法計算不同,Tensor Core 在單位時間可以執行一次矩陣乘法。以 Volta 架構為例,Tensor Core 可以支持每個時鐘周期 4 x 4 x 4 混合精度乘加,其中 A 矩陣和 B 矩陣都是 FP16 的精度,C 矩陣和 D 矩陣是 FP16 或者 FP32 的精度。

84cbb138-756a-11ee-939d-92fbcf53809c.png

在深度學習中,相對于 HPC 領域標準 IEEE 浮點數計算,混合低精度計算更加常見。因此在 Volta 架構之后,NVIDIA 依次在之后的架構加入了更多低精度計算到 Tensor Core 中。

84cfae00-756a-11ee-939d-92fbcf53809c.png

Turing 架構加入支持 INT8/INT4/INT1 的數據類型。Ampere 架構中加入新的 BF16 和 TF32 數據類型,并加入對于 Sparsity 的支持,并且每個 TensorCore 在每個時鐘周期支持的混合精度矩陣乘加從 Volta 的 4 x 4 x 4 進化到 8 x 4 x 8。

84d43948-756a-11ee-939d-92fbcf53809c.png

新增的 TF32 不會遇到 FP16 那樣溢出的問題,同時配合新的 BF16 和 FP32 可以實現階梯精度提升,而對于一個乘法器而言,又節省了芯片面積。BF16 數據格式是32位 IEEE 754單精度浮點格式(float32)的截斷(16位)版本。它保留了32位浮點數的近似動態范圍,保留了指數的8位,但只支持8位精度。Bfloat16用于降低存儲需求,提高機器學習算法的計算速度[26]。

84dc3d28-756a-11ee-939d-92fbcf53809c.png

從而算力進一步增加:

84ec47ea-756a-11ee-939d-92fbcf53809c.png

到了 Hopper 架構,每個 TensorCore 在每個時鐘周期支持的混合精度矩陣乘加進化到 4 x 8 x 16。TF32,FP64,INT8 Tensor Core 相對于 Ampere 有了 3 倍的性能提升。

84f8eb1c-756a-11ee-939d-92fbcf53809c.png

同時,也加速了 Spare 張量計算:

8505d656-756a-11ee-939d-92fbcf53809c.png

最重要的是,NVIDIA 在 Hopper 架構 TensorCore 引入了 FP8 的數據類型,并針對 Transformer 架構提出了 Transformer Engine 的技術,這個我們在下一小節會進一步闡述,此處暫時不表。

850d9666-756a-11ee-939d-92fbcf53809c.png

CUDA 提供了 WMMA (Warp MMA) 等底層 API 來利用 TensorCore 的硬件特性[27]。但是 TensorCore 編程并不容易,想要喂滿太難了,因此 CUDA 進一步提供了類似于 CUTLASS 和 CUBLAS,CUDNN 等更上層的庫來實現的,以后有機會可以進一步介紹其原理,此處暫時不表。

851873b0-756a-11ee-939d-92fbcf53809c.png

CUTLASS: GEMM Hierarchy with Epilogue

07.FP8 混合精度訓練與 Transformer Engine

如前所述,Hopper 架構的一個重要特點就是 TensorCore 引入了 FP8 的數據類型,這也是 H100 相對于 A100 的一個巨大優勢。

850d9666-756a-11ee-939d-92fbcf53809c.png

為什么要 FP8 的數據格式 ?

加速 math-intensive 操作:因為精度低,相對于 16-bits 的 TensorCore,FP8 快 2 倍。

加速 memory-intensive 操作:因為只占用一個字節,FP8 相對于 16-bits 能夠大幅減少訪問存儲 traffic,也可以減少模型的內存占用

更加方便推理:在推理中使用 FP8 已經是非常流行的選擇,當使用 FP8 格式訓練時可以更加方便推理部署,不再需要對模型進一步量化

852a90d6-756a-11ee-939d-92fbcf53809c.png

Source: FP8 Formats for Deep Learning Tensor Core 中 FP8 支持兩種數據格式:

E4M3

不遵循 IEEE 754 標準,支持 NaN 和 Zero 的編碼,但不支持 Inf

數據精度相對更高,可用于 fwd pass 和 inference

E5M2:

遵循 IEEE 754 標準,支持 Inf、NaN 和 Zero 的編碼

數據范圍更廣,可用于混合精度訓練的梯度表示

853536ee-756a-11ee-939d-92fbcf53809c.png

下圖展示了 FP8 GEMM 計算的主要過程示意圖:

8539922a-756a-11ee-939d-92fbcf53809c.png

NVIDIA,ARM 和 Intel 在這篇論文[28] 中,利用 FP8 混合精度訓練,在基于 Transformer 的語言模型和基于 CNN 的視覺模型等不同網絡結構下進行驗證,證明了 FP8 可以達到與 BF16 基本一致的效果。

854831c2-756a-11ee-939d-92fbcf53809c.png

說了這么多的 FP8 混合精度訓練,那么 H100 白皮書里面的 Transformer Engine 又是什么呢?實際上,Transformer Engine 并不是涉及專用的硬件結構,而是一個軟件層面加速 Transformer 訓練的庫[29],其中提供了 FP8 混合精度訓練的加速方案。Transformer Engine 本質上可以通過 label 輸出的值域動態調整浮點精度,這里不再詳細論述,可以參考 Transformer Engine 的官方文檔[30]。

85522fe2-756a-11ee-939d-92fbcf53809c.png

08.英偉達帝國大廈已成,頭上僅剩幾朵烏云

30 年前,NVIDIA 公司成立,30 年后 NVIDIA 公司市值超過萬億美元,構建了自己的龐大帝國。站在 2023 的今天回看過去三十年 GPU 市場的發展,令人感慨萬千:

1983 美國電子游戲的大蕭條[31] 和 80 年代個人電腦的推出,讓游戲從原來的家用游戲機轉移到 PC 平臺,從而引發了 PC 平臺下圖形卡的需求。1993 年成立初期的 NVIDIA 步履維艱,正是靠著日本街機游戲公司世嘉 Sega 的資助,以及押注微軟公司的 DirectX 接口,推出的 RIVA 迅速得到市場認可,并進一步推出世界第一款 GPU GeForce 256,徹底站穩市場。在那個群魔亂舞的 1990 到 2000 時代:

顯卡先驅 3DFX 最終被 NVIDIA 收購

S3 被 VIA 收購逐漸沉寂

Intel 最終放棄獨顯專攻集顯,這個劇情在 2000 年代再次重現,直到 2018 年 Intel 才真正意識到他們失去了什么,重新開始生產獨立顯卡

ATI 繼續和 NVIDIA 爭斗,最終被 AMD 收購,經過一番整合后 AMD 今日仍在競爭的一線

2000 到 2010 年代,NVIDIA 與 ATI 爭霸可編程 GPU。NVIDIA 在 2006 年推出極其靈活可編程的 CUDA 架構,并堅定地在這條路上走了下去,構建了其如今最大的護城河。

2010 年代,移動互聯網浪潮的到來,NVIDIA 推出 TEGRA 移動處理器嘗試染指這一市場卻最終平淡收場。所幸的是,2012 年之后深度學習開始崛起,NVIDIA 快速抓住了這波機會,CUDA 最終統治了這一市場,直到如今 AMD 的 ROCm 仍在苦苦維持。這十年 NVIDIA 繼續高歌猛進,抓住包括加密貨幣和自動駕駛等在內每一個市場機會,在數據中心、HPC、專業圖形等市場取得統治地位。

2020 年后,NVIDIA 收購了 Mellanox,強大的算力結合高速通信網絡,NVIDIA 又講起了 DPU 的故事,并繼續慢慢培育其 DOCA 平臺,試圖重演 CUDA 的故事。可惜的是,NVIDIA 收購 ARM 最終沒有被批準,ARM 獨立上市,不然手握 CPU、GPU 和 DPU 的英偉達真的可以完全定義下一個世代的計算平臺。

8559ac2c-756a-11ee-939d-92fbcf53809c.png

Cited chip usage in AI papers, Source: State of AI Report Compute Index 老黃的刀法讓大家又愛又恨,曾經的屠龍者成為了新的巨龍。H100 如今這么貴卻又賣的如此好,華為鯤鵬的夏晶老師分析了 H100 的成本[32],售價超過 3 萬美元的 H100 實際物理成本可能才不到 3000 美元,這也與海外投研機構 Raymond James 分析的 3,320 美元基本一致[33],純從物理成本上看 H100 利潤率接近 1000%。雖然這樣拋開研發成本看利潤率不太公允,但是也可以看出 NVIDIA 的底氣了。這真的是做 Infra 的最牛存在了,我可以賣的貴,我可以自己定義平臺,而你還不得不搶著來用我的。惡龍仍在,天下苦英偉達久矣,仍有新的少年想要戰勝惡龍。 今年 6 月,AMD 發布了 Instinct MI300 系列,其中 MI300X 直接對標 NVIDIA H100,蘇媽在接受采訪時,面對 CUDA 這一難以逾越的護城河問題的回答[34]反映了業界對于 LLM 領域強依賴于 NVIDIA 的問題的急切。

Q: If you look at what Wall Street thinks Nvidia’s mode is, it’s CUDA... You have ROCm, which is a little different. Do you think that that’s a moat that you can overcome with better products or with a more open approach? Lisa Su: I’m not a believer in moats when the market is moving as fast as it is... When you look at going forward, actually what you find is everyone’s looking for the ability to build hardware-agnostic software because people want choice. Frankly, people want choice... Things like PyTorch, for example, which tends to be that hardware-agnostic capability.

Q:PyTorch is a big deal, right? This is the language that all these models are actually coded in. I talk to a bunch of cloud CEOs. They don’t love their dependency on Nvidia as much as anybody doesn’t love being dependent on any one vendor. Is this a place where you can go work with those cloud providers and say, “We’re going to optimize our chips for PyTorch and not CUDA,” and developers can just run on PyTorch and pick whichever is best optimized? Lisa Su: That’s exactly it. PyTorch really is trying to be that sort of hardware-agnostic layer — one of the major milestones that we’ve come up with is on PyTorch 2.0. But our goal is “may the best chip win.” And the way you do that is to make the software much more seamless. And it’s PyTorch, but it’s also Jax. It’s also some of the tools that OpenAI is bringing in with Triton.

CUDA 確實非常優秀,但它是不是優秀到你要為它支付過多的成本,包括實際的金錢成本和各種隱形成本。基于 PyTorch 或者 Jax 這些新一代的中間層,新的解決方案正在形成。「AMD AI Software Solved – MI300X Pricing, Performance, PyTorch 2.0, FlashAttention, OpenAI Triton」 這篇文章[35] 展示了基于 PyTorch 2.0 和 OpenAI Triton, MosaicML 能夠基本不做代碼修改,在 AMD 硬件平臺上實現與 NVIDIA A100 基本一致的性能。

8569f7d0-756a-11ee-939d-92fbcf53809c.png

We profiled training throughput of MPT models from 1B to 13B parameters and found that the per-GPU-throughput ofMI250 was within 80% of the A100-40GB and within 73% of the A100-80GB. Abhi Venigalla, MosaicML[36]

今年 7 月,Intel 在國內發布 Habana Gaudi 2 AI 芯片,期望在國內禁售英偉達 H100/A100 的當下,分到這一波生成式人工智能浪潮的蛋糕。Habana Gaudi 2,正是 Intel 在 2019 年收購 Habana Labs 之后的作品,也是 Intel 在收購 Nervana 浪費 3 年時間后的再次嘗試。 除了 NVIDIA,AMD,Intel 這三個在 CPU/GPU/DPU 等各個領域打成一片的老冤家,還有 GraphCore、Cerebras 這樣的 AI Chip 創業公司仍在繼續。

85782f4e-756a-11ee-939d-92fbcf53809c.png

與此同時,云服務巨頭家大業大,自然不甘心受制于人,紛紛投入自研 AI 芯片。前不久,AWS 投資 40 億美元到 Anthropic[37],目標之一就是讓 AWS 自研 Trainium 和 Inferentia 得到大量應用[38]。8 月底,Google Cloud 的 H100 實例 A3 終于姍姍來遲,但是也許這并不是他們的重點,重點是他們發布了 TPUv5e[39]。作為 AI 芯片的先行者,Google 的 TPU 相對于 AWS 的 Trainium/Inferentia 要成熟的多,TPU 也是應對 NVIDIA H100 的有力競爭對手[40]。 英偉達帝國大廈已經建立,只是頭上還有幾朵烏云。在美國禁售 A100/H100 的當下,如華為昇騰 910 這樣的國產 AI芯片也開始慢慢得到應用。30 年前,面對個人電腦這個新計算平臺的范式轉移,誕生了像 Intel,Microsoft 和 NVIDIA 這樣的巨頭。30 年后的今天,新一波生成式人工智能或將迎來新的計算范式轉移,這一次面對巨龍,又將會是怎樣的故事呢。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • gpu
    gpu
    +關注

    關注

    28

    文章

    4753

    瀏覽量

    129064
  • AI芯片
    +關注

    關注

    17

    文章

    1893

    瀏覽量

    35102
  • 算力
    +關注

    關注

    1

    文章

    994

    瀏覽量

    14863

原文標題:瘋狂的 H100:現代 GPU 體系結構淺析,從算力焦慮開始聊起

文章出處:【微信號:算力基建,微信公眾號:算力基建】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    英偉達a100h100哪個強?英偉達A100H100的區別

    基于Ampere架構的GPU計算加速器,專為高性能計算、人工智能和機器學習等領域而設計。它擁有高達6912個CUDA核心(在32GB版本中),是目前最強大的數據中心GPU之一。A100支持更快的訓練速度和更大的模型容量,適用于需
    的頭像 發表于 08-09 17:31 ?4.7w次閱讀

    名單公布!【書籍評測活動NO.43】 芯片 | 高性能 CPU/GPU/NPU 微架構分析

    這個想法被否決了,因為投入較大、難以落地,且客戶對的認同遠不及今天這種高度。 這幾年間其實我們聯系甚少,但是作者一直沒有脫離對芯片的應用和關注。特別是目睹GPU消費電子轉向
    發表于 09-02 10:09

    【「芯片 | 高性能 CPU/GPU/NPU 微架構分析」閱讀體驗】--全書概覽

    GPU、NPU,給我們剖析了芯片的微架構。書中有對芯片方案商處理器的講解,理論聯系實際,使讀者能更好理解芯片。 全書共11章,
    發表于 10-15 22:08

    淺析PCI體系結構

    PCI總線作為處理器系統的局部總線,主要目的是為了連接外部設備,而不是作為處理器的系統總線連接Cache和主存儲器。但是PCI總線、系統總線和處理器體系結構之間依然存在著緊密的聯系。
    發表于 08-06 06:02

    LTE體系結構

    LTE體系結構 LTE體系結構可以借助SAE 體系結構來做詳細描述。在SAE 體系結構中,RNC部分功能、GGSN、SGSN 節點將被融合為一個新的節點,
    發表于 06-16 13:09 ?9852次閱讀

    NVIDIA發布新一代產品—NVIDIA H100

    NVIDIA發布新一代產品—NVIDIA H100H100是一款超大的芯片,采用TSMC 4N工藝,具有800億個晶體管,也是首款采用HBM3標準的GPU
    的頭像 發表于 03-23 17:21 ?2878次閱讀
    NVIDIA發布新一代產品—NVIDIA <b class='flag-5'>H100</b>

    NVIDIA發布最新Hopper架構的H100系列GPU和Grace CPU超級芯片

    今日凌晨,NVIDIA(英偉達)發布了基于最新Hopper架構的H100系列GPU和Grace CPU超級芯片!
    的頭像 發表于 03-26 09:07 ?2915次閱讀

    藍海大腦服務器全力支持NVIDIA H100 GPU

    藍海大腦宣布服務器產品線全力支持最新的 NVIDIA H100 GPU。藍海大腦服務器產品在單機上最多可支持4、8甚至9個H100 GPU,可為多種人工智能場景提供超強
    的頭像 發表于 03-31 11:47 ?1334次閱讀

    利用NVIDIA HGX H100加速計算數據中心平臺應用

    HGX H100 8- GPU 是新一代 Hopper GPU 服務器的關鍵組成部分。它擁有八個 H100 張量核 GPU 和四個第三代 N
    的頭像 發表于 04-20 10:54 ?2865次閱讀
    利用NVIDIA HGX <b class='flag-5'>H100</b>加速計算數據中心平臺應用

    關于NVIDIA H100 GPU的問題解答

    今年的 GTC22 上 NVIDIA 發布其首款基于 Hopper 架構的 GPU —NVIDIA H100
    的頭像 發表于 07-18 10:35 ?1838次閱讀

    英偉達a100h100哪個強?

    英偉達a100h100哪個強? 英偉達A100H100更強。英偉達A100在處理大型模型和數據集時可能比V
    的頭像 發表于 08-07 17:32 ?1.5w次閱讀

    存儲體系結構現代

    電子發燒友網站提供《存儲體系結構現代化.pdf》資料免費下載
    發表于 08-30 16:58 ?0次下載
    存儲<b class='flag-5'>體系結構</b>的<b class='flag-5'>現代</b>化

    傳英偉達新AI芯片H20綜合算H100降80%

    但據悉,三種新型AI芯片不是“改良型”,而是“縮小型”。用于ai模型教育的hgx h20的帶寬和計算速度是有限的。整體計算能力理論上比nvidia的h100 gpu芯片低80%左右。h
    的頭像 發表于 11-13 09:41 ?1790次閱讀

    英偉達H100,沒那么缺貨了 !RTX 4090 ,大漲

    這樣,在云端使用 H100 GPU 的排隊時間可能會縮短。數據中心提供商和前比特幣挖礦公司正在開設具有 H100 集群的數據中心。這些公司承諾以大型云提供商成本的一小部分提供 H100
    的頭像 發表于 11-23 15:59 ?1900次閱讀

    一文梳理:如何構建并優化GPU中心?

    目前最常見的AI中心部署的GPU集群大小為 2048、1024、512 和 256,且部署成本隨 GPU 數量線性增長。本文將以相對折中的1024
    的頭像 發表于 11-15 11:59 ?404次閱讀
    一文梳理:如何構建并優化<b class='flag-5'>GPU</b>云<b class='flag-5'>算</b><b class='flag-5'>力</b>中心?
    主站蜘蛛池模板: 99久久国产视频| 欧洲最强rapper潮水喷视频 | A级韩国乱理伦片在线观看| 少妇一夜未归暴露妓女身份| 狂操空姐电影| 国产成人免费片在线观看| 24小时日本在线观看片免费| 亚洲 欧美 制服 校园 动漫| 欧美日韩亚洲成人| 久久天天躁狠狠躁夜夜躁| 国产亚洲精品久久久久久禁果TV| 北条麻妃快播| 97精品国产高清在线看入口| 亚洲中字慕日产2020| 午夜精品久久久久久影视riav | 狠狠狠色丁香婷婷综合久久| 芳草地在线观看免费观看| 8050午夜二级一片| 伊人综合在线22| 亚洲精品无码专区在线播放| 特级毛片AAAAAA| 日韩精品无码久久一区二区三| 男人就爱吃这套下载| 久久久精品免费免费直播| 很很射影院| 国产综合欧美区在线| 国产精品久久久久影院嫩草| 俄罗斯美女破处| 扒开胸罩揉她的乳尖视频| 99久久99久久久精品久久| 中文字幕 亚洲 有码 在线| 亚洲伊人精品综合在合线| 亚洲精品视频免费在线观看| 亚洲 日本 欧美 中文字幕| 天天狠狠色噜噜| 神马老子影院午夜伦| 牛牛精品专区在线| 免费看黄色一级| 欧美极品尿交| 日本大片免a费观看视频| 秋霞网站一级一片|