NVIDIA安培GPU:從TOP500走向雲智應用

八一八安培架構GPU的基本功

2017年5月10日,NVIDIA推出Volta架構及對應的Tesla V100數據中心GPU。一年之後,IBM為美國能源部建造的超級計算機Summit就在近3萬個Tesla V100 GPU的加持下登上TOP500榜單的首位。在這500套全球最快的高性能計算系統中,使用加速器的有110套,其中NVIDIA GPU多達98套,接近九成,在前10名中也佔據了半壁江山。

2019年11月,TOP500榜單中使用加速器的系統數量,Volta架構傲視同儕

TOP500榜單每年更新兩次,時隔一年半之後,榜單的頭名和NVIDIA GPU在前10名中的佔比都沒變,但是使用加速器或協處理器技術的系統增加到145套:其中基於Volta的多達94套,接近三分之二;使用NVIDIA GPU的系統數量比前一期榜單的加速器方案總和都多……而在強調單位能效的Green500榜單中,前10名中有8個採用NVIDIA GPU——7個是V100。

如果我們把目光放在TOP500榜單的後100名,會發現另一個有趣的現象:2018年6月,採用NVIDIA GPU的系統只有15個;2019年11月,僅採用V100的系統就有18套,其中排名第422和494位的兩套系統,其節點和互連方案與榜單前兩名如出一轍。

快速佔據TOP500榜單的近20%,既“上得廳堂”又“下得廚房”,V100可以説是有史以來最為成功的數據中心GPU。又是在5月,又是在TOP500榜單更新之前,三年後在老黃的廚房“面世”的A100 GPU能否取得更高的成就?

Ampere架構推出當天,即宣佈獲得美國和德國的6家超算中心採用,包括DGX A100系統組成的集羣,共使用近1.3萬個A100 GPU,總算力為:使用64位浮點運算的仿真,峯值性能超過250 PFlops;使用混合精度運算的AI推理工作,利用A100 GPU對稀疏性的支持,可以提供驚人的8.07 EFlops。

美國阿貢國家實驗室部署首批DGX-A100系統

在昨天夜裏公佈的第55版TOP500榜單中,醖釀多年的ARM超算系統Fugaku終於登上榜首,“倉促上陣”的A100則憑藉基於DGX A100 SuperPOD快速搭建起來的Selene斬獲第7,而前10名中的另外兩個新面孔都基於V100,使得NVIDIA GPU在第一集團中的佔比進一步升至六成。

A100的能效表現更為亮眼:Selene在Green500榜單上坐二望一,兩者的單位功耗非常接近,但是第一名的規模至少小一個數量級,在TOP500榜單中的排名低至394位。V100也保持了相當高的競爭力——TOP500前10中,採用V100的系統,僅有1套沒進入Green500前10。

可以期待,即將到來的E級超算時代,前排一定不乏A100的身影。不過,基於Ampere架構的數據中心產品,目光絕不僅限於超算中心,面對蓬勃發展的人工智能、數據分析和雲計算市場,NVIDIA給它們賦予的使命是“我全都要!”

平民化:從HPC到ABC

高性能計算可謂計算機界“皇冠上的明珠”,也為合稱“ABC”的人工智能、大數據、雲計算提供了理論依據和實踐基礎。但是,ABC在應用場景和使用模式上都演化出了自己的特色,HPC也有不同的場景細分,在HPC市場上取得的成功並不能自然複製到那三大市場上。舉個比較極端的例子:x86處理器在Top500榜單中佔比高達95%,卻越來越不被認為是AI基礎架構的主角。

A、B、C各有側重又互有交叉,對基礎架構提出的要求時有衝突,譬如:

精度:HPC和AI對計算能力的需求都非常高,但是側重的方向有較大的區別。典型的科學計算應用對計算精度有很高的要求;AI應用則通常為了更快的得到結果,在滿足準確度的前提下選擇更低的計算精度,其中訓練和推理過程對計算精度的容忍度又有不同。

粒度:傳統上高性能計算主要致力於將集羣作為一個整體來處理一個或幾個大型任務,每個物理節點只承擔任務的一部分;雲計算的商業模式則追求將集羣資源靈活的分配給不同用户,一個物理節點切分給多個用户或不同應用是常態。

規模的層級和分配的顆粒度

當然,如果基礎架構能提供足夠的靈活性,魚與熊掌並非不可兼得。譬如,日本國立先進工業科學技術研究所號稱世界上第一個大規模開放AI計算基礎設施的ABCI,在適用於AI的半精度運算中可提供550 PFlops的性能,雙精度計算的性能也有37 PFlops,在2018年6月的Top500榜單中高居第5,當年8月起開始提供雲服務。

A100相對V100的全面提升

在V100的基礎上,A100在對AI、雲計算方面的支持又有了明顯的提升,還運用了多項數據方面的技術。接下來我們就結合對A100系列產品的分析,來看看安培架構是如何集ABC之大成的。

從8到1:A100的若干硬指標

A100是NVIDIA的第八代數據中心GPU,DGX/HGX A100支持8個A100 GPU;

全面轉向7nm製程,MIG支持7個GPU實例;

6.7倍的L2 Cache容量;

目前的A100是完全態的5/6;

DGX A100全面支持PCIe 4.0;

第三代Tensor Core,第三代NVLink;

第二代NVSwitch,2倍結構化稀疏性能,計算數據壓縮2~4倍無損壓縮,200Gb/s網卡;

1款GPU滿足多種使用場景,不同使用模式。

與V100相比,A100晶體管數量增加1.5倍多,芯片面積卻幾乎沒有變大,體現了製程從12nm升級到7nm的威力,為各項性能的巨大提升打下了堅實的基礎。

A100的5大法寶

可能有人對542億晶體管和826mm²沒太多概念,那就拿A100的好基友、也採用台積電7nm製程的AMD第二代EPYC處理器來做個對比。第二代EPYC採用所謂的Chiplet技術,最多由8個38億晶體管、74mm²的CCD和1個83.4億晶體管、416mm²的IOD組成,簡單相加起來是387.4億晶體管和1008mm²,也就是剛過七成的晶體管數量換來了更大的芯片面積。

AMD第二代EPYC處理器的芯片構成,IO Die的製程應為14nm

當然,這樣比對EPYC不夠公平,因為晶體管數量最多的IO Die仍採用14nm製程,芯片面積肯定吃虧。AMD這樣做有很多理由,包括I/O器件從領先製程中獲益較少,沿用成熟工藝更為划算。反過來也進一步證明,採用7nm製程的芯片每個不到40億晶體管、80多億晶體管就要考慮7nm製程的投入產出比,看起來還是NVIDIA更為大膽。

GPU芯片兩邊的6個HBM2芯片是A100外觀上最容易與V100區分的特徵之一。這兩代GPU也都採用多芯片立體封裝的工藝,但作為核心的GPU仍是一個整體,所以製造難度越來越大

Chiplet的一大訴求就是避免製造單個巨大的芯片,以保證良率,而要讀懂A100的核心特性,也必須瞭解良率帶來的挑戰。

A100與V100的關鍵硬件參數對比

從上表中可以看到,當前版本的A100 GPU,離理想狀態——也就是完整實現的GA100 GPU——還有一定的距離。判斷的關鍵是計算單元與存儲單元的數量,A100與GA100在這三個參數上都是5:6的關係。也就是説,隨着製造工藝的完善,A100的性能指標還有接近五分之一的提升空間。

個人認為,這個看似不算很大的提升空間對於雲計算服務提供商頗有價值,因為它關係到A100的一個重要特性——MIG。

AI:少即是多 / 第三代Tensor Core

單從計算和存儲單元的的數量來看,A100相對V100的優勢,似乎還趕不上晶體管數量的增加;Tensor Core的數量甚至有明顯下降,但這已經是第三代Tensor Core,單體戰鬥力不可同日而語,總體輸出反而全方位提升。

根據NVIDIA公佈的數據,FP16/FP32混合精度下,V100每個SM的TOPS是A100的兩倍,結合SM數量的增長,總TOPS達到2.5倍,看起來與晶體管數量的增加相匹配。

A100支持bfloat16和TensorFloat-32兩種新的數據類型

然而“硬”指標只是一方面,A100的Tensor Core在數據預處理上下了更大的功夫,通過減少實際參與運算的數據量來強化中低精度的性能。這主要體現在兩方面:

首先是支持更多的數據類型。A100的Tensor Core支持Google在TensorFlow中引入的bfloat16數據類型,它相當於直接截取了FP32的前16位,所以在存儲和運算開銷與FP16相當的情況下,具有更大的動態範圍,代價是犧牲了精度。A100 Tensor Core的創新之處是引入了TensorFloat-32來加速FP32運算,TF32結合了FP32的動態範圍和FP16的精度,FP32矩陣相乘之前先轉換為TF32格式以加快處理速度,據稱在HPC的線性動力學場景中可以獲得4倍的性能提升,並在單精度訓練中達到5倍的性能。

進入Tensor Core的FP32數據被轉換為TF32以加速運算,外部的存儲和運算仍保持FP32格式

