在 2020 年 NVIDIA GTC 主題演講中, NVIDIA 創(chuàng)始人兼 CEO 黃仁勛介紹了基于新 NVIDIA 安培 GPU 架構(gòu)的新 NVIDIA A100 GPU 。這篇文章介紹了新的 A100 GPU 內(nèi)部,并描述了 NVIDIA 安培架構(gòu) GPUs 的重要新特性。
現(xiàn)代云數(shù)據(jù)中心運(yùn)行的計(jì)算密集型應(yīng)用程序的多樣性推動(dòng)了 NVIDIA GPU – 加速云計(jì)算的爆炸式發(fā)展。這些密集型應(yīng)用包括 AI 深度學(xué)習(xí)( DL )培訓(xùn)和推理、數(shù)據(jù)分析、科學(xué)計(jì)算、基因組學(xué)、邊緣視頻分析和 5G 服務(wù)、圖形渲染、云游戲等。從擴(kuò)大人工智能培訓(xùn)和科學(xué)計(jì)算,到擴(kuò)展推理應(yīng)用程序,再到實(shí)現(xiàn)實(shí)時(shí)對(duì)話人工智能, NVIDIA GPUs 提供了必要的馬力,以加速當(dāng)今云數(shù)據(jù)中心中運(yùn)行的大量復(fù)雜和不可預(yù)測(cè)的工作負(fù)載。
NVIDIA GPUs 是推動(dòng)人工智能革命的領(lǐng)先計(jì)算引擎,為人工智能訓(xùn)練和推理工作提供了巨大的加速。此外, NVIDIA GPUs 加速了許多類型的 HPC 和數(shù)據(jù)分析應(yīng)用程序和系統(tǒng),使您能夠有效地分析、可視化并將數(shù)據(jù)轉(zhuǎn)化為洞察力。 NVIDIA 加速計(jì)算平臺(tái)是世界上許多最重要和發(fā)展最快的行業(yè)的核心。
介紹了 NVIDIA A100 張量核 GPU
NVIDIA A100 張量核心 GPU 基于新的 NVIDIA 安培 GPU 架構(gòu),并建立在以前的 NVIDIA Tesla V100GPU 的能力之上。它添加了許多新功能,為 HPC 、 AI 和數(shù)據(jù)分析工作負(fù)載提供了顯著更快的性能。
A100 為在單臺(tái)和多臺(tái) GPU 工作站、服務(wù)器、群集、云數(shù)據(jù)中心、邊緣系統(tǒng)和超級(jí)計(jì)算機(jī)上運(yùn)行的 GPU 計(jì)算和 DL 應(yīng)用程序提供了強(qiáng)大的擴(kuò)展能力。 A100 GPU 能夠構(gòu)建彈性、多功能和高吞吐量的數(shù)據(jù)中心。
A100 GPU 包括革命性的新 多實(shí)例 ( MIG )虛擬化和 GPU 分區(qū)功能,這對(duì)云服務(wù)提供商( csp )尤其有利。當(dāng)配置為 MIG 操作時(shí), A100 允許 CSP 提高其 GPU 服務(wù)器的利用率,在不增加額外成本的情況下,可提供最多 7 倍的 GPU 實(shí)例。強(qiáng)大的故障隔離使他們能夠安全可靠地劃分單個(gè) A100 GPU 。
A100 增加了一個(gè)強(qiáng)大的新的第三代張量核心,在增加了對(duì) DL 和 HPC 數(shù)據(jù)類型的全面支持的同時(shí),增加了一個(gè)新的稀疏特性,使吞吐量進(jìn)一步翻倍。
A100 中新的 TensorFloat-32 ( TF32 ) Tensor 核心操作為在 DL 框架和 HPC 中加速 FP32 輸入/輸出數(shù)據(jù)提供了一條簡(jiǎn)單的途徑,比 V100 FP32 FMA 操作快 10 倍,在稀疏的情況下運(yùn)行速度快 20 倍。對(duì)于 FP16 / FP32 混合精度 DL , A100 張量核心提供了 V100 的 2 。 5 倍性能,隨著稀疏性增加到 5 倍。
新的 Bfloat16 ( BF16 )/ FP32 混合精度張量核心操作以與 FP16 / FP32 混合精度相同的速率運(yùn)行。 INT8 、 INT4 的張量核心加速和二進(jìn)制舍入支持 DL 推斷, A100 稀疏 INT8 運(yùn)行速度比 V100 INT8 快 20 倍。對(duì)于 HPC , A100 張量核心包括新的符合 IEEE 標(biāo)準(zhǔn)的 FP64 處理,其 FP64 性能是 V100 的 2 。 5 倍。
NVIDIA A100 GPU 的設(shè)計(jì)不僅可以加速大型復(fù)雜的工作負(fù)載,還可以有效地加速許多較小的工作負(fù)載。 A100 支持構(gòu)建能夠滿足不可預(yù)測(cè)的工作負(fù)載需求的數(shù)據(jù)中心,同時(shí)提供細(xì)粒度的工作負(fù)載調(diào)配、更高的 GPU 利用率和改進(jìn)的 TCO 。
NVIDIA A100 GPU 為 AI 訓(xùn)練和推理工作負(fù)載提供了超過 V100 的超常加速,如圖 2 所示。類似地,圖 3 顯示了跨不同 HPC 應(yīng)用程序的顯著性能改進(jìn)。
主要特點(diǎn)
基于 TSMC 7nm N7 制造工藝制造的 NVIDIA 安培架構(gòu)的 GA100 GPU 為 A100 供電,包括 542 億個(gè)晶體管,芯片尺寸為 826 平方毫米。
A100 GPU 多處理器流媒體
基于 NVIDIA 安培架構(gòu)的 A100 張量核心 GPU 中的新型流式多處理器( SM )顯著提高了性能,建立在 Volta 和 Turing SM 架構(gòu)中引入的功能的基礎(chǔ)上,并添加了許多新功能。
A100 第三代張量核心增強(qiáng)了操作數(shù)共享,提高了效率,并添加了強(qiáng)大的新數(shù)據(jù)類型,包括:
加速 FP32 數(shù)據(jù)處理的 TF32 張量核心指令
符合 IEEE 標(biāo)準(zhǔn)的 FP64 高性能計(jì)算機(jī)張量核心指令
BF16 張量核心指令的吞吐量與 FP16 相同
表 1 。 A100 張量芯 GPU 性能規(guī)格
1 ) 峰值速率基于 GPU 的升壓時(shí)鐘。
2 ) 使用新稀疏特性的有效 TFLOPS / TOPS 。
在 A100 張量核中新的稀疏性支持可以利用 DL 網(wǎng)絡(luò)中的細(xì)粒度結(jié)構(gòu)稀疏性,將張量核操作的吞吐量提高一倍。稀疏特性將在本文后面的 A100 引入細(xì)粒結(jié)構(gòu)稀疏性 部分詳細(xì)描述。
A100 中更大更快的一級(jí)緩存和共享內(nèi)存單元提供了 1 。 5 倍于 V100 的總?cè)萘浚?192 KB 對(duì) 128 KB / SM ),從而為許多 HPC 和 AI 工作負(fù)載提供額外的加速。
其他一些新的 SM 特性提高了效率和可編程性,并降低了軟件復(fù)雜性。
40 GB HBM2 和 40 MB 二級(jí)緩存
為了滿足其巨大的計(jì)算吞吐量, NVIDIA A100 GPU 擁有 40GB 的高速 HBM2 內(nèi)存,內(nèi)存帶寬為 1555GB / s ,與 Tesla V100 相比增加了 73% 。此外, A100 GPU 擁有更多的片上內(nèi)存,包括 40 MB 的二級(jí)緩存( L2 ),比 V100 大近 7 倍,以最大限度地提高計(jì)算性能。 A100 二級(jí)緩存采用新的分區(qū)交叉結(jié)構(gòu),提供了 V100 2 。 3 倍的二級(jí)緩存讀取帶寬。
為了優(yōu)化容量利用率, NVIDIA 安培體系結(jié)構(gòu)提供二級(jí)緩存駐留控制,以管理要保留或從緩存中移出的數(shù)據(jù)。 A100 還增加了計(jì)算數(shù)據(jù)壓縮功能,使 DRAM 帶寬和 L2 帶寬提高了 4 倍, L2 容量提高了 2 倍。
多實(shí)例
新的多實(shí)例 GPU ( MIG )特性允許 A100 張量核心 GPU 安全地劃分為多達(dá)七個(gè)獨(dú)立的 GPU 實(shí)例,用于 CUDA 應(yīng)用程序,為多個(gè)用戶提供單獨(dú)的 GPU 資源,以加速其應(yīng)用程序。
在 MIG 中,每個(gè)實(shí)例的處理器在整個(gè)內(nèi)存系統(tǒng)中都有獨(dú)立的獨(dú)立路徑。片上交叉條端口、二級(jí)緩存庫、內(nèi)存控制器和 DRAM 地址總線都被唯一地分配給單個(gè)實(shí)例。這確保了單個(gè)用戶的工作負(fù)載可以在具有相同的二級(jí)緩存分配和 DRAM 帶寬的情況下以可預(yù)測(cè)的吞吐量和延遲運(yùn)行,即使其他任務(wù)正在沖擊自己的緩存或使其 DRAM 接口飽和。
MIG 提高了 GPU 的硬件利用率,同時(shí)在不同的客戶機(jī)(如 vm 、容器和進(jìn)程)之間提供了定義的 QoS 和隔離。 MIG 對(duì)于具有多租戶用例的 csp 尤其有利。它確保了一個(gè)客戶機(jī)不會(huì)影響其他客戶機(jī)的工作或日程安排,此外還為客戶機(jī)提供了增強(qiáng)的安全性和 GPU 利用率保證。
第三代 NVIDIA NVLink
在 A100 GPUs 中實(shí)現(xiàn)的第三代 NVIDIA 高速 NVLink 互連和新的 NVIDIA NVSwitch 顯著提高了多 GPU 的可擴(kuò)展性、性能和可靠性。由于每個(gè) GPU 和交換機(jī)有更多的鏈路,新的 NVLink 提供了更高的 GPU -GPU 通信帶寬,并改進(jìn)了錯(cuò)誤檢測(cè)和恢復(fù)功能。
第三代 NVLink 每對(duì)信號(hào)的數(shù)據(jù)傳輸速率為 50Gbit / s ,幾乎是 V100 中 25 。 78Gbits / sec 的兩倍。單個(gè) A100 NVLink 在每個(gè)方向提供 25 GB /秒的帶寬,類似于 V100 ,但與 V100 相比,每個(gè)鏈路只使用一半的信號(hào)對(duì)。 A100 的鏈路總數(shù)增加到 12 個(gè),而 V100 的總帶寬為 6 個(gè),總帶寬為 600 GB /秒,而 V100 的總帶寬為 300 GB /秒。
支持 NVIDIA Magnum IO 和 Mellanox 互連解決方案
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)和存儲(chǔ),以最大限度地提高多節(jié)點(diǎn)加速系統(tǒng)的 I / O 性能。它與 CUDA -X 庫接口,以加速從人工智能、數(shù)據(jù)分析到可視化等各種工作負(fù)載的 I / O 。
帶 SR-IOV 的 PCIe Gen 4
A100 GPU 支持 PCI Express Gen 4 ( PCIe Gen 4 ),通過為 x16 連接提供 31 。 5 GB /秒而不是 15 。 75 GB /秒,將 PCIe 3 。 0 / 3 。 1 的帶寬提高了一倍。更快的速度尤其有利于 A100 GPUs 連接到支持 PCIe 4 。 0 的 CPU 并支持快速網(wǎng)絡(luò)接口,如 200 Gbit / s InfiniBand 。
A100 還支持單根輸入/輸出虛擬化( SR-IOV ),允許為多個(gè)進(jìn)程或虛擬機(jī)共享和虛擬化單個(gè) PCIe 連接。
改進(jìn)了錯(cuò)誤和故障檢測(cè)、隔離和控制
通過檢測(cè)、包含并經(jīng)常糾正錯(cuò)誤和錯(cuò)誤,而不是強(qiáng)制 GPU 重置來最大限度地提高 GPU 的正常運(yùn)行時(shí)間和可用性是至關(guān)重要的。在大型多 GPU 集群和單 GPU 多租戶環(huán)境(如 MIG 配置)中尤其如此。 A100 張量核心 GPU 包括新技術(shù),用于改進(jìn)錯(cuò)誤/故障屬性、隔離和控制,如本文后面深入的架構(gòu)部分所述。
異步復(fù)制
A100 GPU 包含了一個(gè)新的異步復(fù)制指令,該指令將數(shù)據(jù)直接從全局內(nèi)存加載到 SM 共享內(nèi)存中,從而消除了使用中間寄存器文件( RF )的需要。異步復(fù)制減少了寄存器文件帶寬,更有效地使用內(nèi)存帶寬,并減少了功耗。顧名思義,異步復(fù)制可以在 SM 執(zhí)行其他計(jì)算時(shí)在后臺(tái)完成。
異步屏障
A100 GPU 在共享內(nèi)存中提供了硬件加速屏障。這些屏障可用 CUDA 11 ,形式如下ISO C ++符合障礙物。異步屏障將屏障到達(dá)和等待操作分開可用于將全局內(nèi)存中的異步副本與 SM 中的計(jì)算重疊到共享內(nèi)存中。它們可用于使用 CUDA 線程實(shí)現(xiàn)生產(chǎn)者 – 消費(fèi)者模型。屏障還提供機(jī)制來同步不同粒度的 CUDA 線程,而不僅僅是扭曲或塊級(jí)別。
任務(wù)圖加速
CUDA 任務(wù)圖為向 GPU 提交工作提供了一個(gè)更有效的模型。任務(wù)圖由一系列操作組成,如內(nèi)存復(fù)制和內(nèi)核啟動(dòng),這些操作通過依賴關(guān)系連接起來。任務(wù)圖支持定義一次并重復(fù)運(yùn)行的執(zhí)行流。預(yù)定義的任務(wù)圖允許在單個(gè)操作中啟動(dòng)任意數(shù)量的內(nèi)核,極大地提高了應(yīng)用程序的效率和性能。 A100 添加了新的硬件功能,使任務(wù)圖中網(wǎng)格之間的路徑明顯更快。
A100 GPU 硬件架構(gòu)
NVIDIA GA100 GPU 由多個(gè) GPU 處理簇( GPC )、紋理處理簇( TPC )、流式多處理器( SMs )和 HBM2 內(nèi)存控制器組成。
GA100 GPU 的全面實(shí)施包括以下單元:
8 個(gè) GPC , 8 個(gè) TPC / GPC , 2 個(gè) SMs / TPC , 16 個(gè) SMs / GPC ,每滿 128 個(gè) SMsGPU
64 個(gè) FP32 CUDA 核/ SM ,每滿 GPU 個(gè) 8192 個(gè) FP32 CUDA 個(gè)核
4 個(gè)第三代張量核心/ SM ,每滿 512 個(gè)第三代張量核心 GPU
6 個(gè) HBM2 堆棧, 12 個(gè) 512 位內(nèi)存控制器
GA100 GPU 的 A100 張量核 GPU 實(shí)現(xiàn) 包括以下單元:
7 個(gè) GPC , 7 或 8 個(gè) TPC / GPC , 2 個(gè) SMs / TPC ,最多 16 個(gè) SMs / GPC , 108 個(gè) SMs
64 個(gè) FP32 CUDA 芯/ SM ,每個(gè) GPU 個(gè) 6912 個(gè) FP32 CUDA 個(gè)芯
4 個(gè)第三代張量核心/ SM ,每個(gè) GPU 432 個(gè)第三代張量核心
5 個(gè) HBM2 堆棧, 10 個(gè) 512 位內(nèi)存控制器
A100 SM 建筑
新的 A100 SM 顯著提高了性能,建立在 Volta 和 Turing SM 架構(gòu)中引入的特性之上,并添加了許多新功能和增強(qiáng)功能。
A100 SM 圖如圖 5 所示。 Volta 和 Turing 每個(gè) SM 有 8 個(gè)張量核心,每個(gè)張量核心每個(gè)時(shí)鐘執(zhí)行 64 個(gè) FP16 / FP32 混合精度融合乘法加法( FMA )操作。 A100 SM 包括新的第三代張量核心,每個(gè)時(shí)鐘執(zhí)行 256 個(gè) FP16 / FP32 FMA 操作。 A100 每平方米有四個(gè)張量核心,總共每時(shí)鐘提供 1024 個(gè)密集的 FP16 / FP32 FMA 操作,與 Volta 和 Turing 相比,每平方米的計(jì)算馬力增加了 2 倍。
這里將簡(jiǎn)要介紹 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ù)提供了一條簡(jiǎn)單的途徑,比 V100 FP32 FMA 操作快 10 倍,在 sparity 中運(yùn)行速度快 20 倍。
FP16 / FP32 混合精密張量核心操作為 DL 提供了前所未有的處理能力,比 V100 張量核心操作運(yùn)行速度快 2 。 5 倍,且稀疏性增加到 5x 。
BF16 / FP32 混合精度張量核心運(yùn)算的運(yùn)行速度與 FP16 / FP32 混合精度相同。
FP64 張量核心操作為 HPC 提供了前所未有的雙精度處理能力,運(yùn)行速度比 V100 FP64 DFMA 操作快 2 。 5 倍。
具有稀疏性的 INT8 張量核心操作為 DL 推理提供了前所未有的處理能力,運(yùn)行速度比 V100 INT8 操作快 20 倍。
192 KB 的共享內(nèi)存和一級(jí)數(shù)據(jù)緩存,比 V100 SM 大 1 。 5 倍。
新的異步復(fù)制指令將數(shù)據(jù)直接從全局內(nèi)存加載到共享內(nèi)存中,可以選擇繞過一級(jí)緩存,并且不需要使用中間寄存器文件( RF )。
基于共享內(nèi)存的新型屏障單元(異步的barriers )用于新的異步復(fù)制指令。
L2 緩存管理和駐留控制的新說明。
CUDA 合作組支持的新的扭曲級(jí)縮減指令。
許多可編程性改進(jìn)以降低軟件復(fù)雜性。
圖 6 比較了 V100 和 A100 FP16 張量核心操作,還比較了 V100 FP32 、 FP64 和 INT8 標(biāo)準(zhǔn)操作與各自的 A100 TF32 、 FP64 和 INT8 張量核心操作。吞吐量是根據(jù) GPU 聚合的,其中 A100 對(duì) FP16 、 TF32 和 INT8 使用稀疏張量核心操作。左上角的圖表顯示了兩個(gè) V100 FP16 張量核心,因?yàn)?V100 SM 每個(gè) SM 分區(qū)有兩個(gè)張量核心,而 A100 SM 則有兩個(gè)張量核心。
圖 6 。 A100 張量核心操作與 V100 張量核心操作以及不同數(shù)據(jù)類型的標(biāo)準(zhǔn)操作進(jìn)行比較。
圖 7 。 TensorFloat-32 ( TF32 )提供 FP32 的范圍,精度為 FP16 (左)。支持 tfa032 格式的自動(dòng)輸入和輸出。
今天,人工智能訓(xùn)練的默認(rèn)數(shù)學(xué)是 FP32 ,沒有張量核心加速度。 NVIDIA Ampere 架構(gòu)引入了對(duì) TF32 的新支持,使 AI 訓(xùn)練能夠在默認(rèn)情況下使用張量核心,而不需要用戶的努力。非張量運(yùn)算繼續(xù)使用 FP32 數(shù)據(jù)路徑,而 TF32 張量核心讀取 FP32 數(shù)據(jù)并使用與 FP32 相同的范圍,內(nèi)部精度降低,然后生成標(biāo)準(zhǔn) IEEE FP32 輸出。 TF32 包括一個(gè) 8 位指數(shù)(與 FP32 相同)、 10 位尾數(shù)(精度與 FP16 相同)和 1 個(gè)符號(hào)位。
與 Volta 一樣,自動(dòng)混合精度( AMP )允許您使用混合精度與 FP16 進(jìn)行 AI 訓(xùn)練,只需幾行代碼更改。使用 AMP , A100 的張量核心性能比 TF32 快 2 倍。
綜上所述,用于 DL 培訓(xùn)的 NVIDIA 安培架構(gòu)數(shù)學(xué)的用戶選擇如下:
默認(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)用的性能需求正在迅速增長(zhǎng)。許多科學(xué)和研究學(xué)科的應(yīng)用都依賴于雙精度( FP64 )計(jì)算。
為了滿足 HPC 計(jì)算快速增長(zhǎng)的計(jì)算需求, A100 GPU 支持張量運(yùn)算,加速符合 IEEE 標(biāo)準(zhǔn)的 FP64 計(jì)算,其 FP64 性能是 NVIDIA Tesla V100GPU 的 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í)鐘),這是 Tesla V100 吞吐量的兩倍。 A100 Tensor Core GPU 具有 108 條短信息,可提供 19 。 5 TFLOPS 的峰值 FP64 吞吐量,是 Tesla V100 的 2 。 5 倍。
隨著對(duì)這些新格式的支持, A100 張量核心可以用于加速 HPC 工作負(fù)載、迭代求解器和各種新的 AI 算法。
表 2 。 A100 加速超過 V100 ( TC =張量核心, GPUs 在各自的時(shí)鐘速度)。
1 ) 使用新稀疏性特征的有效 TOPS / TFLOPS
A100 引入細(xì)粒結(jié)構(gòu)稀疏性
在 A100 GPU 中, NVIDIA 引入了細(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í),只有一部分權(quán)值在確定學(xué)習(xí)輸出時(shí)有意義。剩下的重量不再需要了。
細(xì)粒度的結(jié)構(gòu)化稀疏性對(duì)允許的稀疏模式施加了一個(gè)約束,使硬件能夠更有效地對(duì)輸入操作數(shù)進(jìn)行必要的對(duì)齊。由于深度學(xué)習(xí)網(wǎng)絡(luò)能夠在基于訓(xùn)練反饋的訓(xùn)練過程中自適應(yīng)權(quán)值, NVIDIA 工程師發(fā)現(xiàn),一般來說,結(jié)構(gòu)約束不會(huì)影響訓(xùn)練網(wǎng)絡(luò)的推理精度。這使得可以推斷稀疏加速度。
對(duì)于訓(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),它可以被有效地壓縮,并減少近 2 倍的內(nèi)存存儲(chǔ)和帶寬。
圖 9 。 A100 細(xì)粒度結(jié)構(gòu)化稀疏度使用 4 取 2 的非零模式對(duì)訓(xùn)練的權(quán)重進(jìn)行修剪,然后使用一個(gè)簡(jiǎn)單而通用的方法對(duì)非零權(quán)重進(jìn)行微調(diào)。權(quán)重被壓縮,數(shù)據(jù)占用空間和帶寬減少了 2 倍, A100 稀疏張量核心通過跳過零將數(shù)學(xué)吞吐量翻倍。
NVIDIA 已經(jīng)開發(fā)出一種簡(jiǎn)單而通用的方法來分離深層神經(jīng)網(wǎng)絡(luò)進(jìn)行推理使用這種 2 : 4 結(jié)構(gòu)稀疏模式。 首先使用密集權(quán)值訓(xùn)練網(wǎng)絡(luò),然后應(yīng)用細(xì)粒度結(jié)構(gòu)剪枝,最后通過附加的訓(xùn)練步驟對(duì)剩余的非零權(quán)值進(jìn)行微調(diào)。這種方法在基于視覺、目標(biāo)檢測(cè)、分割、自然語言建模和翻譯等數(shù)十個(gè)網(wǎng)絡(luò)的評(píng)估的基礎(chǔ)上,幾乎沒有損失推理精度。
A100 Tensor Core GPU 包含新的稀疏張量核心指令,這些指令跳過對(duì)零值的條目的計(jì)算,從而使張量核心計(jì)算吞吐量翻倍。圖 9 顯示了張量核心如何使用壓縮元數(shù)據(jù)(非零索引)將壓縮后的權(quán)重與適當(dāng)選擇的用于輸入到張量核心點(diǎn)積計(jì)算的激活匹配。
組合一級(jí)數(shù)據(jù)緩存和共享內(nèi)存
NVIDIA Tesla V100 首次引入, NVIDIA 結(jié)合了一級(jí)數(shù)據(jù)緩存和共享內(nèi)存子系統(tǒng)架構(gòu),顯著提高了性能,同時(shí)還簡(jiǎn)化了編程,減少了達(dá)到或接近峰值應(yīng)用程序性能所需的調(diào)整。將數(shù)據(jù)緩存和共享內(nèi)存功能組合到單個(gè)內(nèi)存塊中,可以為兩種類型的內(nèi)存訪問提供最佳的總體性能。
一級(jí)數(shù)據(jù)緩存和共享內(nèi)存的組合容量在 A100 中為 192 KB / SM ,而在 V100 中為 128 KB / SM 。
同時(shí)執(zhí)行 FP32 和 INT32 操作
與 V100 和圖靈 GPUs 類似, A100 SM 還包括獨(dú)立的 FP32 和 INT32 核,允許在全吞吐量的情況下同時(shí)執(zhí)行 FP32 和 INT32 操作,同時(shí)也增加指令發(fā)出吞吐量。
許多應(yīng)用程序都有內(nèi)部循環(huán),執(zhí)行指針?biāo)阈g(shù)(整數(shù)內(nèi)存地址計(jì)算)與浮點(diǎn)計(jì)算相結(jié)合,這有利于 FP32 和 INT32 指令的同時(shí)執(zhí)行。下一次迭代( intfp32 )可以同時(shí)更新當(dāng)前循環(huán)中的每一個(gè)循環(huán)的指針。
A100 HBM2 DRAM 子系統(tǒng)
隨著 HPC 、 AI 和 analytics 數(shù)據(jù)集的不斷增長(zhǎng),以及尋找解決方案的問題變得越來越復(fù)雜,需要更多的 GPU 內(nèi)存容量和更高的內(nèi)存帶寬。
Tesla P100 是世界上第一個(gè)支持高帶寬 HBM2 內(nèi)存技術(shù)的 GPU 體系結(jié)構(gòu),而 Tesla V100 提供了更快、更高效、更高容量的 HBM2 實(shí)現(xiàn)。 A100 再次提高了 HBM2 性能和容量的標(biāo)準(zhǔn)。
HBM2 內(nèi)存由位于與 GPU 相同的物理包上的內(nèi)存堆棧組成,與傳統(tǒng)的 GDDR5 / 6 內(nèi)存設(shè)計(jì)相比,提供了大量的功耗和面積節(jié)省,允許在系統(tǒng)中安裝更多的 GPUs 。有關(guān) HBM2 技術(shù)基本細(xì)節(jié)的更多信息,請(qǐng)參閱 NVIDIA Tesla P100 :有史以來最先進(jìn)的數(shù)據(jù)中心加速器 白皮書。
A100 GPU 在其 SXM4 風(fēng)格的電路板上包括 40 GB 的快速 HBM2 DRAM 內(nèi)存。內(nèi)存被組織成五個(gè)活動(dòng)的 HBM2 堆棧,每個(gè)堆棧有八個(gè)內(nèi)存片。 A100 HBM2 的數(shù)據(jù)速率為 1215 MHz ( DDR ),可提供 1555 GB /秒的內(nèi)存帶寬,比 V100 內(nèi)存帶寬高出 1 。 7 倍多。
ECC 內(nèi)存彈性
A100 HBM2 存儲(chǔ)子系統(tǒng)支持單糾錯(cuò)雙錯(cuò)誤檢測(cè)( SECDED )糾錯(cuò)碼( ECC )來保護(hù)數(shù)據(jù)。 ECC 為對(duì)數(shù)據(jù)損壞敏感的計(jì)算應(yīng)用程序提供了更高的可靠性。在大型集群計(jì)算環(huán)境中,這一點(diǎn)尤為重要, GPUs 處理大型數(shù)據(jù)集或長(zhǎng)時(shí)間運(yùn)行應(yīng)用程序。 A100 中的其他密鑰存儲(chǔ)結(jié)構(gòu)也受 SECDED ECC 的保護(hù),包括二級(jí)緩存和一級(jí)緩存以及所有 SMs 中的寄存器文件。
A100 二級(jí)緩存
A100 GPU 包含 40 MB 二級(jí)緩存,比 V100 L2 大 6 。 7 倍緩存。那個(gè)二級(jí)緩存分為兩個(gè)分區(qū),以實(shí)現(xiàn)更高的帶寬和更低的延遲內(nèi)存訪問。每個(gè)二級(jí)分區(qū)在直接連接到分區(qū)的 gpc 中為 SMs 訪問內(nèi)存而本地化和緩存數(shù)據(jù)。這種結(jié)構(gòu)使 A100 比 V100 的 L2 帶寬增加了 2 。 3 倍。硬件緩存一致性在整個(gè) GPU 中維護(hù) CUDA 編程模型,應(yīng)用程序自動(dòng)利用新的二級(jí)緩存的帶寬和延遲優(yōu)勢(shì)。
二級(jí)緩存是 gpc 和 SMs 的共享資源,位于 gpc 之外。 A100 L2 緩存大小的大幅增加顯著提高了許多 HPC 和 AI 工作負(fù)載的性能,因?yàn)楝F(xiàn)在可以以比讀取和寫入 HBM2 內(nèi)存更高的速度緩存和重復(fù)訪問更多的數(shù)據(jù)集和模型。一些受 DRAM 帶寬限制的工作負(fù)載將受益于更大的二級(jí)緩存,例如使用小批量的深度神經(jīng)網(wǎng)絡(luò)。
為了優(yōu)化容量利用率, NVIDIA 安培體系結(jié)構(gòu)提供二級(jí)緩存駐留控制,以管理要保留或從緩存中移出的數(shù)據(jù)。您可以留出一部分二級(jí)緩存用于持久數(shù)據(jù)訪問。
例如,對(duì)于 DL 推斷工作負(fù)載,可以在 L2 中持久地緩存 ping-pong 緩沖區(qū),以加快數(shù)據(jù)訪問速度,同時(shí)避免對(duì) DRAM 的寫回。對(duì)于生產(chǎn)者 – 消費(fèi)者鏈,如在 DL 培訓(xùn)中發(fā)現(xiàn)的那些,二級(jí)緩存控件可以跨讀寫數(shù)據(jù)依賴關(guān)系優(yōu)化緩存。在 LSTM 網(wǎng)絡(luò)中,遞歸權(quán)值可以優(yōu)先緩存并在 L2 中重用。
NVIDIA Ampere 架構(gòu)增加了計(jì)算數(shù)據(jù)壓縮,以加速非結(jié)構(gòu)化稀疏性和其他可壓縮數(shù)據(jù)模式。二級(jí)壓縮使 DRAM 讀/寫帶寬提高了 4 倍,二級(jí)讀取帶寬提高了 4 倍,二級(jí)容量提高了 2 倍。
表 3 。 NVIDIA 數(shù)據(jù)中心 GPUs 比較。
1 ) 峰值速率基于 GPU 的升壓時(shí)鐘。
2 ) A100 SM 中的四個(gè)張量核心的原始 FMA 計(jì)算能力是 GV100 SM 中八個(gè)張量核心的 2 倍。
3 ) 使用新的稀疏特性的有效頂部/ TFLOPS 。
4 ) TOPS =基于 IMAD 的整數(shù)數(shù)學(xué)
注: 因?yàn)?A100 張量核心 GPU 設(shè)計(jì)安裝在高性能服務(wù)器和數(shù)據(jù)中心機(jī)架上,為 AI 和 HPC 計(jì)算工作負(fù)載供電,因此它不包括用于光線跟蹤加速的顯示連接器、 NVIDIA RT 核心或 NVENC 編碼器。
計(jì)算能力
支持新的計(jì)算能力 GPU 。表 4 比較了 NVIDIA GPU 體系結(jié)構(gòu)的不同計(jì)算能力的參數(shù)。
表 4 。計(jì)算能力: GP100 vs 。 GV100 vs 。 GA100 。
MIG 體系結(jié)構(gòu)
盡管許多數(shù)據(jù)中心的工作負(fù)載在規(guī)模和復(fù)雜性上都在不斷擴(kuò)展,但有些加速任務(wù)的要求并不高,例如早期開發(fā)或在低批量規(guī)模下對(duì)簡(jiǎn)單模型進(jìn)行推理。數(shù)據(jù)中心管理者的目標(biāo)是保持高資源利用率,因此理想的數(shù)據(jù)中心加速器不只是變大,它還可以有效地加速許多較小的工作負(fù)載。
新的 MIG 特性可以將每個(gè) A100 劃分為多達(dá) 7 個(gè) GPU 實(shí)例以實(shí)現(xiàn)最佳利用率,有效地?cái)U(kuò)展了對(duì)每個(gè)用戶和應(yīng)用程序的訪問。
圖 10 顯示了 Volta MPS 如何允許多個(gè)應(yīng)用程序同時(shí)在不同的 GPU 執(zhí)行資源( SMs )上執(zhí)行。但是,由于內(nèi)存系統(tǒng)資源是在所有應(yīng)用程序之間共享的,因此,如果一個(gè)應(yīng)用程序?qū)?DRAM 帶寬有很高的要求或其請(qǐng)求在二級(jí)緩存中超額訂閱,則可能會(huì)干擾其他應(yīng)用程序。
圖 11 中顯示的 A100 [……]訴訟。 新 MIG 功能可以將單個(gè) GPU 劃分為多個(gè)名為 GPU 的 GPU 分區(qū)每個(gè)實(shí)例的 SMs 在整個(gè)內(nèi)存系統(tǒng)中都有獨(dú)立的獨(dú)立路徑——片上交叉條端口、二級(jí)緩存庫、內(nèi)存控制器和 DRAM 地址總線都是唯一分配給單個(gè)實(shí)例的。這確保了單個(gè)用戶的工作負(fù)載可以在具有相同的二級(jí)緩存分配和 DRAM 帶寬的情況下以可預(yù)測(cè)的吞吐量和延遲運(yùn)行,即使其他任務(wù)正在沖擊自己的緩存或使其 DRAM 接口飽和。
利用這種能力,MIG 可以對(duì)可用的 GPU 計(jì)算資源進(jìn)行分區(qū),以提供定義的服務(wù)質(zhì)量(QoS ),為不同的客戶機(jī)(如 VM 、容器、進(jìn)程等)提供故障隔離。它允許多個(gè) GPU 實(shí)例在單個(gè)物理 A100 GPU 上并行運(yùn)行。 MIG 還保持 CUDA 編程模型不變,以最小化編程工作量。
CSP 可以使用 MIG 來提高其 GPU 服務(wù)器的利用率,在不增加成本的情況下提供最多 7 倍的 GPU 實(shí)例。 MIG 支持 csp 所需的必要的 QoS 和隔離保證,以確保一個(gè)客戶端( VM 、容器、進(jìn)程)不會(huì)影響來自另一個(gè)客戶端的工作或調(diào)度。
CSP 通常根據(jù)客戶使用模式對(duì)其硬件進(jìn)行分區(qū)。只有當(dāng)硬件資源在運(yùn)行時(shí)提供一致的帶寬、適當(dāng)?shù)母綦x和良好的性能時(shí),有效的分區(qū)才有效。
使用基于 NVIDIA Ampere 架構(gòu)的 GPU ,您可以看到和調(diào)度新的虛擬 GPU 實(shí)例上的作業(yè),就像它們是物理的 GPUs 。 MIG 與 Linux 操作系統(tǒng)及其管理程序一起工作。用戶可以使用諸如 Docker Engine 之類的運(yùn)行時(shí)來運(yùn)行帶有 MIG 的容器,并且很快就會(huì)支持使用 Kubernetes 的容器編排。
圖 10 。今天的 CSP 多用戶節(jié)點(diǎn)( A100 之前)。加速的 GPU 實(shí)例只能在完全物理 GPU 粒度下用于不同組織的用戶,即使用戶應(yīng)用程序不需要完整的 GPU 。
錯(cuò)誤和故障檢測(cè)、隔離和控制
通過檢測(cè)、包含并經(jīng)常糾正錯(cuò)誤和錯(cuò)誤,而不是強(qiáng)制 GPU 重置來提高 GPU 的正常運(yùn)行時(shí)間和可用性是至關(guān)重要的。這在大型多 GPU 集群和單 GPU 多租戶環(huán)境(如 MIG 配置)中尤其重要。
NVIDIA 安培架構(gòu) A100 GPU 包括改進(jìn)錯(cuò)誤/故障屬性的新技術(shù)(將導(dǎo)致錯(cuò)誤的應(yīng)用程序歸為屬性)、隔離(隔離故障應(yīng)用程序,使其不會(huì)影響運(yùn)行在同一 GPU 或 GPU 集群中的其他應(yīng)用程序),和控制(確保一個(gè)應(yīng)用程序中的錯(cuò)誤不會(huì)泄漏并影響其他應(yīng)用程序)。這些故障處理技術(shù)對(duì)于 MIG 環(huán)境尤其重要,以確保共享單個(gè) GPU 的客戶端之間的適當(dāng)隔離和安全性。
NVLink connected GPUs 現(xiàn)在具有更強(qiáng)大的錯(cuò)誤檢測(cè)和恢復(fù)功能。遠(yuǎn)程 GPU 的頁面錯(cuò)誤通過 NVLink 發(fā)送回源 GPU 。遠(yuǎn)程訪問故障通信對(duì)于大型 GPU 計(jì)算集群來說是一個(gè)關(guān)鍵的彈性特性,可以幫助確保一個(gè)進(jìn)程或虛擬機(jī)中的故障不會(huì)導(dǎo)致其他進(jìn)程或虛擬機(jī)停機(jī)。
A100 GPU 還包括其他幾個(gè)新的和改進(jìn)的硬件功能,可以提高應(yīng)用程序的性能。有關(guān)更多信息,請(qǐng)參閱即將發(fā)布的 NVIDIA A100 張量核 GPU 體系結(jié)構(gòu) 白皮書。
CUDA 11NVIDIA 安培結(jié)構(gòu) GPUs 的進(jìn)步
數(shù)以千計(jì)的 GPU 加速應(yīng)用程序構(gòu)建在 NVIDIA CUDA 并行計(jì)算平臺(tái)上。 CUDA 的靈活性和可編程性使其成為研究和部署新的 DL 和并行計(jì)算算法的首選平臺(tái)。
NVIDIA 安培架構(gòu) GPUs 旨在提高 GPU 的可編程性和性能,同時(shí)降低軟件復(fù)雜性。 NVIDIA 安培架構(gòu) GPUs 和 CUDA 編程模型的進(jìn)步加快了程序執(zhí)行,并降低了許多操作的延遲和開銷。
新的 CUDA 11 特性為第三代張量核心、稀疏性、 CUDA 圖、多實(shí)例 GPUs 、二級(jí)緩存駐留控制以及 NVIDIA 安培架構(gòu)的其他一些新功能提供編程和 API 支持。
有關(guān) CUDA 新特性的更多信息,請(qǐng)參閱即將發(fā)布的 NVIDIA A100 張量核 GPU 體系結(jié)構(gòu) 白皮書。有關(guān)新 DGX A100 系統(tǒng)的詳細(xì)信息,請(qǐng)參見 用 NVIDIA DGX A100 定義人工智能創(chuàng)新 。有關(guān)開發(fā)人員專區(qū)的更多信息,請(qǐng)參閱 NVIDIA 開發(fā)者 ,有關(guān) CUDA 的更多信息,請(qǐng)參閱新的 CUDA 編程指南 。
結(jié)論
NVIDIA 的任務(wù)是加速我們這個(gè)時(shí)代的達(dá)芬奇和愛因斯坦的工作??茖W(xué)家、研究人員和工程師致力于利用高性能計(jì)算( HPC )和人工智能解決世界上最重要的科學(xué)、工業(yè)和大數(shù)據(jù)挑戰(zhàn)。
NVIDIA A100 Tensor Core GPU 在我們的加速數(shù)據(jù)中心平臺(tái)上實(shí)現(xiàn)了下一個(gè)巨大的飛躍,在各個(gè)規(guī)模上都提供了無與倫比的加速度,使這些創(chuàng)新者能夠在有生之年完成一生的工作。 A100 支持許多應(yīng)用領(lǐng)域,包括 HPC 、基因組學(xué)、 5G 、渲染、深度學(xué)習(xí)、數(shù)據(jù)分析、數(shù)據(jù)科學(xué)和機(jī)器人技術(shù)。
今天,推進(jìn)最重要的 HPC 和 AI 應(yīng)用程序個(gè)性化醫(yī)療、會(huì)話式人工智能和深度推薦系統(tǒng)需要研究人員大刀闊斧。 A100 為 NVIDIA 數(shù)據(jù)中心平臺(tái)提供動(dòng)力,該平臺(tái)包括 MellanoxHDR InfiniBand 、 NVSwitch 、 NVIDIA HGX A100 和用于擴(kuò)展的 Magnum IO SDK 。這個(gè)集成的技術(shù)團(tuán)隊(duì)有效地?cái)U(kuò)展到數(shù)萬個(gè) GPUs ,以前所未有的速度訓(xùn)練最復(fù)雜的人工智能網(wǎng)絡(luò)。
A100 GPU 的新 MIG 功能可以將每個(gè) A100 劃分為多達(dá)七個(gè) GPU 加速器以實(shí)現(xiàn)最佳利用率,有效提高了 GPU 資源利用率和 GPU 訪問更多用戶和 GPU 加速應(yīng)用程序。憑借 A100 的多功能性,基礎(chǔ)設(shè)施經(jīng)理可以最大限度地利用其數(shù)據(jù)中心中的每個(gè) GPU ,以滿足不同規(guī)模的性能需求,從最小的作業(yè)到最大的多節(jié)點(diǎn)工作負(fù)載。
關(guān)于作者
Ronny Krashinsky 設(shè)計(jì) NVIDIA GPU 已有 10 年。他開始了他的 NVIDIA 研究生涯,后來加入了流式多處理器團(tuán)隊(duì),設(shè)計(jì)了 voltasm 。羅尼是 100 個(gè)深度學(xué)習(xí)特性的首席架構(gòu)師,他現(xiàn)在管理著 NVIDIA 的深度學(xué)習(xí)架構(gòu)路線圖。
Olivier Giroux 已經(jīng)完成了十個(gè) GPU 和六個(gè)由 NVIDIA 發(fā)布的 SM 體系結(jié)構(gòu)。他是一位杰出的建筑師,專注于 GPU 程序語義,并主持 ISOC C ++子群的并發(fā)和并行。
Stephen Jones 是 CUDA 的架構(gòu)師之一,他致力于定義語言、平臺(tái)和運(yùn)行它的硬件,以滿足從高性能計(jì)算到人工智能的并行編程需求。在任職之前,他領(lǐng)導(dǎo)著 SpaceX 公司的模擬與分析小組,致力于火箭發(fā)動(dòng)機(jī)的大規(guī)模模擬。他曾在其他不同的行業(yè)工作過,包括網(wǎng)絡(luò)、 CAD / CAM 和科學(xué)計(jì)算。自 2008 年以來,他一直是 CUDA 的一員。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
4990瀏覽量
103119 -
gpu
+關(guān)注
關(guān)注
28文章
4742瀏覽量
128973 -
人工智能
+關(guān)注
關(guān)注
1791文章
47314瀏覽量
238652
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論