NVIDIA安培架构
NVIDIA安培架構(gòu)
NVIDIA Ampere Architecture In-Depth
在2020年英偉達(dá)GTC主題演講中,英偉達(dá)創(chuàng)始人兼首席執(zhí)行官黃仁勛介紹了基于新英偉達(dá)安培GPU架構(gòu)的新英偉達(dá)A100 GPU。本文將介紹新的A100 GPU,并描述NVIDIA安培體系結(jié)構(gòu)GPU的重要新功能。
在現(xiàn)代云數(shù)據(jù)中心運(yùn)行的計(jì)算密集型應(yīng)用程序的多樣性推動了NVIDIA GPU加速云計(jì)算的爆炸式增長。這些密集型應(yīng)用包括人工智能深度學(xué)習(xí)(AI deep learning,DL)培訓(xùn)和推理、數(shù)據(jù)分析、科學(xué)計(jì)算、基因組學(xué)、邊緣視頻分析和5G服務(wù)、圖形渲染、云游戲等。從擴(kuò)展人工智能培訓(xùn)和科學(xué)計(jì)算,到擴(kuò)展推理應(yīng)用程序,再到實(shí)現(xiàn)實(shí)時(shí)對話人工智能,NVIDIA gpu提供了必要的馬力來加速當(dāng)今云數(shù)據(jù)中心中運(yùn)行的眾多復(fù)雜和不可預(yù)測的工作負(fù)載。
NVIDIA GPU是推動人工智能革命的領(lǐng)先計(jì)算引擎,為人工智能訓(xùn)練和推理工作提供了巨大的加速。此外,NVIDIA gpu加速了許多類型的HPC和數(shù)據(jù)分析應(yīng)用程序和系統(tǒng),使您能夠有效地分析、可視化數(shù)據(jù),并將數(shù)據(jù)轉(zhuǎn)化為見解。NVIDIA加速計(jì)算平臺是世界上許多最重要和增長最快的行業(yè)的核心。
Introducing the NVIDIA A100 Tensor Core GPU
NVIDIA A100 Tensor Core GPU基于新的NVIDIA安培GPU體系結(jié)構(gòu),并建立在以前的NVIDIA Tesla V100 GPU的能力之上。它增加了許多新功能,為HPC、AI和數(shù)據(jù)分析工作負(fù)載提供了顯著更快的性能。
A100為運(yùn)行在單個(gè)和多個(gè)GPU工作站、服務(wù)器、集群、云數(shù)據(jù)中心、邊緣系統(tǒng)和超級計(jì)算機(jī)中的GPU計(jì)算和DL應(yīng)用程序提供了強(qiáng)大的擴(kuò)展能力。A100 GPU支持構(gòu)建彈性、多用途和高吞吐量的數(shù)據(jù)中心。
A100 GPU包括一個(gè)革命性的新的多實(shí)例GPU(MIG)虛擬化和GPU分區(qū)功能,這對云服務(wù)提供商(csp)特別有利。當(dāng)配置為MIG操作時(shí),A100允許csp提高其GPU服務(wù)器的利用率,以不增加成本的方式提供最多7倍的GPU實(shí)例。健壯的故障隔離允許他們安全地劃分單個(gè)A100 GPU。
A100增加了一個(gè)強(qiáng)大的新的第三代Tensor核心,它在增加了對DL和HPC數(shù)據(jù)類型的全面支持的同時(shí),還增加了一個(gè)新的稀疏特性,使吞吐量進(jìn)一步增加了一倍。
A100中新的TensorFloat-32(TF32)Tensor Core操作為在DL框架和HPC中加速FP32輸入/輸出數(shù)據(jù)提供了一條簡單的途徑,運(yùn)行速度比V100 FP32 FMA操作快10倍,或在稀疏情況下快20倍。對于FP16/FP32混合精度DL,A100張量核的性能是V100的2.5倍,稀疏性增加到5倍。
新的Bfloat16(BF16)/FP32混合精度張量核運(yùn)算以與FP16/FP32混合精度相同的速率運(yùn)行。INT8、INT4和二進(jìn)制舍入的張量核心加速支持DL推斷,A100稀疏INT8的運(yùn)行速度比V100 INT8快20倍。對于HPC,A100 Tensor Core包括新的符合IEEE標(biāo)準(zhǔn)的FP64處理,其性能是V100的2.5倍。
NVIDIA A100 GPU的架構(gòu)不僅可以加速大型復(fù)雜工作負(fù)載,還可以有效地加速許多較小的工作負(fù)載。A100支持構(gòu)建能夠適應(yīng)不可預(yù)測的工作負(fù)載需求的數(shù)據(jù)中心,同時(shí)提供細(xì)粒度的工作負(fù)載配置、更高的GPU利用率和改進(jìn)的TCO。
NVIDIA A100 GPU為人工智能訓(xùn)練和推理工作負(fù)載提供了超過V100的異常加速。
Key features
在臺積電7NMN7制造工藝上制造的基于NVIDIA安培架構(gòu)的GA100 GPU為A100供電,包括542億個(gè)晶體管,芯片尺寸為826平方毫米。
A100 GPU streaming multiprocessor
NVIDIA安培體系結(jié)構(gòu)中的新的流多處理器(SM)基于A100張量核GPU顯著提高了性能,建立在Volta和Turing SM體系結(jié)構(gòu)中引入的特性的基礎(chǔ)上,并增加了許多新功能。
A100第三代張量核增強(qiáng)了操作數(shù)共享和效率,并添加了強(qiáng)大的新數(shù)據(jù)類型,包括:
加速處理FP32數(shù)據(jù)的TF32張量核心指令
符合IEEE標(biāo)準(zhǔn)的HPC FP64張量核指令
與FP16吞吐量相同的BF16張量核心指令
表1. A100張量核心GPU性能規(guī)范。
1) 峰值速率基于GPU升壓時(shí)鐘。
2) 使用新稀疏特性的有效TFLOPS/TOPS。
在100個(gè)張量核中新的稀疏性支持可以利用DL網(wǎng)絡(luò)中的細(xì)粒度結(jié)構(gòu)稀疏性來加倍張量核操作的吞吐量。稀疏性特征在本文后面的A100介紹細(xì)粒度結(jié)構(gòu)稀疏性一節(jié)中有詳細(xì)描述。
A100中更大更快的一級緩存和共享內(nèi)存單元提供的每SM聚合容量是V100的1.5倍(192 KB/SM,128 KB/SM),可為許多HPC和AI工作負(fù)載提供額外的加速。
其他一些新的SM特性提高了效率和可編程性,降低了軟件復(fù)雜性。
40 GB HBM2 and 40 MB L2 cache
為了滿足巨大的計(jì)算吞吐量,NVIDIA A100 GPU擁有40gb的高速HBM2內(nèi)存,其內(nèi)存帶寬達(dá)到1555gb/s,比Tesla V100提高了73%。此外,A100 GPU的片上內(nèi)存顯著增加,包括一個(gè)比V100大近7倍的40MB二級(L2)緩存,以最大限度地提高計(jì)算性能。A100二級緩存采用了一種新的分區(qū)交叉結(jié)構(gòu),提供了V100二級緩存讀取帶寬的2.3倍。
為了優(yōu)化容量利用率,NVIDIA安培體系結(jié)構(gòu)為您提供了二級緩存駐留控制,用于管理要保留或從緩存中收回的數(shù)據(jù)。A100還增加了計(jì)算數(shù)據(jù)壓縮,使DRAM帶寬和二級帶寬提高了4倍,二級容量提高了2倍。
Multi-Instance GPU
新的多實(shí)例GPU(MIG)功能允許A100 Tensor Core GPU安全地劃分為多達(dá)七個(gè)單獨(dú)的GPU實(shí)例,用于CUDA應(yīng)用程序,為多個(gè)用戶提供單獨(dú)的GPU資源以加速其應(yīng)用程序。
使用MIG,每個(gè)實(shí)例的處理器在整個(gè)內(nèi)存系統(tǒng)中都有獨(dú)立的路徑。片上縱橫端口、二級緩存組、內(nèi)存控制器和DRAM地址總線都是唯一分配給單個(gè)實(shí)例的。這確保了單個(gè)用戶的工作負(fù)載可以在相同的二級緩存分配和DRAM帶寬下以可預(yù)測的吞吐量和延遲運(yùn)行,即使其他任務(wù)正在沖擊自己的緩存或使DRAM接口飽和。
MIG提高了GPU硬件利用率,同時(shí)提供了定義的QoS和不同客戶端(如vm、容器和進(jìn)程)之間的隔離。MIG對于擁有多租戶用例的csp尤其有利。它確保了一個(gè)客戶機(jī)不會影響其他客戶機(jī)的工作或調(diào)度,此外還提供了增強(qiáng)的安全性并允許為客戶機(jī)提供GPU利用率保證。
Third-generation NVIDIA NVLink
第三代NVIDIA高速NVLink互連在A100 GPUs和新NVIDIA nvlswitch中實(shí)現(xiàn),顯著提高了多GPU的可擴(kuò)展性、性能和可靠性。由于每個(gè)GPU和交換機(jī)有更多的鏈路,新的NVLink提供了更高的GPU-GPU通信帶寬,并改進(jìn)了錯(cuò)誤檢測和恢復(fù)功能。
第三代NVLink每個(gè)信號對的數(shù)據(jù)速率為50gbit/sec,幾乎是V100中25.78gbit/sec速率的兩倍。一個(gè)A100NVLink在每個(gè)方向上提供25GB/秒的帶寬,與V100類似,但每個(gè)鏈路使用的信號對數(shù)僅為V100的一半。鏈路總數(shù)在A100中增加到12個(gè),而在V100中增加到6個(gè),從而產(chǎn)生600 GB/秒的總帶寬,而在V100中為300 GB/秒。
Support for NVIDIA Magnum IO and Mellanox interconnect solutions
A100 Tensor Core GPU與NVIDIA Magnum IO和Mellanox最先進(jìn)的InfiniBand和以太網(wǎng)互連解決方案完全兼容,可加速多節(jié)點(diǎn)連接。
Magnum IO API集成了計(jì)算、網(wǎng)絡(luò)、文件系統(tǒng)和存儲,以最大限度地提高多GPU、多節(jié)點(diǎn)加速系統(tǒng)的I/O性能。它與CUDA-X庫接口,以加速從人工智能和數(shù)據(jù)分析到可視化等各種工作負(fù)載的I/O。
PCIe Gen 4 with SR-IOV
A100 GPU支持PCI Express Gen 4(PCIe Gen 4),通過提供31.5
GB/s而不是15.75 GB/s的x16連接,PCIe 3.0/3.1的帶寬翻了一番。更快的速度對于連接到支持PCIe 4.0的cpu的100 gpu和支持快速網(wǎng)絡(luò)接口(例如200gbit/sec InfiniBand)尤其有利。
A100還支持單根輸入/輸出虛擬化(SR-IOV),允許為多個(gè)進(jìn)程或虛擬機(jī)共享和虛擬化單個(gè)PCIe連接。
Improved error and fault detection, isolation, and containment
通過檢測、包含并經(jīng)常糾正錯(cuò)誤和故障,而不是強(qiáng)制GPU重置,最大化GPU正常運(yùn)行時(shí)間和可用性至關(guān)重要。在大型多GPU集群和單GPU、多租戶環(huán)境(如MIG配置)中尤其如此。A100 Tensor Core GPU包括新技術(shù),用于改進(jìn)錯(cuò)誤/故障屬性、隔離和遏制,如本文后面深入的架構(gòu)部分所述。
Asynchronous copy
A100 GPU包括一個(gè)新的異步復(fù)制指令,該指令將數(shù)據(jù)直接從全局內(nèi)存加載到SM共享內(nèi)存中,從而消除了使用中間寄存器文件(RF)的需要。異步復(fù)制減少了寄存器文件帶寬,更有效地使用了內(nèi)存帶寬,并降低了功耗。顧名思義,異步復(fù)制可以在后臺完成,而SM正在執(zhí)行其他計(jì)算。
Asynchronous barrier
A100 GPU在共享內(nèi)存中提供硬件加速屏障。這些障礙是使用CUDA 11的形式,ISO C++ +符合壁壘對象。異步屏障將屏障到達(dá)和等待操作分開,可用于將從全局內(nèi)存到共享內(nèi)存的異步副本與SM中的計(jì)算重疊。它們可用于使用CUDA線程實(shí)現(xiàn)生產(chǎn)者-消費(fèi)者模型。屏障還提供了同步不同粒度的CUDA線程的機(jī)制,而不僅僅是扭曲或塊級別。
Task graph acceleration
CUDA任務(wù)圖為向GPU提交工作提供了一個(gè)更有效的模型。任務(wù)圖由一系列操作組成,如內(nèi)存拷貝和內(nèi)核啟動,這些操作通過依賴關(guān)系連接起來。任務(wù)圖允許定義一次并重復(fù)運(yùn)行執(zhí)行流。預(yù)定義的任務(wù)圖允許在單個(gè)操作中啟動任意數(shù)量的內(nèi)核,極大地提高了應(yīng)用程序的效率和性能。A100增加了新的硬件特性,使任務(wù)圖中網(wǎng)格之間的路徑明顯更快。
A100 GPU hardware architecture
NVIDIA GA100 GPU由多個(gè)GPU處理集群(gpc)、紋理處理集群(tpc)、流式多處理器(SMs)和HBM2內(nèi)存控制器組成。
GA100 GPU的完整實(shí)現(xiàn)包括以下單元:
· 8 GPCs, 8 TPCs/GPC, 2 SMs/TPC, 16 SMs/GPC, 128 SMs per
full GPU
· 64 FP32 CUDA Cores/SM, 8192 FP32 CUDA Cores per full GPU
· 4 third-generation Tensor Cores/SM, 512 third-generation
Tensor Cores per full GPU
· 6 HBM2 stacks, 12 512-bit memory controllers
GA100 GPU的A100 Tensor Core GPU實(shí)現(xiàn)包括以下單元:
· 7 GPCs, 7 or 8 TPCs/GPC, 2 SMs/TPC, up to 16 SMs/GPC, 108
SMs
· 64 FP32 CUDA Cores/SM, 6912 FP32 CUDA Cores per GPU
· 4 third-generation Tensor Cores/SM, 432 third-generation
Tensor Cores per GPU
· 5 HBM2 stacks, 10 512-bit memory controllers
A100 SM architecture
新的A100SM顯著提高了性能,建立在Volta和Turing SM體系結(jié)構(gòu)中引入的特性的基礎(chǔ)上,并增加了許多新的功能和增強(qiáng)。
A100 SM圖如圖5所示。Volta和Turing每個(gè)SM有8個(gè)張量核,每個(gè)張量核每個(gè)時(shí)鐘執(zhí)行64個(gè)FP16/FP32混合精度融合乘法加法(FMA)操作。A100 SM包括新的第三代張量核心,每個(gè)核心執(zhí)行256 FP16/FP32 FMA操作每時(shí)鐘。A100每個(gè)SM有四個(gè)張量核,每個(gè)時(shí)鐘總共提供1024個(gè)密集的FP16/FP32 FMA操作,與Volta和Turing相比,每個(gè)SM的計(jì)算功率增加了兩倍。
本文簡要強(qiáng)調(diào)了SM的主要功能,并在后面的文章中詳細(xì)介紹了這些功能:
第三代張量磁芯:
所有數(shù)據(jù)類型的加速,包括FP16、BF16、TF32、FP64、INT8、INT4和Binary。
新的張量核稀疏特性利用了深度學(xué)習(xí)網(wǎng)絡(luò)中的細(xì)粒度結(jié)構(gòu)稀疏性,使標(biāo)準(zhǔn)張量核操作的性能提高了一倍。
A100中的TF32 Tensor核心操作為在DL框架和HPC中加速FP32輸入/輸出數(shù)據(jù)提供了一條簡單的途徑,運(yùn)行速度比V100 FP32 FMA操作快10倍,或在稀疏情況下快20倍。
FP16/FP32混合精度張量核運(yùn)算為DL提供了前所未有的處理能力,運(yùn)行速度比V100張量核運(yùn)算快2.5倍,稀疏性增加到5倍。
BF16/FP32混合精度張量核心運(yùn)算的運(yùn)行速度與FP16/FP32混合精度相同。
FP64 Tensor核心操作為HPC提供了前所未有的雙精度處理能力,運(yùn)行速度比V100 FP64 DFMA操作快2.5倍。
具有稀疏性的INT8張量核操作為DL推理提供了前所未有的處理能力,運(yùn)行速度比V100 INT8操作快20倍。
192kb的共享內(nèi)存和L1數(shù)據(jù)緩存,比V100 SM大1.5x。
新的異步復(fù)制指令將數(shù)據(jù)直接從全局內(nèi)存加載到共享內(nèi)存中,可以選擇繞過一級緩存,并且不需要使用中間寄存器文件(RF)。
新的基于共享內(nèi)存的屏障單元(異步屏障),用于新的異步復(fù)制指令。
二級緩存管理和常駐控制的新說明。
CUDA協(xié)作組支持的新的扭曲級縮減指令。
許多可編程性改進(jìn)以降低軟件復(fù)雜性。
圖6比較了V100和A100 FP16張量核心操作,還將V100 FP32、FP64和INT8標(biāo)準(zhǔn)操作與各自的A100 TF32、FP64和INT8張量核心操作進(jìn)行了比較。吞吐量是每個(gè)GPU的聚合,A100使用FP16、TF32和INT8的稀疏張量核心操作。左上角的圖顯示了兩個(gè)V100 FP16張量核,因?yàn)閂100 SM每個(gè)SM分區(qū)有兩個(gè)張量核,而A100 SM分區(qū)有兩個(gè)張量核。
Figure 6. A100 Tensor Core operations compared to V100 Tensor Core and standard operations for different data types.
Figure 7. TensorFloat-32 (TF32) provides the range of FP32 with the precision of FP16(left). A100 accelerates tensor math with TF32 while supporting FP32 input and output data (right), enabling easy integration into DL and HPC programs and automatic acceleration of DL frameworks.
今天,人工智能訓(xùn)練的默認(rèn)數(shù)學(xué)是FP32,沒有張量核心加速度。NVIDIA安培體系結(jié)構(gòu)引入了對TF32的新支持,使得人工智能訓(xùn)練在默認(rèn)情況下可以使用張量核,而用戶不必費(fèi)勁。在產(chǎn)生標(biāo)準(zhǔn)IEEE FP32輸出之前,非張量操作繼續(xù)使用FP32數(shù)據(jù)路徑,而TF32張量核讀取FP32數(shù)據(jù)并使用與FP32相同的范圍,同時(shí)降低內(nèi)部精度。TF32包括8位指數(shù)(與FP32相同)、10位尾數(shù)(與FP16精度相同)和1個(gè)符號位。
與Volta一樣,自動混合精度(AMP)使您能夠使用FP16的混合精度進(jìn)行人工智能訓(xùn)練,只需更改幾行代碼。使用AMP,A100提供比TF32快2倍的張量核心性能。
綜上所述,用戶對NVIDIA安培架構(gòu)數(shù)學(xué)進(jìn)行DL培訓(xùn)的選擇如下:
默認(rèn)情況下,使用TF32張量核,不調(diào)整用戶腳本。與A100上的FP32相比,吞吐量高出8倍;與V100上的FP32相比,吞吐量高出10倍。
應(yīng)使用FP16或BF16混合精度訓(xùn)練以獲得最大訓(xùn)練速度。與TF32相比,吞吐量增加了2倍,與A100上的FP32相比,吞吐量增加了16倍,與V100上的FP32相比,吞吐量增加了20倍。
A100張量核加速高性能混凝土
高性能計(jì)算機(jī)應(yīng)用的性能需求正在迅速增長。許多科學(xué)和研究領(lǐng)域的應(yīng)用都依賴于雙精度(FP64)計(jì)算。
為了滿足HPC計(jì)算快速增長的計(jì)算需求,A100 GPU支持張量運(yùn)算,加速符合IEEE標(biāo)準(zhǔn)的FP64計(jì)算,使FP64的性能達(dá)到NVIDIA Tesla V100 GPU的2.5倍。
A100上新的雙精度矩陣乘法加法指令取代了V100上的8條DFMA指令,減少了指令獲取、調(diào)度開銷、寄存器讀取、數(shù)據(jù)路徑功率和共享內(nèi)存讀取帶寬。
A100中的每個(gè)SM總共計(jì)算64個(gè)FP64 FMA操作/時(shí)鐘(或128個(gè)FP64操作/時(shí)鐘),是特斯拉V100吞吐量的兩倍。A100 Tensor Core GPU具有108條短信息,峰值FP64吞吐量為19.5tflops,是Tesla V100的2.5倍。
有了對這些新格式的支持,A100張量核可以用于加速HPC工作負(fù)載、迭代求解器和各種新的AI算法。
Table 2. A100 speedup over V100 (TC=Tensor Core, GPUs at respective clock speeds).
- Effective TOPS / TFLOPS using the new Sparsity feature
A100 introduces fine-grained structured sparsity
NVIDIA使用A100 GPU引入了細(xì)粒度結(jié)構(gòu)稀疏性,這是一種新的方法,可以使深部神經(jīng)網(wǎng)絡(luò)的計(jì)算吞吐量翻倍。
在深度學(xué)習(xí)中,稀疏性是可能的,因?yàn)閭€(gè)體權(quán)重的重要性在學(xué)習(xí)過程中不斷演化,到網(wǎng)絡(luò)訓(xùn)練結(jié)束時(shí),只有一個(gè)子集的權(quán)重在確定學(xué)習(xí)輸出時(shí)獲得了有意義的目的。剩下的權(quán)重不再需要了。
細(xì)粒度結(jié)構(gòu)稀疏性對允許的稀疏性模式施加了約束,使硬件更有效地對輸入操作數(shù)進(jìn)行必要的對齊。由于深度學(xué)習(xí)網(wǎng)絡(luò)能夠在基于訓(xùn)練反饋的訓(xùn)練過程中自適應(yīng)權(quán)值,NVIDIA工程師發(fā)現(xiàn),結(jié)構(gòu)約束一般不會影響訓(xùn)練網(wǎng)絡(luò)的推理精度。這使得能夠以稀疏性推斷加速度。
對于訓(xùn)練加速,需要在訓(xùn)練過程的早期引入稀疏性以提供性能效益,而訓(xùn)練加速而不損失精度的方法是一個(gè)活躍的研究領(lǐng)域。
稀疏矩陣定義
結(jié)構(gòu)是通過一個(gè)新的2:4稀疏矩陣定義來實(shí)現(xiàn)的,該定義允許每四個(gè)入口向量中有兩個(gè)非零值。A100支持行上2:4的結(jié)構(gòu)化稀疏性,如圖9所示。
由于矩陣結(jié)構(gòu)清晰,因此可以有效地壓縮它,并將內(nèi)存存儲和帶寬減少近2倍。
Figure 9. A100 fine-grained structured sparsity prunes trained weights with a 2-out-of-4 non-zero pattern, followed by a simple and universal recipe for fine-tuning the non-zero weights. The weights are compressed for a 2x reduction in data footprint and bandwidth, and the A100 Sparse Tensor Core doubles math throughput by skipping the zeros.
NVIDIA開發(fā)了一個(gè)簡單而通用的方法,用這種2:4結(jié)構(gòu)的稀疏模式來稀疏化深層神經(jīng)網(wǎng)絡(luò)進(jìn)行推理。該網(wǎng)絡(luò)首先使用稠密權(quán)值進(jìn)行訓(xùn)練,然后應(yīng)用細(xì)粒度結(jié)構(gòu)化剪枝,最后通過附加的訓(xùn)練步驟對剩余的非零權(quán)值進(jìn)行微調(diào)。這種方法實(shí)際上不會導(dǎo)致基于橫跨視覺、對象檢測、分割、自然語言建模和翻譯的數(shù)十個(gè)網(wǎng)絡(luò)的評估的推斷精度損失。
A100 Tensor-Core GPU包含新的稀疏Tensor-Core指令,這些指令跳過值為零的條目的計(jì)算,從而使Tensor-Core計(jì)算吞吐量加倍。圖9顯示了Tensor Core如何使用壓縮元數(shù)據(jù)(非零索引)將壓縮的權(quán)重與為輸入到Tensor Core點(diǎn)積計(jì)算而適當(dāng)選擇的激活相匹配。
Combined L1 data cache and shared memory
首先在NVIDIA Tesla V100中引入的NVIDIA將L1數(shù)據(jù)緩存和共享內(nèi)存子系統(tǒng)架構(gòu)相結(jié)合,顯著提高了性能,同時(shí)還簡化了編程并減少了達(dá)到峰值或接近峰值應(yīng)用程序性能所需的調(diào)整。將數(shù)據(jù)緩存和共享內(nèi)存功能組合到單個(gè)內(nèi)存塊中,為這兩種類型的內(nèi)存訪問提供最佳的總體性能。
一級數(shù)據(jù)緩存和共享內(nèi)存的組合容量在A100中為192 KB/SM,而在V100中為128 KB/SM。
Simultaneous execution of FP32 and INT32 operations
與V100和Turing gpu類似,A100 SM還包括單獨(dú)的FP32和INT32內(nèi)核,允許以全吞吐量同時(shí)執(zhí)行FP32和INT32操作,同時(shí)也增加了指令發(fā)出吞吐量。
許多應(yīng)用程序都有執(zhí)行指針?biāo)阈g(shù)(整數(shù)內(nèi)存地址計(jì)算)的內(nèi)部循環(huán),這些內(nèi)部循環(huán)與浮點(diǎn)計(jì)算結(jié)合使用,可從同時(shí)執(zhí)行FP32和INT32指令中獲益。流水線循環(huán)的每次迭代都可以更新地址(INT32指針?biāo)惴?#xff09;并為下一次迭代加載數(shù)據(jù),同時(shí)在FP32中處理當(dāng)前迭代。
A100 HBM2 DRAM subsystem
隨著HPC、AI和分析數(shù)據(jù)集的不斷增長以及尋找解決方案的問題變得越來越復(fù)雜,需要更多的GPU內(nèi)存容量和更高的內(nèi)存帶寬。
特斯拉P100是世界上第一個(gè)支持高帶寬HBM2存儲技術(shù)的GPU架構(gòu),而特斯拉V100提供了更快、更高效、更大容量的HBM2實(shí)現(xiàn)。A100再次提高了HBM2的性能和容量。
HBM2內(nèi)存由與GPU位于同一物理包上的內(nèi)存堆棧組成,與傳統(tǒng)的GDDR5/6內(nèi)存設(shè)計(jì)相比,它提供了大量的功耗和面積節(jié)省,允許在系統(tǒng)中安裝更多的GPU。有關(guān)HBM2技術(shù)基本細(xì)節(jié)的更多信息,請參閱NVIDIA Tesla P100:有史以來最先進(jìn)的數(shù)據(jù)中心加速器白皮書。
A100 GPU的SXM4型電路板上有40GB的快速HBM2 DRAM內(nèi)存。內(nèi)存被組織為五個(gè)活動的HBM2堆棧,每個(gè)堆棧有八個(gè)內(nèi)存片。A100 HBM2具有1215 MHz(DDR)的數(shù)據(jù)速率,可提供1555 GB/秒的內(nèi)存帶寬,比V100內(nèi)存帶寬高出1.7倍以上。
ECC內(nèi)存彈性
A100 HBM2存儲子系統(tǒng)支持單糾錯(cuò)雙糾錯(cuò)碼(SECDED)糾錯(cuò)碼(ECC)保護(hù)數(shù)據(jù)。ECC為對數(shù)據(jù)損壞敏感的計(jì)算應(yīng)用程序提供了更高的可靠性。在大規(guī)模集群計(jì)算環(huán)境中,gpu處理大型數(shù)據(jù)集或長時(shí)間運(yùn)行應(yīng)用程序時(shí),它尤其重要。A100中的其他密鑰存儲結(jié)構(gòu)也受到SECDED ECC的保護(hù),包括二級緩存和一級緩存以及所有短消息中的注冊文件。
A100 L2 cache
A100 GPU包含40 MB的二級緩存,比V100二級緩存大6.7倍緩存二級緩存分為兩個(gè)分區(qū),以實(shí)現(xiàn)更高的帶寬和更低的延遲內(nèi)存訪問。每個(gè)二級分區(qū)定位和緩存數(shù)據(jù),以便從直接連接到分區(qū)的gpc中的SMs進(jìn)行內(nèi)存訪問。這種結(jié)構(gòu)使A100能夠提供比V100高2.3x的L2帶寬。硬件緩存一致性在整個(gè)GPU中維護(hù)CUDA編程模型,應(yīng)用程序自動利用新的二級緩存的帶寬和延遲優(yōu)勢。
二級緩存是GPC和SMs的共享資源,位于GPC之外。A100 L2緩存大小的大幅增加顯著提高了許多HPC和AI工作負(fù)載的性能,因?yàn)楝F(xiàn)在可以以比讀取和寫入HBM2內(nèi)存快得多的速度緩存和重復(fù)訪問更大部分的數(shù)據(jù)集和模型。一些受DRAM帶寬限制的工作負(fù)載將受益于較大的二級緩存,例如使用小批量的深度神經(jīng)網(wǎng)絡(luò)。
為了優(yōu)化容量利用率,NVIDIA安培體系結(jié)構(gòu)為您提供了二級緩存駐留控制,用于管理要保留或從緩存中收回的數(shù)據(jù)。您可以為持久數(shù)據(jù)訪問預(yù)留一部分二級緩存。
例如,對于DL推斷工作負(fù)載,ping-pong緩沖區(qū)可以持久地緩存在L2中,以便更快地訪問數(shù)據(jù),同時(shí)還可以避免對DRAM的寫回。對于生產(chǎn)者-消費(fèi)者鏈(如在DL培訓(xùn)中發(fā)現(xiàn)的那些),二級緩存控件可以跨寫-讀數(shù)據(jù)依賴關(guān)系優(yōu)化緩存。在LSTM網(wǎng)絡(luò)中,遞歸權(quán)重可以優(yōu)先緩存并在L2中重用。
NVIDIA-Ampere體系結(jié)構(gòu)增加了計(jì)算數(shù)據(jù)壓縮,以加速非結(jié)構(gòu)化稀疏性和其他可壓縮數(shù)據(jù)模式。二級壓縮可使DRAM讀/寫帶寬提高4倍,二級讀取帶寬提高4倍,二級容量提高2倍。
Table 3. Comparison of NVIDIA data center GPUs.
-
Peak rates are based on the GPU boost clock.
-
Four Tensor Cores in an A100 SM have 2x the raw FMA
computational power of eight Tensor Cores in a GV100 SM. -
Effective TOPS / TFLOPS using the new Sparsity feature.
注:由于A100 Tensor Core GPU設(shè)計(jì)用于安裝在高性能服務(wù)器和數(shù)據(jù)中心機(jī)架中,為AI和HPC計(jì)算工作負(fù)載供電,因此它不包括顯示連接器、用于光線跟蹤加速的NVIDIA RT內(nèi)核或NVNC編碼器。
Compute capability
A100 GPU支持新的計(jì)算能力8.0。表4比較了NVIDIA GPU體系結(jié)構(gòu)的不同計(jì)算能力的參數(shù)。
Table 4. Compute Capability: GP100 vs. GV100 vs. GA100.
MIG architecture
盡管許多數(shù)據(jù)中心工作負(fù)載在規(guī)模和復(fù)雜性上都在不斷擴(kuò)展,但一些加速任務(wù)并沒有那么苛刻,例如早期開發(fā)或在低批量大小的簡單模型上進(jìn)行推理。數(shù)據(jù)中心管理者的目標(biāo)是保持高資源利用率,因此一個(gè)理想的數(shù)據(jù)中心加速器不僅會變得很大,還會有效地加速許多較小的工作負(fù)載。
新的MIG特性可以將每個(gè)A100劃分為多達(dá)7個(gè)GPU實(shí)例以獲得最佳利用率,有效地?cái)U(kuò)展了對每個(gè)用戶和應(yīng)用程序的訪問。
圖10顯示了Volta MPS如何允許多個(gè)應(yīng)用程序在單獨(dú)的GPU執(zhí)行資源(SMs)上同時(shí)執(zhí)行。但是,由于內(nèi)存系統(tǒng)資源在所有應(yīng)用程序之間共享,如果一個(gè)應(yīng)用程序?qū)RAM帶寬有很高的要求,或者其請求超額訂閱了二級緩存,則可能會干擾其他應(yīng)用程序。
圖11中所示的A100 GPU新的MIG功能可以將單個(gè)GPU劃分為多個(gè)GPU分區(qū),稱為GPU實(shí)例。每個(gè)實(shí)例的短消息在整個(gè)內(nèi)存系統(tǒng)中都有獨(dú)立的路徑——片上縱橫端口、二級緩存組、內(nèi)存控制器和DRAM地址總線都是唯一分配給單個(gè)實(shí)例的。這確保了單個(gè)用戶的工作負(fù)載可以在相同的二級緩存分配和DRAM帶寬下以可預(yù)測的吞吐量和延遲運(yùn)行,即使其他任務(wù)正在沖擊自己的緩存或使DRAM接口飽和。
使用此功能,MIG可以對可用的GPU計(jì)算資源進(jìn)行分區(qū),以便為不同的客戶端(如vm、容器、進(jìn)程等)提供具有故障隔離的定義服務(wù)質(zhì)量(QoS)。它允許多個(gè)GPU實(shí)例在單個(gè)物理A100 GPU上并行運(yùn)行。MIG還保持CUDA編程模型不變,以最小化編程工作量。
csp可以使用MIG來提高其GPU服務(wù)器上的利用率,以不增加成本的方式提供最多7倍的GPU實(shí)例。MIG支持csp所需的必要的QoS和隔離保證,以確保一個(gè)客戶端(VM、容器、進(jìn)程)不會影響另一個(gè)客戶端的工作或調(diào)度。
csp通常根據(jù)客戶使用模式來劃分硬件。只有當(dāng)硬件資源在運(yùn)行時(shí)提供一致的帶寬、適當(dāng)?shù)母綦x和良好的性能時(shí),有效的分區(qū)才起作用。
使用基于NVIDIA安培體系結(jié)構(gòu)的GPU,您可以在新的虛擬GPU實(shí)例上查看和調(diào)度作業(yè),就像它們是物理GPU一樣。MIG與Linux操作系統(tǒng)及其管理程序協(xié)同工作。用戶可以使用諸如Docker Engine之類的運(yùn)行時(shí)運(yùn)行帶有MIG的容器,并且很快就會支持使用Kubernetes的容器編排。
Figure 10. CSP Multi-user node today (pre-A100). Accelerated GPU instances are available for usage only at full physical GPU granularity for users in different organizations, even if the user applications don’t require a full GPU.
Figure 11. CSP multi-user with MIG diagram. Multiple independent users from the same or different organizations can be assigned their own dedicated, protected, and isolated GPU Instance within a single physical GPU.
錯(cuò)誤和故障檢測、隔離和控制
通過檢測、包含并經(jīng)常糾正錯(cuò)誤和故障,而不是強(qiáng)制GPU重置,提高GPU的正常運(yùn)行時(shí)間和可用性至關(guān)重要。這在大型、多GPU集群和單GPU、多租戶環(huán)境(如MIG配置)中尤其重要。
NVIDIA安培體系結(jié)構(gòu)A100 GPU包括改進(jìn)錯(cuò)誤/故障歸因的新技術(shù)(對導(dǎo)致錯(cuò)誤的應(yīng)用程序進(jìn)行屬性化)、隔離(隔離故障應(yīng)用程序,使其不影響在同一GPU或GPU集群中運(yùn)行的其他應(yīng)用程序),和包容(確保一個(gè)應(yīng)用程序中的錯(cuò)誤不會泄漏并影響其他應(yīng)用程序)。這些故障處理技術(shù)對于MIG環(huán)境尤其重要,以確保共享單個(gè)GPU的客戶端之間的正確隔離和安全性。
NVLink連接的gpu現(xiàn)在具有更強(qiáng)大的錯(cuò)誤檢測和恢復(fù)功能。遠(yuǎn)程GPU上的頁面錯(cuò)誤通過NVLink發(fā)送回源GPU。遠(yuǎn)程訪問故障通信是大型GPU計(jì)算集群的一個(gè)重要恢復(fù)功能,有助于確保一個(gè)進(jìn)程或VM中的故障不會導(dǎo)致其他進(jìn)程或VM宕機(jī)。
A100 GPU還包括其他一些新的和改進(jìn)的硬件功能,可以提高應(yīng)用程序性能。有關(guān)更多信息,請參閱即將發(fā)布的NVIDIA A100 Tensor Core GPU體系結(jié)構(gòu)白皮書。
CUDA11 advances for NVIDIA Ampere architecture GPUs
在NVIDIA-CUDA并行計(jì)算平臺上構(gòu)建了數(shù)千個(gè)GPU加速應(yīng)用程序。CUDA的靈活性和可編程性使其成為研究和部署新的DL和并行計(jì)算算法的首選平臺。
NVIDIA安培體系結(jié)構(gòu)GPU旨在提高GPU的可編程性和性能,同時(shí)降低軟件復(fù)雜性。NVIDIA安培體系結(jié)構(gòu)gpu和CUDA編程模型的發(fā)展加速了程序執(zhí)行,降低了許多操作的延遲和開銷。
新的CUDA 11特性為第三代Tensor核、稀疏性、CUDA圖、多實(shí)例gpu、L2緩存駐留控制以及NVIDIA-Ampere體系結(jié)構(gòu)的其他一些新功能提供編程和API支持。
有關(guān)新CUDA功能的更多信息,請參閱即將發(fā)布的NVIDIA A100 Tensor Core GPU體系結(jié)構(gòu)白皮書。有關(guān)新DGX A100系統(tǒng)的詳細(xì)信息,請參見使用NVIDIA DGX A100定義AI創(chuàng)新。有關(guān)開發(fā)人員區(qū)域的更多信息,請參閱NVIDIA Developer,有關(guān)CUDA的更多信息,請參閱新的CUDA編程指南。
Conclusion
英偉達(dá)的使命是加速我們這個(gè)時(shí)代的達(dá)芬奇和愛因斯坦的工作。科學(xué)家、研究人員和工程師致力于利用高性能計(jì)算(HPC)和人工智能解決一些世界上最重要的科學(xué)、工業(yè)和大數(shù)據(jù)挑戰(zhàn)。
NVIDIA A100 Tensor Core GPU為我們的加速數(shù)據(jù)中心平臺帶來了下一個(gè)巨大的飛躍,在每個(gè)規(guī)模上都提供了無與倫比的加速,使這些創(chuàng)新者能夠在一生中完成他們一生的工作。A100為許多應(yīng)用領(lǐng)域提供動力,包括HPC、基因組學(xué)、5G、渲染、深度學(xué)習(xí)、數(shù)據(jù)分析、數(shù)據(jù)科學(xué)和機(jī)器人技術(shù)。
推進(jìn)當(dāng)今最重要的HPC和AI應(yīng)用個(gè)性化醫(yī)療、對話式AI和深度推薦系統(tǒng)需要研究人員做大。A100為包括Mellanox HDR InfiniBand、NVSwitch、NVIDIA HGX A100和Magnum IO SDK在內(nèi)的NVIDIA數(shù)據(jù)中心平臺提供了升級功能。這個(gè)集成的技術(shù)團(tuán)隊(duì)有效地?cái)U(kuò)展到數(shù)以萬計(jì)的gpu,以前所未有的速度訓(xùn)練最復(fù)雜的AI網(wǎng)絡(luò)。
A100 GPU的新MIG功能可以將每個(gè)A100劃分為多達(dá)7個(gè)GPU加速器,以實(shí)現(xiàn)最佳利用率,有效地提高GPU資源利用率和GPU對更多用戶和GPU加速應(yīng)用程序的訪問。通過A100的多功能性,基礎(chǔ)設(shè)施管理人員可以最大限度地利用其數(shù)據(jù)中心中的每個(gè)GPU,以滿足不同規(guī)模的性能需求,從最小的作業(yè)到最大的多節(jié)點(diǎn)工作負(fù)載。
總結(jié)
以上是生活随笔為你收集整理的NVIDIA安培架构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CUDA 11功能展示
- 下一篇: 编译器架构设计