再往上到了數據結構層面,即支持結構化稀疏,適用於加速卷積和矩陣乘操作,優化推理性能。對細粒度權重稀疏的研究由來已久,NVIDIA表示A100是第一次將這方面的研究成果轉化為生產。這個細粒度的結構化稀疏比較規整,稀疏度是50%、在連續4個數據元素中按規則選取2個值置0而不存儲,相當於把矩陣的數據量壓縮一半,不過元數據索引還有一定比例的開銷。安培架構Tensor Core通過把稀疏計算轉變為稠密計算,理論上能夠將TOPS再提高一倍,NVIDIA出示的數據表明:矩陣乘和卷積性能提升大約為1.5~1.85倍,端到端推理可以獲得30~50%的加速。

推理性能從結構化稀疏中獲益頗多,而精度基本沒有損失

追求AI性能的同時,A100 Tensor Core也沒有忽略HPC需要的高精度運算,支持IEEE FP64雙精度加速。新的雙精度矩陣乘加指令替代了V100的8條DFMA指令,降低了指令預取、調度開銷、寄存器讀、數據路徑功耗和共享內存讀帶寬。使用Tensor Core,A100的每個SM每個時鐘週期可以完成64個FP64 FMA操作或128個FP64操作,是Tesla V100的兩倍。結合SM數量的增長,A100的峯值FP64性能達到V100的2.5倍。

Big Data:大效之道 / 存儲和傳輸

硬件升級提供更強的能力,軟件算法和數據結構改進提供更高的效率,可謂基礎設施換代的左右手,不可偏廢。不僅第三代Tensor Core代表計算單元起到很好的示範作用,A100的存儲和傳輸單元也不遑多讓,在容量全面擴充的同時,增加了大量新特性——簡單的説,就是不僅更大、更快,還更聰明。

讓我們從A100的SM開始,一層層向外延展討論。

首先,每個SM的L1數據Cache和共享內存容量,A100比V100增長了50%,來到192KB;結合SM數量的增加,整個GPU的L1/SMEM容量增長近一倍,約為20MB——個人認為,這點很重要,馬上會用到。

同時,增加了異步複製指令,即從全局內存向共享內存的數據拷貝不經過計算單元的寄存器,直接進入L1或SMEM。不僅縮短了傳輸路徑,有助於隱藏延遲;還可以充分利用L1/SMEM的帶寬,減少對寄存器的浪費。

異步複製:步驟精簡,路徑直接

其次,A100的L2 Cache容量達到40MB,是V100的6.7倍,帶寬也有2.3倍。存儲性能的提升通常比容量更難,A100的做法是通過分層的Crossbar將L2 Cache分成兩個分區,就近的SM們可以直接訪問,所以延遲也得以降低。

假設V100的SM數量增加到A100的水平……

當然,容量增加本身就有助於性能提升。經過這番暴漲,A100的L2 Cache容量不僅超過了L1/SMEM,甚至達到了兩倍的水平,這就激發了另一個新功能——L2駐留控制。

如果説前面的L2 Cache分區訪問是物理分區,那麼L2駐留控制可以算一種邏輯分區:拿出一部分容量——譬如一半——留給持久性數據訪問,持久訪問在L2緩存中比其他數據訪問具有更高的駐留優先級;另外的區域留給正常訪問。

數據駐留L2 Cache的好處是內核內部和內核之間的數據訪問不用再繞經全局內存,通過L2 Cache便可完成,避免非必要的傳輸,既可以縮短訪問延遲,減小對內存帶寬的需求;也有顯著的節能效果,因為訪問外部存儲器所消耗的能量通常會增加一個數量級。

隨着內存/Cache層級的增加,訪問數據的帶寬明顯降低,延遲和功耗成倍提高

説到外部存儲器,A100的HBM2容量也擴充至40GB,HBM2堆棧和內存控制器的數量相對V100的增長幅度同為25%,所以性能增長主要來自單組HBM2堆棧與內存控制器的能力提升。憑藉更高的運行頻率,A100的內存帶寬達到1555GB/s,比V100高出73%,如果後期A100的良率改善到可以完整的提供12個512位內存控制器和6個HBM2堆棧,理論上其內存帶寬就可以達到V100的2倍以上,而不僅僅是HBM2內存容量增長到48GB。

A100還通過引入計算數據壓縮的功能,進一步提高有效帶寬和容量。當數據中有足夠多的0或相似字節,2個連續的緩存行可以被壓縮2倍或4倍,在處理細粒度的非結構化稀疏數據時,可以獲得最高4倍的內存和L2帶寬節省,L2容量也有2倍的節省。計算數據壓縮功能是無損壓縮,適用的數據類型也沒有結構化稀疏那麼嚴格,可以在更大範圍內發揮作用。

