NVIDIA進入計算市場是從G80GPU開始的,當時統(tǒng)一渲染架構(gòu)的出現(xiàn)帶給NVIDIA在計算市場上嶄露頭角的機會。隨后的多代處理器產(chǎn)品包括代號為GT200、費米、開普勒、麥克斯韋等架構(gòu)都在努力向計算市場邁進,甚至一度稱自己為“視覺計算”企業(yè)。不過這一切在AI計算、云計算興起之后發(fā)生了改變,包括開普勒、麥克斯韋、帕斯卡架構(gòu)的GPU都被廣泛使用在AI的深度學習計算中,再加上數(shù)據(jù)中心和云計算對GPU越來越大的需求,NVIDIA在產(chǎn)品路線上開始分裂—一方面要牢牢占據(jù)游戲產(chǎn)品市場,另一方面高增長、高利潤的數(shù)據(jù)中心和AI計算市場也絕對不能放棄。
本文源自:《微型計算機》 2020年13期《微型計算機·極客GEEK》,單期頁數(shù):128頁,本刊創(chuàng)刊于:1996年,其紙張開本為:16開,本刊重在突出理論性和探索性,對促進數(shù)碼通訊交流及發(fā)展,起著重要的指導(dǎo)作用。用新潮的語言,流行時尚雜志的視覺風格來展示內(nèi)容,帶給讀者流暢的閱讀快感,一本提供泛科技知識性內(nèi)容,講述生活中科技的時尚雜志。
這樣一來,NVIDIA的產(chǎn)品路線就分為了計算和圖形兩個路徑。我們看到的第一個更偏向于計算的GPU產(chǎn)品架構(gòu)是伏打架構(gòu),其典型產(chǎn)品為TeslaV100、TITANV等,在民用圖形卡方面幾乎沒有太多建樹。同代(或者稍晚一些)推出的更偏向于圖形的產(chǎn)品是圖靈架構(gòu),衍生出了多款民用GPU圖形卡,并且?guī)砹薘TX品牌和全新的光線追蹤技術(shù)。值得一提的是,考慮到這款顯卡出色的性能和性價比,也有不少專業(yè)用戶選擇它進行計算工作,畢竟TITANV昂貴的價格并不是所有人都可以承受的。從時間上來看,伏打架構(gòu)和相關(guān)產(chǎn)品發(fā)布于2017年6月,圖靈架構(gòu)和相關(guān)產(chǎn)品發(fā)布于2018年8月,根據(jù)NVIDIA一代計算產(chǎn)品、一代游戲產(chǎn)品發(fā)布的前例來看的話,剛剛發(fā)布的Ampere(下文全部稱為“安培”)架構(gòu)極大概率會被定義為計算產(chǎn)品,和游戲玩家關(guān)系不大。
雖然這一切看起來順理成章,圖形和計算兩條路并行不悖,但是在今年網(wǎng)絡(luò)發(fā)布會后的媒體采訪上,NVIDIACEO黃仁勛又提到,安培架構(gòu)和隨后即將推出的圖形加速產(chǎn)品在架構(gòu)上存在“巨大的重疊”,并且將最終替換掉圖靈架構(gòu)和伏打架構(gòu),成為NVIDIA在計算和圖形市場上的唯一架構(gòu)。實際上,從現(xiàn)有的安培架構(gòu)的情況來看,現(xiàn)在發(fā)布的產(chǎn)品是徹徹底底針對計算市場的,不但大幅度加強了有關(guān)計算方面的內(nèi)容、加入了大量特殊格式的計算加速、采用了全新設(shè)計的張量核心,還加強了雙精度計算的功能并且沒有提供任何光線追蹤加速的內(nèi)容。這樣一來,未來安培架構(gòu)圖形產(chǎn)品的情況就顯得頗為撲朔迷離了。
當然,圖形和計算,在應(yīng)用端看起來似乎是兩個路徑,但是在最終GPU中計算時,都會轉(zhuǎn)化為數(shù)據(jù)和相應(yīng)的路徑。也有一種可能是安培架構(gòu)本身大幅度加強了計算效能,這些計算效能的提升也會在圖形應(yīng)用中帶來不錯的效果,當然最終的情況會怎么樣,還得看后續(xù)產(chǎn)品發(fā)布的相關(guān)內(nèi)容了。
另外值得一提的是,從本代計算產(chǎn)品開始,NVIDIA首發(fā)產(chǎn)品沒有使用諸如Tesla的商標,而是直接以NVIDIAA100TensorCoreGPU命名。一些消息顯示,由于NVIDIA旗下的Tesla計算卡在商標問題上和埃隆馬斯克的特斯拉(Tesla)汽車存在一定的重疊和關(guān)聯(lián),因此NVIDIA徹底停用了Tesla品牌。目前在NVIDIA全球網(wǎng)站上,Tesla品牌已經(jīng)徹底消失不見,比如之前的TelsaT4加速卡,目前被改成了NVIDIAT4,其余之前冠之以Tesla品牌的產(chǎn)品現(xiàn)在都改成了NVIDIA品牌。中國官網(wǎng)上,Tesla品牌在部分產(chǎn)品中依舊可見,應(yīng)該是網(wǎng)站信息更新延遲的問題。停用了Tesla品牌之后,新的命名方法顯然是凸顯了NVIDIA在產(chǎn)品中的地位。另外,新產(chǎn)品的全新的命名突出了TensorCore也就是張量核心,這是NVIDIA在伏打架構(gòu)上首次推出的、專門用于加速AI深度學習的計算核心。產(chǎn)品命名中對張量核心的突出顯示,也表示出這款GPU的用途更偏向于計算加速而不是傳統(tǒng)的圖形。
架構(gòu)方面,A100使用了最新的安培架構(gòu),NVIDIA宣稱新的架構(gòu)和產(chǎn)品是基于之前的伏打架構(gòu)的TeslaV100(下簡稱“V100”)的功能構(gòu)建,但增加了大量的新功能,并顯著提高了包括HPC、AI和數(shù)據(jù)分析工作負載的性能。新的架構(gòu)也能夠為使用單GPU和多GPU組建的工作站、服務(wù)器、群集和云數(shù)據(jù)中心、邊緣計算系統(tǒng)和超級計算機中運行的GPU計算和深度學習應(yīng)用程序提供強大的擴扎能力,并且A100支持彈性構(gòu)建、多功能和高吞吐量的數(shù)據(jù)中心。總的來說,作為NVIDIA“三年磨一劍”的全新產(chǎn)品,A100和安培架構(gòu)引入了大量的新功能和特性,值得一一道來。
安培架構(gòu)的具象——GA100芯片的工藝和成本
任何一個產(chǎn)品架構(gòu)最終都必須依托于某個具體產(chǎn)品才存在現(xiàn)實意義。在這一點上,安培架構(gòu)的芯片產(chǎn)物是GA100GPU,對應(yīng)的成品被稱為A100TensorCoreGPU。
GA100GPU是現(xiàn)有民用產(chǎn)品中晶體管數(shù)量最多、計算能最強大的單個完整芯片。工藝方面,GA100GPU采用的是臺積電的7nm工藝。整個GA100GPU中包含了542億個晶體管,封裝面積為826平方毫米,每平方毫米晶體管數(shù)量約0.656億個,即65.6MTr/平方毫米。
從數(shù)據(jù)來看,7N工藝的晶體管密度數(shù)據(jù)極為接近臺積電7nmHP工藝的65MTr/平方毫米。7nmHP工藝的其他的參數(shù)還包括金屬層76nm、鰭片高度為30nm、柵極間距為64nm、采用了7.5T庫等。從臺積電的相關(guān)信息來看,7nmHP工藝是專門面向高性能計算、高頻率處理器的工藝,其優(yōu)勢在于出色的電氣性能和能達到較高的頻率,劣勢則在于,相比同期推出的、采用6T庫的臺積電7nmHD工藝,7nmHP工藝密度比較低。7nmHD工藝密度可達91.2Mtr/平方毫米,相比7nmHP大了約50%,屬于成本優(yōu)先的選擇。使用7nmHD工藝制造的產(chǎn)品就有大名鼎鼎的AMDZen2架構(gòu)的計算核心,目前來看其性能和成本得到了很好的平衡。NVIDIA在這里選擇了7nmHP工藝,應(yīng)該是綜合考慮了GA100GPU的目標市場對成本不敏感、大型計算設(shè)備的采購預(yù)算往往比較高等原因,簡單來說就是市場優(yōu)先。
A100GPU的首個亮點就是全新的第三代張量核心,相比V100,新的張量核心大幅度提升了數(shù)據(jù)吞吐量,還增加了全新的多種專用于深度學習和HPC數(shù)據(jù)類型的支持,以及加強的稀疏計算增強功能。
根據(jù)NVIDIA給出的示意圖,一個完整的SM單元包含了一個共享的L1指令緩存和四個計算模塊。每個計算模塊的都擁有自己的L0指令緩存、每周期可以發(fā)送32個線程的Warp排序單元、每周期32個線程的調(diào)度單元、16384x32bit的寄存器以及后端的LD/ST單元、特殊功能單元(SpecialFunctionUnit,簡稱SFU)。除了這些功能單元外,每個計算模塊中最重要的部分自然是計算單元了。每個計算模塊擁有16個INT32單元、16個FP32單元、8個FP64單元以及1個第三代張量核心。最終1個完整的SM單元包含了64個INT32單元、16個FP32單元(也就是CUDA核心)以及32個FP64單元、4個第三代張量核心。在整個SM單元的后端,NVIDIA還布置了192KB的L1數(shù)據(jù)緩存或者共享緩存,4個Tex單元。值得注意的是,相比之前伏打架構(gòu)的SM單元,安培架構(gòu)的SM單元中,張量核心的數(shù)量只有4個,但是前代伏打架構(gòu)和圖靈架構(gòu)的每SM均有8個。不過由于新的第三代張量核心使用了全新的設(shè)計,其計算能力反而大幅度提升。
安培架構(gòu)SM單元的特性總結(jié)
1.全新的第三代張量核心
★ 全新的第三代張量核心現(xiàn)在可以加速所有類型的數(shù)據(jù),無論是FP16、BF16、TF32、FP64、INT8、INT4還是二進制數(shù)據(jù),都能夠使用第三代張量核心進行加速。
★ 第三代張量核心新加入可以利用深度學習網(wǎng)絡(luò)中的細粒度結(jié)構(gòu)稀疏性和新加入的稀疏功能,使得標準張量核心的操作的性能翻倍。
★ 安培架構(gòu)中的張量核心在計算TF32數(shù)據(jù)時,可以通過特有的路徑來加速深度學習框架和H P C計算中FP32的輸入輸出數(shù)據(jù),這種計算比之前的伏打架構(gòu)的V100 FP32 FMA操作快10倍,如果原始數(shù)據(jù)有稀疏性,那么可以快20倍。
★ 在操作混合精度的F P16和FP32的深度學習計算時,安培架構(gòu)的第三代張量核心運行速度比之前的伏打架構(gòu)的V100的張量核心快了2.5倍,如果原始數(shù)據(jù)具有稀疏性那么可以提高至5倍。
★ BF16/FP32混合精度操作和常見的FP16/FP32混合精度速度一樣。
★ 第三代張量核心能夠進行FP64操作,在HPC計算中比較常見,其速度是伏打架構(gòu)的V100 FP64 DFMA操作的2.5倍。
★ 第三代張量核心在計算擁有稀疏性的INT8數(shù)據(jù)時,其速度是伏打架構(gòu)V100 INT8操作的20倍。
2.加大的L1數(shù)據(jù)緩存/共享緩存,容量是伏打架構(gòu)的1.5倍。
3.新的異步復(fù)制指令支持將數(shù)據(jù)直接從全局存儲器加載至共享存儲器中,可以繞過L1高速緩存且不需要使用中間寄存器文件。
4 .和異步復(fù)制指令一起使用的、基于共享內(nèi)存的新的異步屏障單元。
5.L2緩存管理和駐留控制得到了改善。
6.CUDA組支持新的warp-level降低指令。
7.可編程性的改進。
NVIDIA還給出了一些對比用于比較新的第三代張量核心和安培架構(gòu)在數(shù)據(jù)處理方面相比之前的伏打架構(gòu)的優(yōu)勢。比如FP16、FP32、FP64和INT8稀疏操作等。其中,A100 GPU相比V100在上述操作中獲得了5倍、20倍、2.5倍和20倍的性能優(yōu)勢。
在FT32數(shù)據(jù)格式方面,NVIDIA進一步解釋道,目前AI訓練方面默認的數(shù)據(jù)格式是FP32,并且不能進行張量核心加速。NVIDIA在安培架構(gòu)上引入了TF32架構(gòu),這樣一來AI訓練在默認狀態(tài)下就可以使用張量核心加速了,并且不需要用戶手動配置,當然非張量的操作繼續(xù)使用FP32數(shù)據(jù)路徑進行計算。TF32張量內(nèi)核將讀取FP32數(shù)據(jù)并且使用和FP32相同的范圍,但是內(nèi)部會處理自動降低精度,然后生成標準的IEEEFP32輸出。TF32包含一個8位指數(shù)(和FP32)相同,10位尾數(shù)(和FP16相同)以及1個符號位。NVIDIA反復(fù)強調(diào),張量核心有關(guān)TF32的加速方面,不需要用戶額外付出勞動成本,一切都是自動的。
在傳統(tǒng)的INT32和FP32操作方面,安培架構(gòu)和A100GPU和之前發(fā)伏打、圖靈架構(gòu)類似,都采用了獨立的FP32和INT32內(nèi)核,支持以全吞吐量同時執(zhí)行FP32和INT32操作,并且還提高了指令的吞吐量。另外,對一些有內(nèi)部循環(huán)的應(yīng)用程序而言,這些循環(huán)可以同時執(zhí)行指針算術(shù)(整數(shù)存儲器地址計算)并結(jié)合浮點計算,這也是FP32和INT32獨立計算帶來的優(yōu)勢之一。在這種計算中,循環(huán)的每個迭代都可以更新地址并為下一個迭代加載數(shù)據(jù),同時在FP32中計算現(xiàn)有的數(shù)據(jù),效率顯著提升。
除了有關(guān)深度學習計算加速的內(nèi)容外,在HPC所需要的高精度計算方面,安培架構(gòu)的第三代張量核心也帶來了出色的效果。目前安培架構(gòu)的第三代張量核心支持符合IEEE標準的FP64計算,其FP64張量核心計算性能是之前伏打架構(gòu)V100GPU的2.5倍。在架構(gòu)改進上,安培架構(gòu)采用了新的雙精度矩陣乘加指令取代了之前V100上的8條DFMA指令,從而減少了指令提取、調(diào)度的開銷以及寄存器的讀取、數(shù)據(jù)路徑功率和共享存儲器的讀取帶寬等。現(xiàn)在,安培架構(gòu)A100GPU中每個SM每時鐘周期可以計算64個FP64FMA操作,或者128個FP64操作,這兩個數(shù)據(jù)都是V100的2倍。具有108個SM的A100GPU的雙精度數(shù)據(jù)吞吐量是19.5TFLOPS,這個數(shù)值達到了V100的2.5倍。
說道吞吐量,就不得不提及計算能力了。NVIDIA給出了一張表用于展示不同數(shù)據(jù)格式下新的A100GPU的計算能力。表中所有的計算數(shù)據(jù)均基于GPU的峰值頻率。此外,在除了FP64TensorCore計算之外的所有TensorCore計算力方面,NVIDIA還分別給出了傳統(tǒng)計算和加入稀疏性優(yōu)化后的兩種性能數(shù)據(jù),比如INT4TensorCore計算方面,在不啟用/啟用稀疏性優(yōu)化的情況下,計算能力分別是1248TOPS和2496TOPS,后者帶來了翻倍的計算性能。
無論是吞吐量的增加,還是新的數(shù)據(jù)加速格式的支持,都可以用于加速HPC的工作負載,包括迭代求解器和各種新的AI算法等。
架構(gòu)優(yōu)化:全新引入的細粒度的結(jié)構(gòu)稀疏性
安培架構(gòu)為AI計算做出了多樣化的優(yōu)化,在這里,全新引入的細粒度結(jié)構(gòu)稀疏性就能夠?qū)⑸疃壬窠?jīng)網(wǎng)絡(luò)的吞吐量提高一倍。
在深度學習計算中,稀疏性是可能存在的,因為在深度學習的計算過程中,個體的權(quán)重在不斷地變化,在最終網(wǎng)絡(luò)訓練結(jié)束的時候,只有一部分權(quán)重能夠體現(xiàn)有意義的價值,剩余的權(quán)重則失去了意義不再需要。
細粒度的結(jié)構(gòu)化稀疏性則是對允許的稀疏性模式增加了約束條件,使得硬件可以更有效對輸入操作數(shù)進行必要的對齊。由于深度學習網(wǎng)絡(luò)能夠根據(jù)訓練過程反饋調(diào)整權(quán)重,因此NVIDIA的工程師們發(fā)現(xiàn),一般而言,結(jié)構(gòu)的約束并不會影響深度學習網(wǎng)絡(luò)的準確性。因此,這使得利用稀疏性對推理計算進行加速成為可能。
在具體的執(zhí)行中,NVIDIA通過新的2:4稀疏矩陣定義強制性的執(zhí)行結(jié)構(gòu),該定義在每個四項向量中允許2個非零的值,A100GPU支持行上2:4的結(jié)構(gòu)化稀疏性。由于矩陣的定義非常明確,因此可以對其進行壓縮,并將內(nèi)存存儲量和帶寬要求減少2倍。
在計算方面,NVIDIA也開發(fā)了一種簡單而通用的方法,使用這種2:4的結(jié)構(gòu)稀疏模式對深層次的神經(jīng)網(wǎng)絡(luò)進行稀疏化處理。比如首先使用密集的權(quán)重值對網(wǎng)絡(luò)進行訓練,然后用細粒度的結(jié)構(gòu)化“修剪”數(shù)據(jù),最終使用其他訓練步驟對剩余的非零權(quán)重進行微調(diào)。在NVIDIA的評估中,這種方法通過了跨視覺、對象檢測、分割、自然語言建模、翻譯等數(shù)十個深度學習網(wǎng)絡(luò)的評估,這種計算方法幾乎不會導(dǎo)致推理準確性的損失。
在硬件架構(gòu)方面,A100GPU也引入了新的稀疏張量核心指令,該指令會跳過具有零值的條目的計算,從而使得張量核心的計算、吞吐量翻倍。
存儲系統(tǒng):緩存的改進和40GB的HBM2內(nèi)存
由于芯片規(guī)模越來越龐大,因此NVIDIA需要改善整個架構(gòu)體系的存儲系統(tǒng)。現(xiàn)在,安培架構(gòu)和A100芯片的L1、L2以及內(nèi)存體系(或者顯存體系,本文統(tǒng)一稱之為內(nèi)存)都得到了加強。
先來看L1緩存。在之前伏打架構(gòu)的V100上,NVIDIA首次引入了L1數(shù)據(jù)高速緩存和共享內(nèi)存子體系結(jié)構(gòu),這帶來了性能的顯著提高,并且簡化了編程,減少了達到或者接近峰值應(yīng)用程序性能所需要的調(diào)整。將數(shù)據(jù)緩存和共享內(nèi)存功能組合在一起,可以為兩種類型的內(nèi)存訪問都提供最佳的性能。在安培架構(gòu)和A100GPU上,NVIDIA大幅度提升了L1緩存的容量至每個SM單元192KB,使其達到了前代伏打架構(gòu)的1.5倍,容量更充裕了。
接下來再看L2。A100GPU目前包含40MB的L2緩存,這個容量是之前V100的6.7倍。A100的L2分為兩個分區(qū),以實現(xiàn)更高的帶寬和更低的延遲。每個L2分區(qū)都會進行本地化并且緩存數(shù)據(jù),以方便直接連接到該分區(qū)的GPC中的SM進行數(shù)據(jù)訪問。這種結(jié)構(gòu)使得A100的緩存帶寬相比V100增加了2.3倍。硬件的緩存一致性將在整個GPU范圍內(nèi)維護CUDA編程環(huán)境,并且應(yīng)用程序會自動更新以利用L2緩存的帶寬和延遲優(yōu)勢。
L2緩存屬于GPC和SM的共享資源,本身被放置在GPC之外。現(xiàn)有情況可以看出,安培架構(gòu)和A100GPU的L2緩存容量大幅度增加顯著改善了很多HPC和AI工作負載的性能。這是因為那些需要被充分個訪問的數(shù)據(jù)集和模型,都不用頻繁地去HBM2內(nèi)存中讀取和寫入了,現(xiàn)在直接可以在L2中存取。另外,受到DRAM帶寬限制的部分工作負載,比如使用較小的batch尺寸的深度神經(jīng)網(wǎng)絡(luò),將充分受益于更大的L2。
在L2數(shù)據(jù)控制和優(yōu)化方面,安培架構(gòu)帶來了L2緩存駐留控件,借助于這個控件,用戶可以在L2緩存中永久保留一部分數(shù)據(jù),也可以自定義哪些數(shù)據(jù)需要進入L2保存、哪些不需要。舉例來說,對于深度學習推理的工作負載,一種被稱為“乒乓”的緩沖區(qū)可以持久駐留在L2緩存中,不但可以實現(xiàn)更快的數(shù)據(jù)訪問,同時還避免了回寫到DRAM浪費時間和功耗。另外,在深度學習培訓中心發(fā)現(xiàn)的一些“生產(chǎn)者-消費者”鏈路,L2緩存的控制可以跨越讀寫關(guān)系來對其進行優(yōu)化。在LSTM網(wǎng)絡(luò)中,L2緩存中可以重點考慮啟用循環(huán)權(quán)重以提高效能。
L2部分最后再來了解一下有關(guān)安培架構(gòu)的計算數(shù)據(jù)壓縮功能,這個功能可以用于加速非結(jié)構(gòu)化稀疏性和其他可壓縮數(shù)據(jù)模式。L2中的壓縮使得DRAM讀/寫帶寬相對提高了4倍,L2讀帶寬相對提高了4倍,L2容量相對提高了2倍。
最后再來看看40GB的HBM2緩存。由于現(xiàn)代計算任務(wù)的數(shù)據(jù)量越來越龐大、對數(shù)據(jù)傳輸?shù)囊笠苍絹碓礁撸偌由螱PU吞吐量也日漸上升,為了滿足這些需求,傳統(tǒng)的GDDR內(nèi)存逐漸顯得力不從心,而更強大的HBM2內(nèi)存能更好地適應(yīng)計算任務(wù)的需求,因此,A100GPU使用了HBM2內(nèi)存,其容量為40GB,帶寬高達1555GB/s,相比V100計算卡增加了73%。
第三代NVLink總線
NVIDIA在安培架構(gòu)的A100GPU中啟用了第三代NVLink總線。初代NVLink總線使用在NVIDIAP100計算卡上,帶寬水平大約在100GB/s的級別。第二代NVLink總線使用在V100GPU上時總性能達到了300GB/s,也就是PCIe3.0總線的大約10倍。在A100GPU上,NVIDIA又引入了第三代NVLink總線,新總線每個信號對的數(shù)據(jù)速率達到了50Gb/s,幾乎達到了V100中25.78Gbit/s速率的兩倍。并且新總線的每個鏈路在每個方向上使用4個(差分)信號對(4個通道),而Volta中則使用8個信號對(8個通道)。與VoltaGPU相似,新的NVLink單個鏈路在每個方向上提供25GB/秒的帶寬,但與Volta相比僅使用一半的信號。NVLink鏈接的總數(shù)在A100中增加到12條,而在V100中僅為6條,最終整個A100的總帶寬高達600GB/秒。
目前在多GPU系統(tǒng)的構(gòu)建中,NVIDIA通過NVLink總線和NVSWITCH切換器來進行數(shù)據(jù)的傳輸和切換,更大帶寬的NVLink總線和NVSwitch有助于多芯片協(xié)同工作和任務(wù)分配傳輸?shù)母咝省D壳埃恳粋€A100GPU支持最多12條NVLink總線啟用,這樣一來搭配6個NVSwitch芯片,能夠?qū)崿F(xiàn)最多16個GPU互聯(lián),大幅度提高了單個設(shè)備的計算能力。
另外,安培架構(gòu)的GPU正式支持了PCIe4.0總線規(guī)范,未來NVIDIA所有新的GPU都將全面支持PCIe4.0總線規(guī)范。
專為云計算設(shè)計:多實例GPU功能(Multi-InstanceGPU)
新的多實例GPU功能簡稱MIG,這是一項針對云服務(wù)提供商的功能。當配置為MIG時,系統(tǒng)中GPU的利用率可以得到很大的提升,包括無須任何額外成本就可以執(zhí)行多達7倍的GPU實例。單個GPU還可以進行分區(qū)使用并支持故障隔離。
從實際應(yīng)用來看,進關(guān)許多數(shù)據(jù)中心的工作量在規(guī)模和復(fù)雜程度上都持續(xù)提升,但是依舊存在一些任務(wù)并不需要太多計算資源就可以完成,比如早期開發(fā)或者一些小批量的訓練的簡單模型。對于一個數(shù)據(jù)中心來說,最好的狀態(tài)是所有設(shè)備都滿載,保持高的資源利用率,因此數(shù)據(jù)中心一方面需要越來越大,另一方面也要很好的運行這些較小的工作負載。
但是,在傳統(tǒng)的不支持虛擬化的GPU上,一個較小的工作負載就會占據(jù)整個GPU資源。這對整個系統(tǒng)來說是極為浪費的。部分GPU可以實現(xiàn)虛擬化,并提供2個虛擬實例,但是對于A100這樣的擁有極高算力的GPU來說,2個虛擬實例依舊不能很好地解決這類問題。因此,NVIDIA帶來了新的多實例GPU功能,簡稱為MIG,這個功能能夠?qū)⒚總€A100GPU加速設(shè)備劃分為7個虛擬的GPU實例,從而進一步提高資源利用率,并有效的擴展每個用戶和應(yīng)用程序的訪問權(quán)限。
NVIDIA提供了一些對比圖,用于對比沒有MIG配置和擁有MIG配置的設(shè)備運行應(yīng)用程序的差異。在諸如伏打架構(gòu)的V100GPU上,多個應(yīng)用程序在單獨的GPU執(zhí)行資源也就是SM上同時執(zhí)行,但是由于內(nèi)存系統(tǒng)資源是在所有應(yīng)用程序中共享的,因此如果一個應(yīng)用程序?qū)RAM帶寬有很高的要求或者其請求超出了L2緩存的容量,那么可能會干擾其他應(yīng)用程序的運行。
在安培架構(gòu)的A100GPU中,運行的情況發(fā)生了變化。A100GPU可以通過MIG功能將單個GPU劃分為多個GPU分區(qū),這種劃分出來的分區(qū)被稱作GPU實例。每個實例的SM具有貫穿整個內(nèi)存系統(tǒng)的單獨且隔離的路徑,包括片上交叉開關(guān)的端口、L2緩存庫、內(nèi)存控制器和DRAM地址總線,都可以唯一分配給單個實例。這樣可以確保單個用戶的工作負載能夠以可預(yù)測的吞吐量和延遲運行,并且具有相同的二級緩存分配和一樣的DRAM帶寬,即使其他任務(wù)需要更高的緩存或者DRAM帶寬也不會產(chǎn)生負面影響。
不僅如此,在使用MIG功能經(jīng)過對可用的GPU計算資源的分區(qū)后,系統(tǒng)可以為不同的客戶端(或者虛擬機、容器、進程等)提供故障鼓勵,從而提供定義的服務(wù)質(zhì)量QoS。MIG使得多個GPU實例可以在只擁有單個GPU的A100GPU設(shè)備上運行,并且用戶無須對現(xiàn)有的CUDA編程模型進行更改,以最大限度地減少編程工作。
對于云服務(wù)商(CSP)而言,MIG功能提高GPU了利用率并且無須任何成本。MIG支持CSP所需的必要QoS和隔離保證,以確保一個客戶端不會影響到另一個客戶端的工作或者調(diào)度。在這里,CSP通常會根據(jù)客戶使用模式對硬件進行分區(qū),當且僅當系統(tǒng)硬件資源提供了一致的帶寬、適當?shù)母綦x和良好的性能是,分區(qū)才有效的運行。
在管理方面,借助安培架構(gòu)和A100GPU,用戶可以在虛擬的GPU上查看工作任務(wù)并進行相關(guān)調(diào)度,甚至可以直接視作其為物理GPU。MIG功能現(xiàn)在可以和Linux系統(tǒng)以及其管理程序一起使用,用戶可以使用諸如DockerEngine軟件,并且很快支持使用Kubernetes進行虛擬GPU的容器管理。
除了上述內(nèi)容外,安培架構(gòu)和A100GPU還帶來了包括錯誤和故障檢測、控制和隔離等功能。比如遠程GPU的錯誤會通過NVLink回傳至源GPU。此外,CUDA11在安培架構(gòu)的適配上也做出了很多新的工作,比如對第三代張量核心的應(yīng)用適配等。這些更詳細的內(nèi)容,NVIDIA將會發(fā)布在隨后推出的A100TensorCoreGPU體系結(jié)構(gòu)白皮書中。有需要的讀者可以自行下載閱讀。
性能:A100相比V100大幅度提升
在現(xiàn)有的相關(guān)資料中,NVIDIA還展示了一些A100對比V100的計算能力的提升,同時加入對比的還有NVIDIA首個專門為AI計算和HPC加速而生的產(chǎn)品TeslaT4。從NVIDIA的數(shù)據(jù)來看,在綜合HPC加速計算中,A100大約性能是V100的1.78倍左右,其中性能倍數(shù)最高的部分是物理模擬,大約為2.0~2.1倍,最少的分子動力學模擬也能帶來至少50%的速度提升,其余的包括工程計算、地球科學計算的性能倍數(shù)大約在1.7~1.9倍之間。
單芯片并行計算的巔峰
本文對安培架構(gòu)和A100GPU的介紹就到此為止了。受限于篇幅,本文只介紹了一部分特色的新功能,實際上這款史上最大的GPU產(chǎn)品還有大量的內(nèi)容值得探索,目前NVIDIA也在官網(wǎng)上放出了A100GPU和安培架構(gòu)的白皮書,有興趣的讀者可以自行搜索下載。
在本文的最后,我們還是驚訝于這款GPU的強大,高達540億晶體管,全新的第三代張量核心、新的MIG特性以及40GBHBM2內(nèi)存。略有遺憾的是,如果不是功耗和芯片制造的限制,它還可能更為強大。當然,硬件的規(guī)格是一方面,從目前的情況來看,NVIDIA還在不斷地通過軟件的改進,充分釋放這540億晶體管蘊藏的強大算力。無論怎樣,安培架構(gòu)和A100GPU,堪稱單芯片算力的巔峰,也是迄今為止人類設(shè)計的最復(fù)雜的芯片(可以沒有之一),這也是并行計算登峰造極的一刻,值得銘記和贊嘆。
論文指導(dǎo) >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >