本文來自“算力大時代,AI算力產(chǎn)業(yè)鏈全景梳理(2023)”,從廣義上講,能運行AI?算法的芯片都叫AI?芯片。CPU、GPU、FPGA、NPU、ASIC?都能執(zhí)行AI?算法,但在執(zhí)行效率層面上有巨大的差異。CPU?可以快速執(zhí)行復雜的數(shù)學計算,但同時執(zhí)行多項任務時,CPU?性能開始下降,目前行業(yè)內(nèi)基本確認CPU?不適用于AI?計算。
CPU+xPU?的異構方案成為大算力場景標配,GPU為應用最廣泛的?AI?芯片。目前業(yè)內(nèi)廣泛認同的AI?芯片類型包括GPU、FPGA、NPU?等。由于?CPU?負責對計算機的硬件資源進行控制調(diào)配,也要負責操作系統(tǒng)的運行,在現(xiàn)代計算系統(tǒng)中仍是不可或缺的。GPU、FPGA?等芯片都是作為?CPU?的加速器而存在,因此目前主流的?AI計算系統(tǒng)均為?CPU+xPU?的異構并行。CPU+GPU?是目前最流行的異構計算系統(tǒng),在?HPC、圖形圖像處理以及AI?訓練/推理等場景為主流選擇。IDC?數(shù)據(jù)顯示,2021?年中國?AI?芯片市場中,GPU?市占率為?89%。

在GPU?問世以后,NVIDIA?及其競爭對手?ATI(被?AMD?收購)一直在為他們的顯卡包裝更多的功能。2006?年?NVIDIA?發(fā)布了?CUDA?開發(fā)環(huán)境,這是最早被廣泛應用的?GPU?計算編程模型。CUDA?將?GPU?的能力向科學計算等領域開放,標志著?GPU?成為一種更通用的計算設備?GPGPU(General Purpose GPU)。NVIDIA?也在之后推出了面向數(shù)據(jù)中心的?GPU?產(chǎn)品線。

GPU?性能提升與功能豐富逐步滿足?AI?運算需要。2010?年?NVIDIA?提出的?Fermi?架構是首個完整的?GPU計算架構,其中提出的許多新概念沿用至今。Kepler?架構在硬件上擁有了雙精度計算單元(FP64),并提出?GPUDirect?技術,繞過?CPU/System Memory,與其他?GPU?直接進行數(shù)據(jù)交互。Pascal?架構應用了第一代?NVLink。
Volta?架構開始應用?Tensor Core,對?AI?計算加速具有重要意義。簡要回顧?NVIDIA GPU?硬件變革歷程,工藝、計算核心數(shù)增加等基礎特性的升級持續(xù)推動性能提升,同時每一代架構所包含的功能特性也在不斷豐富,逐漸更好地適配?AI?運算的需要。

AI?的數(shù)據(jù)來源廣泛,GPU?逐漸實現(xiàn)對各類數(shù)據(jù)類型的支持。依照精度差異,算力可從?INT8(整數(shù)類型)、FP16(半精度)、FP32(單精度)、FP64(雙精度)等不同維度對比。AI?應用處理的數(shù)據(jù)包括文字、圖片或視頻,數(shù)據(jù)精度類型差異大。對于數(shù)據(jù)表征來講,精度越高,準確性越高;但降低精度可以節(jié)省運算時間,減少成本。
總體來看,精度的選擇需要在準確度、成本、時間之間取得平衡。目前許多?AI?模型中運行半精度甚至整形計算即可完成符合準確度的推理和訓練。隨著架構的迭代,NVIDIA GPU?能支持的數(shù)據(jù)類型持續(xù)豐富,例如?Turing架構?T4?開始支持?INT8,Ampere?架構?A100?的?Tensor Core?開始支持TF32。

均衡分配資源的前提下,處理低精度的硬件單元數(shù)量更多,表現(xiàn)更高的算力性能。GPU?作為加速器得到廣泛應用一定程度上得益于它的通用性,為了在不同精度的數(shù)據(jù)類型上具有良好的性能,以兼顧?AI、科學計算等不同場景的需要,英偉達在分配處理不同數(shù)據(jù)類型的硬件單元時大體上保持均衡。因為低精度數(shù)據(jù)類型的計算占用更少的硬件資源,同一款?GPU?中的處理低精度數(shù)據(jù)類型的硬件單元的數(shù)量較多,對應計算能力也較強。以V100?為例,每個?SM?中?FP32?單元的數(shù)量都為?FP64?單元的兩倍,最終?V100?的?FP32?算力(15.7 TFLOPS)也近似為?FP64(7.8 TFLOPS)的兩倍,類似的規(guī)律也可以在各代架構旗艦?P100、A100?和?H100?中看到。

GPU?引入特殊硬件單元加速?AI?的核心運算環(huán)節(jié)。矩陣-矩陣乘法(GEMM)運算是神經(jīng)網(wǎng)絡訓練和推理的核心,本質(zhì)是在網(wǎng)絡互連層中將大矩陣輸入數(shù)據(jù)和權重相乘。矩陣乘積的求解過程需要大量的乘積累加操作,而?FMA(Fused Multiply–accumulate operation,融合乘加)可以消耗更少的時鐘周期來完成這一過程。傳統(tǒng)?CUDACore?執(zhí)行?FMA?指令,硬件層面需要將數(shù)據(jù)按寄存器->ALU->寄存器->ALU->寄存器的方式來回搬運。2017?年發(fā)布的?Volta?架構首度引入了?Tensor Core(張量核心),是由?NVIDIA?研發(fā)的新型處理核心。根據(jù)?NVIDIA?數(shù)據(jù),Volta Tensor Core?可以在一個?GPU?時鐘周期內(nèi)執(zhí)行?4×4×4=64?次?FMA操作,吞吐量是?Pascal?架構下?CUDA Core的12?倍。

Tensor Core?持續(xù)迭代提升其加速能力。Volta?架構引入?Tensor Core?的改動使?GPU?的?AI?算力有了明顯提升,后續(xù)在每一代的架構升級中,Tensor Core?都有比較大的改進,支持的數(shù)據(jù)類型也逐漸增多。以?A100?到?H100為例,Tensor Core?由?3.0?迭代至?4.0,H100?在?FP16 Tensor Core?的峰值吞吐量提升至?A100?的?3?倍。同時,H100Tensor Core?支持新的數(shù)據(jù)類型?FP8,H100 FP8 Tensor Core?的吞吐量是?A100 FP16 Tensor Core?的?6?倍。

Tensor Core?加速下,低精度比特位寬的算力爆發(fā)式增長,契合?AI?計算需要。Tensor Core?的應用使算力快速、高效增長,選取?Pascal?至?Hopper?架構時期每一代的旗艦數(shù)據(jù)中心顯卡,對比經(jīng)?Tensor Core?加速前后的?FP16算力指標可以得到:(1)經(jīng)?Tensor Core?加速的?FP16?算力明顯高于加速之前。(2)每單位?Tensor core?支持的算力明顯高于每單位?Cuda Core?支持的算力。同時,Tensor Core?從?2017?年推出以來首先完善了對低精度數(shù)據(jù)類型的支持,順應了?AI?發(fā)展的需要。

數(shù)據(jù)訪問支配著計算能力利用率。AI?運算涉及到大量數(shù)據(jù)的存儲與處理,根據(jù)?Cadence?數(shù)據(jù),與一般工作負載相比,每臺?AI?訓練服務器需要?6?倍的內(nèi)存容量。而在過去幾十年中,處理器的運行速度隨著摩爾定律高速提升,而?DRAM?的性能提升速度遠遠慢于處理器速度。目前?DRAM?的性能已經(jīng)成為了整體計算機性能的一個重要瓶頸,即所謂阻礙性能提升的“內(nèi)存墻”。除了性能之外,內(nèi)存對于能效比的限制也成為一個瓶頸,Cadence數(shù)據(jù)顯示,在自然語言類?AI?負載中,存儲消耗的能量占比達到?82%。