Cloud:生而為雲,做七望八 / MIG

經過硬件升級和軟件優化的雙管齊下,A100的性能比V100有了成倍的提升:AI訓練達到3倍乃至6倍,推理更高達7倍——以此為參照,HPC場景1.5~2.1倍的性能簡直可以説是“平平無奇”了。

不過,這也帶來了一個現實的問題。不像HPC,AI的場景與雲的模式更為契合,因為有些計算任務並不需要超強的處理能力,用不到一個GPU的全部資源,能夠將一個GPU上的資源分配給多個用户或應用更為重要。隨着A100的性能達到一個新的水平,這種“一分為多”的需求也就愈發迫切起來。

V100通過引入硬件加速的MPS將一個GPU分配給多個進程,但是在內存系統資源的隔離上不夠徹底,對DRAM帶寬或L2 Cache需求過高的應用會干擾到其他應用,也就是QoS無法保證。由於沒有提供足夠的硬件資源隔離,雲服務提供商不能通過MPS把GPU分享給多個用户使用。

又一個邏輯分區對物理分區

前面提到的MIG是A100針對MPS的不足而引入的新功能,一個A100最多可以被切分為7個GPU實例,每個都有自己的計算單元和存儲單元以保證硬件QoS和隔離,從而能分配給多個用户或租户使用。

SM已經按照GPC分區了,所以L2 Cache加入“物理分區”功能就很重要

全部的MIG實例能夠以可預測的吞吐量和延遲並行運行,從這個角度來看,可以把MIG實例當成獨立的GPU單元,不同數量的MIG實例可以靈活組合起來,分配給不同的用户和應用,也就是NVIDIA所宣稱的Scale-out——不過,如果站在GPU的角度,用相對小眾的Scale-in來稱呼似乎更為嚴謹一些。

至於MIG功能為什麼可以將A100切分為7份,當然不是因為其性能7倍於V100,每一份都可以當V100用。

虛位以待第8個GPC

MIG的切分是以GPC為單位的,依次劃撥相應的存儲資源,所以它充分考慮到A100的現狀,只要求每個GPC有7個TPC、14個SM,而當前A100的所擁有的GPC也是7個,可以切分出來的GPU實例自然是7個。考慮到有些GPC能達到8個TPC、16個SM的“完全態”,在某些關於MIG的示意圖裏,我們可以看到有少數多出來的硬件資源,不在7個GPU實例之內。

個人認為,A100對MIG的支持有望達到8個,因為現在的7個MIG,涉及到的計算資源是7個GPC、49個TPC、98個SM,而隨着製造工藝的完善,未來A100 GPU要實現8個GPC和112個SM的“近完全態”,並非沒有可能。

DGX & HGX:化繁為簡,更小更強

如果説,在把GPU做“小”,或曰Scale-out的方向上,MIG是一項創新;那麼,在把GPU做“大”,或曰Scale-up的方向上,A100也把傳統曲目唱出了新意思。

可大可小,Scale-up與Scale-out通吃,訓練、推理、數據分析都能幹的單一平台

從衡量系統規模的幾個重要參數上,與前一代基於Tesla V100的DGX-2相比,DGX A100的GPU數量從16個打對摺到8個,GPU總內存容量從512GB下降至320GB,系統內存容量從1.5TB下降至1TB。總之,看起來Scale非但沒有up,反而down了?

Up還是down,性能説了算。從NVIDIA公佈的性能指標來看,DGX-2是2 PFLOPS,DGX A100是5 PFLOPS AI,可以認為是2.5倍;從NVIDIA公佈的測試數據來看,拉出來做對比的是8個V100的DGX-1@FP32,在訓練場景下DGX A100@TF32可以獲得6倍的性能。

構成DGX A100核心的三大類芯片都採用7nm製程,A100 GPU和CPU——AMD第二代EPYC處理器——前面都説過了,現在要説的是新一代NVSwitch,同樣基於台積電7nm製程,具有多達60億晶體管。NVSwitch是以I/O為主的芯片,與第二代EPYC的IOD更具可比性,晶體管數量也相差不是太多,再一次體現了NVIDIA全面切換到7nm製程的“激進”態度。

DGX-2開始將NVSwitch用於GPU的互連,初代NVSwitch有18個NVLink端口,V100上有6個NVLink,形成了6個NVSwitch把8個GPU連在一起的架構。NVSwitch上多出的NVLink可以用於彼此間的互連,DGX-2一共用了12個NVSwitch芯片,將16個V100 GPU連為一體。

