如今,人工智能驅(qū)動(dòng)的應(yīng)用程序正在實(shí)現(xiàn)更豐富的體驗(yàn),這是由更大和更復(fù)雜的人工智能模型以及許多模型在管道中的應(yīng)用所推動(dòng)的。為了滿足注入人工智能的應(yīng)用程序日益增長(zhǎng)的需求,人工智能平臺(tái)不僅必須提供高性能,而且必須具有足夠的通用性,以便在各種人工智能模型中提供這種性能。為了最大限度地提高基礎(chǔ)設(shè)施利用率并優(yōu)化 CapEx ,在同一基礎(chǔ)設(shè)施上運(yùn)行整個(gè) AI 工作流的能力至關(guān)重要:從數(shù)據(jù)準(zhǔn)備和模型培訓(xùn)到部署推理。
MLPerf 基準(zhǔn) 已成為行業(yè)標(biāo)準(zhǔn)、同行評(píng)議的深度學(xué)習(xí)績(jī)效衡量標(biāo)準(zhǔn),涵蓋人工智能培訓(xùn)、人工智能推理和 高性能計(jì)算 ( HPC )。 MLPerf 推斷 2.1 是 MLPerf 推理基準(zhǔn)套件的最新迭代,涵蓋了廣泛的常見 AI 用例,包括推薦、自然語言處理、語音識(shí)別、醫(yī)學(xué)成像、圖像分類和對(duì)象檢測(cè)。
在這一輪中, NVIDIA 在最新 NVIDIA H100 Tensor Core GPU 的基礎(chǔ)上首次提交了 MLPerf ,這是基于 NVIDIA Hopper 架構(gòu) 的突破。
H100 在所有數(shù)據(jù)中心測(cè)試中都創(chuàng)造了新的加速器記錄,與 NVIDIA A100 Tensor Core GPU 相比,其推理性能提高了 4.5 倍。
A100 在數(shù)據(jù)中心和邊緣推斷場(chǎng)景的全套 MLPerf 推斷 2.1 測(cè)試中繼續(xù)表現(xiàn)出優(yōu)異的性能。
NVIDIA Jetson AGX Orin 是為邊緣 AI 和機(jī)器人應(yīng)用而構(gòu)建的,在上一輪 MLPerf 推斷中首次亮相后,每瓦特性能也提高了 50% ,并運(yùn)行了所有邊緣工作負(fù)載和場(chǎng)景。
實(shí)現(xiàn)這些性能結(jié)果需要深入的軟件和硬件協(xié)同優(yōu)化。在本文中,我們將討論結(jié)果,然后深入探討一些關(guān)鍵的軟件優(yōu)化。
NVIDIA H100 Tensor 核心技術(shù)
在每個(gè)流式多處理器( SM )的基礎(chǔ)上, H100 張量核在使用 相同的數(shù)據(jù)類型 時(shí)為 A100 SM 的時(shí)鐘提供兩倍的矩陣乘法累加( MMA )吞吐量時(shí)鐘,在比較 A100 SM 上的 FP16 和 H100 SM 上 FP8 時(shí)提供四倍的吞吐量時(shí)鐘。為了利用 H100 的幾個(gè)新功能,并利用這些速度極快的 Tensor Core ,必須開發(fā)新的內(nèi)核。
H100 Tensor Cores 處理數(shù)據(jù)的速度如此之快,以至于很難同時(shí)向其提供足夠的輸入數(shù)據(jù)和對(duì)其輸出數(shù)據(jù)進(jìn)行后期處理。內(nèi)核必須創(chuàng)建一個(gè)高效的管道,以便數(shù)據(jù)加載、 Tensor Core 處理、后處理和存儲(chǔ)都能同時(shí)高效地進(jìn)行。
新的 H100 異步事務(wù)壁壘有助于提高這些管道的效率。異步屏障允許生產(chǎn)者線程在發(fā)出數(shù)據(jù)可用性信號(hào)后繼續(xù)運(yùn)行。在數(shù)據(jù)加載線程的情況下,這大大提高了內(nèi)核隱藏內(nèi)存系統(tǒng)延遲的能力,并確保 Tensor Core 可以使用穩(wěn)定的輸入數(shù)據(jù)流。異步事務(wù)屏障還為使用者線程提供了一種有效的機(jī)制來等待資源可用性,以便它們不會(huì)在自旋循環(huán)中浪費(fèi) SM 資源。
張量記憶加速器( TMA )進(jìn)一步增壓這些內(nèi)核。 TMA 旨在以本機(jī)方式集成到異步管道中,并提供多維張量從全局內(nèi)存到 SM 共享內(nèi)存的異步傳輸。
Tensor Core 速度如此之快,以至于地址計(jì)算等操作可能成為性能瓶頸; TMA 卸載了這項(xiàng)工作,以便內(nèi)核能夠盡快集中精力運(yùn)行數(shù)學(xué)和后處理。
最后,新內(nèi)核使用 H100 線程塊集群來利用 GPU 處理集群( GPC )的位置。每個(gè)線程塊集群中的線程塊協(xié)作以更高效地加載數(shù)據(jù),并為 Tensor Cores 提供更高的輸入帶寬。
NVIDIA H100 Tensor Core GPU 性能結(jié)果
從數(shù)據(jù)中心類別開始, NVIDIA H100 Tensor Core GPU 在服務(wù)器和脫機(jī)場(chǎng)景中的每個(gè)工作負(fù)載上都提供了最高的每加速器性能,與 A100 Tensor-Core GPU 相比,在脫機(jī)場(chǎng)景中性能提高了 4.5 倍,在服務(wù)器場(chǎng)景中性能提升了 3.9 倍。
圖 1.在 MLPerf Inference 2.1 數(shù)據(jù)中心類別中, H100 的性能比 A100 高 4.5 倍
由于全棧改進(jìn),與上一輪相比, NVIDIA Jetson AGX Orin 實(shí)現(xiàn)了能源效率的大幅提高,效率提高了 50% 。
圖 2.與之前提交的相比, NVIDIA Jetson AGX Orin MLPerf 推斷 2.1 的效率提高
下面更詳細(xì)地看一下使這些結(jié)果成為可能的軟件優(yōu)化。
使用 FP8 的高性能 BERT 推理
圖 3.使用 E4M3 對(duì) BERT 的 FP8 推斷為正向傳球提供了更高的穩(wěn)定性
NVIDIA Hopper 架構(gòu) 集成了新的第四代 Tensor Core ,支持兩種新的 FP8 數(shù)據(jù)類型: E4M3 和 E5M2 。與 16 位浮點(diǎn)型相比,這些新的數(shù)據(jù)類型將 Tensor Core 吞吐量增加了 2 倍,并將內(nèi)存需求減少了 2 倍。
E4M3 提供了一個(gè)額外的尾數(shù)位,這使得計(jì)算流程中的第一部份,前向傳播的穩(wěn)定性增加。 E5M2 的額外指數(shù)位更有助于防止反向傳播期間的溢出/下溢。對(duì)于我們的 BERT FP8 提交,我們使用了 E4M3 。
我們對(duì) BERT 等 NLP 模型的實(shí)驗(yàn)表明,當(dāng)將模型從較高精度( FP32 )量化為較低精度(如 FP8 或 INT8 )時(shí),用 FP8 觀察到的精度下降低于 INT8 。
盡管我們可以使用 Quantization Aware Training( QAT )來恢復(fù) INT8 的一些模型精度,但 Post Training Quantization( PTQ )下 INT8 的精度仍然是一個(gè)挑戰(zhàn)。這就是 FP8 的優(yōu)勢(shì)所在:它可以在 PTQ 下提供 FP32 模型 99.9% 的精度,而無需運(yùn)行 QAT 所需的額外成本和努力。因此, FP8 可用于先前需要 FP16 的 MLPerf 99.9% 高精度類別。從本質(zhì)上講, FP8 為這個(gè)工作負(fù)載提供了 INT8 的性能和 FP16 的精度。
在 NVIDIA BERT 提交編碼器中的所有全連接和矩陣層都使用 FP8 精度。這些層使用 cuBLASLt 在 H100 Tensor Core上執(zhí)行 FP8 GEMM 。
擴(kuò)展了關(guān)鍵 BERT 優(yōu)化以支持 FP8 ,包括以下內(nèi)容:
Removing padding: BERT 的輸入具有可變序列長(zhǎng)度,并填充到最大序列長(zhǎng)度。我們?nèi)コ畛湟员苊庠谔畛渖侠速M(fèi)計(jì)算,并在最終輸出時(shí)重新構(gòu)造填充,以便與輸入形狀相同。
Fused multi-head attention :這是四種操作的融合:轉(zhuǎn)置 Q / K 、 Q * K 、 softmax 和 QK * V 來計(jì)算注意力。融合這些計(jì)算可提高內(nèi)存效率,跳過填充以防止無用計(jì)算。融合式多頭注意力提供大約 2 倍的端到端加速。
Activation fusion: 我們將矩陣與更多計(jì)算操作進(jìn)行合并 ,包括 bias 和激活函數(shù)( GeLU )。這種融合還通過刪除額外的內(nèi)存?zhèn)鬏攣韼椭岣邇?nèi)存效率。
用于對(duì)象檢測(cè)的 RetinaNet
在 MLPerf 推斷 2.1 中,添加了一個(gè)名為 RetinaNet 的新的單階段對(duì)象檢測(cè)模型。這取代了 MLPerf Inference 2.0 的 ssd-resnet34 和 ssd-mobilenet 工作負(fù)載。這一更新的模型體系結(jié)構(gòu)及其新的推理數(shù)據(jù)集為提供快速、準(zhǔn)確和高效的推理帶來了新的挑戰(zhàn)。
NVIDIA 提交了所有平臺(tái)的 RetinaNet 結(jié)果,證明了我們軟件支持的廣度。
RetinaNet 是使用 Open Images 數(shù)據(jù)集 進(jìn)行訓(xùn)練和推斷的,與之前使用的 COCO 數(shù)據(jù)集相比,它包含的對(duì)象類別和對(duì)象符號(hào)數(shù)量級(jí)更多。對(duì)于 RetinaNet ,為訓(xùn)練和推理任務(wù)選擇了 264 個(gè)獨(dú)特的類。這比 ssd-resnet34 使用的 81 個(gè)類要多得多。
圖 4.用于 RetinaNet 訓(xùn)練和推斷的 OpenImage 數(shù)據(jù)集包括非常詳細(xì)的對(duì)象注釋
盡管 RetinaNet 也是一種單次目標(biāo)檢測(cè)模型,但與 ssd-resnet34 相比,它有幾個(gè)關(guān)鍵區(qū)別:
RetinaNet 使用 Feature Pyramid Network ( FPN )作為前饋 ResNeXt 架構(gòu)之上的主干。 ResNeXt 在其計(jì)算塊中使用群卷積,并且與 ResNet34 具有不同的數(shù)學(xué)特性。
對(duì)于每個(gè)圖像, 120087 個(gè)框和 264 個(gè)唯一類分?jǐn)?shù)被輸入到非最大抑制( NMS )層,并選擇前 1000 個(gè)分?jǐn)?shù)框作為輸出。在 ssd-resnet34 中,這些數(shù)字減少了 25 倍: 15130 個(gè)盒子,每個(gè)盒子 81 個(gè)等級(jí), 200 個(gè) topK 。
圖 5.MLPerf Inf 2.1 RetinaNet 模型架構(gòu)
NVIDIA 使用 TensorRT 作為 RetinaNet 的后端。 TensorRT 通過自動(dòng)優(yōu)化圖形執(zhí)行和層執(zhí)行,顯著加快了推理吞吐量:
TensorRT 完全支持以 FP32 / INT8 混合精度執(zhí)行模型推斷,與 FP16 和 FP32 精度相比,精度損失最小。
TensorRT 自動(dòng)為所有 16 個(gè) ResNeXt 塊的組卷積選擇優(yōu)化的內(nèi)核。
TensorRT 為卷積層、激活層和(可選)池層提供融合模式,通過合并層權(quán)重和減少操作次數(shù),優(yōu)化內(nèi)存移動(dòng)以加快推理。
對(duì)于后處理 NMS 層, NVIDIA 利用了 EfficientNMS ,這是一個(gè)開源的高性能 CUDA 內(nèi)核,專門用于 NMS 任務(wù),作為 TensorRT 插件提供。
NVIDIA Jetson AGX Orin 優(yōu)化
NVIDIA Jetson AGX Orin 是最新的 NVIDIA 邊緣人工智能和機(jī)器人應(yīng)用平臺(tái)。在這一輪 MLPerf 推斷中, Jetson AGX Orin 在 MLPerf Inference 2.1 邊緣工作負(fù)載的范圍內(nèi)展示了卓越的性能和能效改進(jìn)。改進(jìn)包括 ResNet-50 多流延遲減少 45% ,與上一輪( 2.0 版)相比, BERT 離線吞吐量提高 17% 。在提交的電源中, Orin 在選定基準(zhǔn)上實(shí)現(xiàn)了高達(dá) 52% 的功率降低和 48% 的每瓦性能改進(jìn)。提交的文件使用了 22.08 Jetson CUDA-X AI Developer Preview 軟件,其中包括優(yōu)化的 NVIDIA Jetson Linux ( L4T )映像、 TensorRT 8.5.0 、 CUDA 11.4.14 和 cuDNN 8.5.0 ,使客戶能夠輕松地從這些改進(jìn)中受益。 RetinaNet 通過此軟件堆棧在 Jetson AGX Orin 上得到完全支持并具有性能。這證明了 NVIDIA 平臺(tái)和軟件支持開箱即用的高性能 DL 推理的能力。
NVIDIA Orin 性能改進(jìn)
MLPerf Inference v2.1 的顯著改進(jìn)來自于系統(tǒng)映像和 22.08 Jetson CUDA-X AI 開發(fā)者預(yù)覽中 TensorRT 8.5 的總體性能提升。優(yōu)化后的 Jetson L4T 映像為用戶提供了 MaxN 電源模式,從而提高了 GPU 和 DLA 單元的頻率。同時(shí),此圖像可以選擇使用 64K 的放大頁面大小,這樣可以在運(yùn)行某些推斷工作負(fù)載時(shí)減少 TLB 緩存未命中。此外,映像中本機(jī)包含的 3.10.1 DLA 編譯器包含一系列優(yōu)化功能,可將 Orin DLA 上運(yùn)行的工作負(fù)載性能提高 53% 。
TensorRT 8.5 包括兩種新的優(yōu)化,可提高推理性能。第一個(gè)是對(duì) cuDLA 的本機(jī)支持,它消除了在 DLA 節(jié)點(diǎn)和 GPU 節(jié)點(diǎn)之間插入復(fù)制節(jié)點(diǎn)的強(qiáng)制要求。我們觀察到,從 NVMedia 到 cuDLA , DLA 引擎端到端的改進(jìn)約為 1.8% 。第二個(gè)是為小通道*濾波器大小的卷積添加優(yōu)化核,與 beta = 1 剩余連接融合。這將 Orin 中 GPU 的 BERT 性能提高了 17% , ResNet50 性能提高了 5% 。
NVIDIA Orin 能效改進(jìn)
NVIDIA Orin 電源提交文件得益于上述所有性能改進(jìn),并重點(diǎn)關(guān)注進(jìn)一步降低功率。使用 Orin 更新的 L4T 映像,可以通過微調(diào)每個(gè)基準(zhǔn)的 CPU 、 GPU 和 DLA 頻率來降低功耗,以實(shí)現(xiàn)每瓦特的最佳性能。此圖像還支持新的平臺(tái)節(jié)能功能,如調(diào)節(jié)器自動(dòng)斷相和低負(fù)載條件下的低功率狀態(tài)。 Orin 中 USB-C 支持的靈活性被用于通過 USB 通信上的以太網(wǎng)整合所有 I / O 。通過禁用以太網(wǎng)、 WiFi 和 DP 等非推理必需的 I / O 子系統(tǒng),以及使用現(xiàn)成的更高效 GaN 電源適配器,進(jìn)一步降低了系統(tǒng)功耗。
這些平臺(tái)和軟件優(yōu)化將系統(tǒng)功耗降低了 52% ,每瓦特性能比我們之前在 2.0 中提交的文件提高了 48% 。
3D U-Net 性能改進(jìn)
在 MLPerf Inference v2.0 中, 3D U-Net 醫(yī)學(xué)成像工作負(fù)載切換到 KITS19 數(shù)據(jù)集,這將圖像大小增加了 8 倍,并且由于滑動(dòng)窗口推斷,將給定樣本所需的計(jì)算處理量增加了 18 倍。
對(duì)于 MLPerf Inference 2.1 ,我們使用 TensorRT IPluginV2DDynamicExt 插件進(jìn)一步改進(jìn)了第一個(gè)卷積層的性能。
KiTS19 圖像是單通道張量,這對(duì) 3D U-Net 中第一個(gè) 3D 卷積的性能提出了挑戰(zhàn)。在 3D 卷積中,此通道尺寸通常會(huì)影響 GEMM 的 K 尺寸。這一點(diǎn)特別重要,因?yàn)?3D U-Net 的總體性能主要由前兩個(gè)和后兩個(gè) 3D 卷積決定。在 MLPerf Inference v2.0 中,這四個(gè)卷積約占整個(gè)網(wǎng)絡(luò)運(yùn)行時(shí)間的 38% ;第一層占 8% 。一個(gè)非常重要的因素解釋了這一點(diǎn),即需要使用零填充來適應(yīng) NC / 32DHW32 矢量化格式布局,其中張量核心可以得到最有效的利用。
在我們更新的插件中,我們使用 INT8 Linear 格式對(duì)這個(gè)單通道有限的 3D 形狀輸入進(jìn)行高效計(jì)算。這樣做有兩個(gè)好處:
更有效地使用觸發(fā)器 :不執(zhí)行不必要的計(jì)算
PCIe 傳輸 B / W 節(jié)省 :避免在主機(jī)和 GPU 內(nèi)存之間移動(dòng)零填充輸入張量或在將輸入張量發(fā)送到 TensorRT 之前在 GPU 上進(jìn)行零填充的開銷
此優(yōu)化將第一層性能提高了 2.7 倍。此外,切片內(nèi)核不再需要處理零填充,因此其性能也提高了 2 倍。最終, 3D UNet 在 MLPerf Inference 2.1 中的端到端性能提高了 5% 。
打破跨工作負(fù)載的性能記錄
在 MLPerf Inference 2.1 中,首次提交的 NVIDIA H100 為數(shù)據(jù)中心場(chǎng)景中的所有工作負(fù)載創(chuàng)造了新的每加速器性能記錄,性能比 A100 高出 4.5 倍。由于 NVIDIA Hopper 體系結(jié)構(gòu)的許多突破以及利用這些功能的巨大軟件優(yōu)化,這一代性能提升是可能的。
NVIDIA Jetson AGX Orin 僅在一輪中就實(shí)現(xiàn)了高達(dá) 50% 的能效提升,并繼續(xù)為邊緣人工智能和機(jī)器人應(yīng)用提供整體推理性能領(lǐng)先。
最新一輪 MLPerf 推斷展示了 NVIDIA AI 平臺(tái)在全方位 AI 工作負(fù)載和場(chǎng)景中的領(lǐng)先性能和多功能性。憑借 H100 Tensor Core GPU ,我們正在為 NVIDIA AI 平臺(tái)提供最先進(jìn)的型號(hào),并為用戶提供更高級(jí)別的性能和能力,以滿足最苛刻的工作負(fù)載。
關(guān)于作者
Ashraf Eassa 是NVIDIA 加速計(jì)算集團(tuán)內(nèi)部的高級(jí)產(chǎn)品營(yíng)銷經(jīng)理。
Bo Yang Hsueh 是 FasterTransformer 的領(lǐng)導(dǎo)者和主要開發(fā)人員。三年前他參加了 transformer 加速賽。最近,他專注于大型 NLP 模型加速,包括 T5 和 GPT-J 等公共模型。楊波獲得國(guó)立交通大學(xué)計(jì)算機(jī)科學(xué)碩士學(xué)位。
Brian 是 NVIDIA 計(jì)算架構(gòu)小組的首席架構(gòu)師,他最近的工作重點(diǎn)是 GPU 加速的深度學(xué)習(xí)推理。他擁有麻省理工學(xué)院電氣工程和計(jì)算機(jī)科學(xué)學(xué)士和碩士學(xué)位。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5039瀏覽量
103309 -
gpu
+關(guān)注
關(guān)注
28文章
4754瀏覽量
129100 -
人工智能
+關(guān)注
關(guān)注
1792文章
47457瀏覽量
239081
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論