GPU?采用高帶寬?HBM?降低“內(nèi)存墻”影響。為防止占用系統(tǒng)內(nèi)存并提供較高的帶寬和較低的延時,GPU均配備有獨立的的內(nèi)存。常規(guī)的?GDDR?焊接在?GPU?芯片周邊的?PCB?板上,與處理器之間的數(shù)據(jù)傳輸速率慢,并且存儲容量小,成為運算速度提升的瓶頸。HBM?裸片通過?TSV?進行堆疊,然后?HBM?整體與?GPU?核心通過中介層互連,因此?HBM?獲得了極高的帶寬,并節(jié)省了?PCB?面積。目前,GDDR?顯存仍是消費級?GPU?的行業(yè)標準,HBM?則成為數(shù)據(jù)中心?GPU?的主流選擇。

硬件單元的改進與顯存升級增強了單張?GPU?算力的釋放,然而,隨著?Transformer?模型的大規(guī)模發(fā)展和應
用,模型參數(shù)量呈爆炸式增長,GPT-3?參數(shù)量達到了?1750?億,相比?GPT?增長了近?1500?倍,預訓練數(shù)據(jù)量更是
從?5GB?提升到了?45TB。大模型參數(shù)量的指數(shù)級增長帶來的諸多問題使?GPU?集群化運算成為必須:
(1)即使最先進的?GPU,也不再可能將模型參數(shù)擬合到主內(nèi)存中。
(2)即使模型可以安裝在單個?GPU?中(例如,通過在主機和設備內(nèi)存之間交換參數(shù)),所需的大量計算操作也可能導致在沒有并行化的情況下不切實際地延長訓練時間。根據(jù)?NVIDIA?數(shù)據(jù),在?8?個?V100 GPU?上訓練一個具有?1750?億個參數(shù)的?GPT-3?模型需要?36?年,而在?512?個?V100 GPU?上訓練需要?7?個月。

NVIDIA?開發(fā)?NVLink?技術解決?GPU?集群通信。在硬件端,GPU?之間穩(wěn)定、高速的通信是實現(xiàn)集群運算所必須的條件。傳統(tǒng)?x86?服務器的互連通道?PCIe?的互連帶寬由其代際與結構決定,例如?x16 PCIe 4.0?雙向帶寬僅為?64GB/s。除此之外,GPU?之間通過?PCIe?交互還會與總線上的?CPU?操作競爭,甚至進一步占用可用帶寬。
NVIDIA?為突破?PCIe?互連的帶寬限制,在?P100?上搭載了首項高速?GPU?互連技術?NVLink(一種總線及通訊協(xié)議),GPU?之間無需再通過?PCIe?進行交互。

NVLink?繼續(xù)與?NVIDIA GPU?架構同步發(fā)展,每一種新架構都伴隨著新一代?NVLink。第四代?NVLink?為每個?GPU?提供?900 GB/s?的雙向帶寬,比上一代高?1.5?倍,比第一代?NVLink?高?5.6?倍。

NVDIA?開發(fā)基于?NVLink?的芯片?NVSwitch,作為?GPU?集群數(shù)據(jù)通信的“樞紐”。NVLink 1.0?技術使用時,一臺服務器中的?8?個?GPU?無法全部實現(xiàn)直接互連。同時,當?GPU?數(shù)量增加時,僅依靠?NVLink?技術,需要眾多數(shù)量的總線。為解決上述問題,NVIDIA?在?NVLink 2.0?時期發(fā)布了?NVSwitch,實現(xiàn)了?NVLink?的全連接。
NVSwitch?是一款?GPU?橋接芯片,可提供所需的?NVLink?交叉網(wǎng)絡,在?GPU?之間的通信中發(fā)揮“樞紐”作用。借助于?NVswitch,每顆?GPU?都能以相同的延遲和速度訪問其它的?GPU。就程序來看,16?個?GPU?都被視為一個?GPU,系統(tǒng)效率得到了最大化,大大降低了多?GPU?系統(tǒng)的優(yōu)化難度。


通過添加更多?NVSwitch?來支持更多?GPU,集群分布式運算得以實現(xiàn)。當訓練大型語言模型時,NVLink網(wǎng)絡也可以提供顯著的提升。NVSwitch?已成為高性能計算(HPC)和?AI?訓練應用中不可或缺的一部分。
編輯:黃飛
?
電子發(fā)燒友App


























評論