部分得益於7nm製程,新一代NVSwitch的NVLink端口數量達到36個,A100 GPU也有12個第三代NVLink,總帶寬600GB/s,DGX A100核心器件的這三項指標均為DGX-2的兩倍。不過,DGX A100和HGX A100並沒有藉機擴大GPU的互連規模,反而退回到DGX-1的8個,致力於保證GPU之間的互連帶寬。

GPU的出口帶寬增長了,對CPU及外部I/O的要求也隨之提高。DGX-2配備雙路24核處理器,DGX A100則升級為雙路64核處理器,CPU核芯數量達到兩倍以上,內存容量的減少可能與GPU數量的減半有關。第二代EPYC處理器的另一個殺手鐧是支持PCIe 4.0,帶寬兩倍於PCIe 3.0,對存儲和網絡等I/O設備意義重大。

眾所周知,NVIDIA已經完成了對Mellanox的收購。DGX A100配置了9個Mellanox ConnectX-6 200Gb/s網卡,這是什麼概念呢?如果仍然使用PCIe 3.0,那麼200Gb/s網卡就需要2個x16插槽支持才能充分發揮作用,而PCIe 4.0就只需要一個x16插槽, 保證系統的複雜度不會增加。

Mellanox ConnectX-6 200Gb/s InfiniBand/以太網卡:PCIe 3.0版本需要佔用2個x16插槽,而PCIe 4.0版本只需要佔用1個,複雜與簡潔一望便知

系統配備的固態盤同樣支持PCIe 4.0,雖然容量也減半,至少存儲性能可以保持。

由於系統中佔比很大的核心組件如GPU、NVSwitch、GPU基板的數量都減少了一半,DGX A100的整體複雜性大為下降,高度也只有6U,介於DGX-1和DGX-2之間。對於數據中心而言,更重要的是系統的供電需求,從DGX-2的10kW,下降到6.5kW——仍高於DGX-1的3.5kW,已經大幅降低了對機櫃供電能力的要求,國內的很多數據中心不需要過多的調整即可滿足。

與GPU直接相關的組件數量都只有DGX-2的一半,所以DGX A100的構成可以從偏正面的角度來呈現

儘管採用7nm製程,奈何A100 GPU的晶體管數量增長更為迅猛,TDP已經來到400W,比Tesla V100高出三分之一。個人認為,如果簡單套用DGX-2的架構,整體的供電需求有可能突破12kW,機箱高度又不增加的話,傳統的風冷方案恐怕難以為繼。相比之下,現在的方案把每U的功率密度維持在與DGX-1/2相當的水平,可以説是相當的剋制了。

總體而言,雖然在Scale-up方向所達到的絕對能力上,DGX A100超越了DGX-2,但是在構建更大系統的路線選擇上,DGX A100更傾向於Scale-out。以DGX SuperPOD為例,4名操作人員僅需不到1個小時,就能組裝起一套由20台系統組成的DGX A100集羣,2 PFlops的性能足以被列入TOP500榜單。

通過添加NVIDIA Mellanox InfiniBand交換機層,工程師將14套分別配置有20台DGX A100系統的集羣相連接,創造出了具有:

280台DGX A100系統

2240個NVIDIA A100 GPU

494台NVIDIA Mellanox Quantum 200Gb/s InfiniBand交換機

56 TB/s網絡架構

7PB高性能全閃存

的Selene系統,可以提供超過1 EFlops的AI性能,而搭建時間還不到一個月。

正如NVIDIA所言,“此類系統能夠在標準數據中心的功率和散熱能力承擔範圍內輕鬆運行”。對專業的超算系統而言,10kW的供電能力也好,某種形式的液冷也罷,都不算個事兒。但是,當定位放寬到相對大眾化的ABC市場,不能不考慮用户環境的承受力,期待DGX/HGX A100在AI和雲計算領域的表現。

變革與創新,從未停息。DT時代聚焦最新基礎架構設施和技術的的進展,關注企業數字化轉型優秀案例,專注企業級方案和技術的傳播和創新企業的成長,觸及企業的變革與轉型,目前覆蓋的渠道有:今日頭條、百度百家、知乎、搜狐新聞、天天快報、鳳凰新聞、網易新聞、大魚、一點資訊等多家平台。

版權聲明:本文源自 網絡, 於,由 楠木軒 整理發佈,共 8992 字。

轉載請註明: NVIDIA安培GPU:從TOP500走向雲智應用 - 楠木軒