800億晶體管核彈GPU架構深入解讀,又是“拼裝貨”?
在2022年3月NVIDIA GTC大會上,NVIDIA創始人兼CEO黃仁勳介紹了一款基於全新Hopper架構的H100 GPU,這是英偉達迄今用於加速人工智能(AI)、高性能計算(HPC)和數據分析等任務的最強GPU芯片。
性能比上一代A100高6倍,英偉達Hopper架構是怎麼做到的?
作者|陳巍千芯科技
Hopper架構H100 GPU的主要升級
Hopper架構以計算科學的先驅Grace Hopper的姓氏命名。黃教主稱:“Hopper H100是有史以來最大的代際飛躍。H100具有800億個晶體管,在性能上堪稱NVIDIA的“新核彈”。
那麼,“新核彈”的核心是什麼樣的?本文將深入解讀和分析Hopper架構。
Hopper架構的H100與前幾代GPU性能對比
注: Grace Hopper博士是哈佛Mark 1的首批程序員,被譽為編譯語言之母。據稱她發現了計算機程序中的第一個Bug,同時也創造了計算機世界最大的Bug——千年蟲。
01 .
Hopper的整體結構拆解
NVIDIA Hopper架構H100芯片採用台積電4nm工藝(N4是台積電N5工藝的優化版),芯片面積為814平方毫米(比A100小14平方毫米)。
H100 Tensor Core GPU的性能規格
Hopper架構可以視為由兩組對稱結構拼接而成。(是不是有點類似我們之前介紹的蘋果UltraFusion架構的拼接思路?不過這裡的GPU還是單片的。回顧蘋果UltraFusion架構可參見《蘋果芯片“拼裝”的秘方,在專利裡找到了》文章。)
在頂層拓撲上,Hopper似乎與她的前輩Ampere架構差別不大。圖中的Hopper架構GPU由8個圖形處理集群(Graphics Processing Cluster,GPC)“拼接”組成。
Hopper架構基本結構
外周與多組HBM3封裝在一起(Chiplet技術),形成整個芯片模組——從模組上看又是個“拼裝貨”。片上的每個GPC又由9個紋理處理集群(Texture Processor Cluster,TPC)“拼接”組成。
由PCIe5或SMX接口進入的計算任務,通過帶有多實例GPU(Multi-Instance GPU,MIG)控制的GigaThread引擎分配給各個GPC。GPC之間通過L2緩存共享中間數據,GPC計算的中間數據通過NVLink與其他GPU連接/交換。每個TPC由2個流式多處理器(Streaming Multiprocessor,SM)組成。
Hopper架構的性能提升和主要變化體現在新型線程塊集群技術和新一代的流式多處理器(具有第4代張量核心)。
線程塊集群和帶有集群的網格
Hopper架構中引入了一種新的線程塊集群機制,該機制可以跨SM單元進行協同計算。H100 中的線程塊集群可在同一GPC內的大量SM並發運行,這樣對較大的模型具有更好的加速能力。
02 .
新一代流式多處理器SM與FP8支持
Hopper架構的新一代流式多處理器引入了FP8張量核心(Tensor Core)來加速AI訓練和推理。FP8張量核心支持FP32和FP16累加器,以及兩種FP8 輸入類型(E4M3和E5M2)。
流式多處理器SM
與FP16或BF16相比,FP8將數據存儲要求減半,吞吐量翻倍。我們在Transformer引擎的分析中還會看到使用FP8可自適應地提升Transformer的計算速度。
每個SM包括128個FP32 CUDA核心、4個第4代張量核心(Tensor Core)。
進入SM單元的指令首先存入L1指令緩存(L1 Instruction Cache),然後再分發到L0指令緩存(L1 Instruction Cache)。與L0緩存配套的線程束排序器( Wrap Scheduler)和調度單元(Dispatch Unit)來為CUDA核心和張量核心分配計算任務。(注:GPU中最小的硬件計算執行單位是線程束,簡稱Warp。)
FP8具有FP16或BF162 2倍吞吐量
每個SM通過使用4個特殊函數單元(Special Function Unit,SFU)單元進行超越函數和插值函數計算。
03 .
Hopper的張量核心與Transformer引擎
在GPU中,張量核心是用於矩陣乘法和矩陣累加(Matrix Multiply-Accumulate,MMA) 數學運算的專用高性能計算核心,可為AI和HPC應用程序提供突破性的性能加速。
张量核心是GPU中做AI加速的关键模块,也是Ampere及之后GPU架构与早期GPU的显著区别所在。
Hopper的張量核心支持FP8、FP16、BF16、TF32、FP64和INT8 MMA數據類型。這一代張量核心的關鍵點是引入了Transformer引擎。
H100 FP16 Tensor Core的吞吐量是A100 FP16 Tensor Core的3倍
Transformer算子是主流的BERT到GPT-3等NLP模型的基礎,且越來越多地應用於計算機視覺、蛋白質結構預測等不同領域。
與上一代A100相比,新的Transformer引擎與Hopper FP8張量核心相結合,在大型NLP模型上提供高達9倍的AI訓練速度和30倍的AI推理速度。
新的Transformer引擎動態調整數據格式以充分運用算力
為了提升Transformer的計算效率,在這一新的Transformer引擎中使用了混合精度,在計算過程中智能地管理計算精度,在Transformer計算的每一層,根據下一層神經網絡層及所需的精度,在FP8和其他浮點格式中進行動態格式轉換,充分運用張量核心的算力。
04 .
張量存儲加速器與異步執行
Hopper架構中新增加了張量存儲加速器(Tensor Memory Accelerator,TMA) ,以提高張量核心與全局存儲和共享存儲的數據交換效率。
在这一新的TMA操作中,使用张量维度和块坐标指定数据传输,而不是简单的按数据地址直接寻址。TMA通过支持不同的张量布局(1D-5D张量)、不同的存储访问模式、显著降低了寻址开销并提高了效率。
也就是說,原來是一個一個的撿豆子(數據),現在的方法就是一碗一碗的舀豆子。這樣的設計,是不是越來越接近DSA的尋址方式?
TMA的塊坐標尋址方式
當然,TMA操作是異步的,多個線程可以共享數據通道,排序完成數據傳輸。
TMA的一個關鍵優勢是它可以在進行數據複製的時候,釋放線程的算力來執行其他工作。
例如,在A100上,由線程本身負責生成所有地址執行所有數據複製操作。但在Hopper中,TMA來負責生成地址序列(這個思路類似DMA控制器),接管數據複製任務,讓線程去做其他事。
Hopper架構的H100的基於TMA的存儲複製效率更高
05 .
結語:GPU走向領域專用化
總體而言,基於Hopper架構的H100計算性能比Ampere架構的A100提高了大約6倍。
性能大幅提升的核心原因在於引入FP8後的張量核心和針對NLP任務的Transformer引擎,特別是TMA技術減少了SM單元在數據複製時的無用功。
從設計哲學上看,針對數據中心的Hopper架構中DSA(Domain Specific Architecture,特定領域架構)的想法越來越多,且流多處理器間的協作變多。大概老黃也覺得,GPU應朝著領域專用化的方向去發展。
今年發布Hopper架構相對Ampere架構有較多的微觀進步,希望老黃下次能給我們帶來更多的技術驚喜。
參考文獻:《NVIDIA H100 Tensor Core GPU Architecture》白皮書,英偉達;《GPGPU芯片設計:原理與實踐》,陳巍、耿雲川