在 MLPerf HPC v1 . 0 中, NVIDIA 供電系統(tǒng)贏得了五項(xiàng)新的行業(yè)指標(biāo)中的四項(xiàng),這些指標(biāo)主要關(guān)注 HPC 中的人工智能性能。作為一個(gè)全行業(yè)人工智能聯(lián)盟, MLPerf HPC 評估了一套性能基準(zhǔn),涵蓋了廣泛使用的人工智能工作負(fù)載。
在這一輪中,與 MLPerf 0 . 7 的強(qiáng)大擴(kuò)展性結(jié)果相比, NVIDIA 在 CosmoFlow 上的性能提高了 5 倍,在 DeepCAM 上的性能提高了 7 倍。這一強(qiáng)大的表現(xiàn)得益于成熟的 NVIDIA AI 平臺(tái)和全套軟件。
提供豐富多樣的庫、 SDK 、工具、編譯器和探查器,很難知道在正確的情況下何時(shí)何地應(yīng)用正確的資產(chǎn)。這篇文章詳細(xì)介紹了各種場景的工具、技術(shù)和好處,并概述了 CosmoFlow 和 DeepCAM 基準(zhǔn)測試所取得的成果。
我們已經(jīng)為 MLPerf Training v1.0 和 MLPerf Inference v1.1 發(fā)布了類似的指南,推薦用于其他面向基準(zhǔn)測試的案例。
調(diào)整計(jì)劃
我們使用包括 NVIDIA DALI 在內(nèi)的工具對代碼進(jìn)行了優(yōu)化,以加速數(shù)據(jù)處理,以及 CUDA Graphs 減少了小批量延遲,從而有效地?cái)U(kuò)展到 1024 個(gè)或更多 GPU 。我們還應(yīng)用了 NVIDIA SHARP ,通過將一些操作卸載到網(wǎng)絡(luò)交換機(jī)來加速通信。
我們提交的文件中使用的軟件可從 MLPerf repository 獲得。我們定期向 NGC catalog 添加新工具和新版本,這是我們針對預(yù)訓(xùn)練 AI 模型、行業(yè)應(yīng)用程序框架、 GPU 應(yīng)用程序和其他軟件資源的軟件中心。
主要性能優(yōu)化
在本節(jié)中,我們將深入討論為 MLPerf HPC 1 . 0 實(shí)現(xiàn)的選定優(yōu)化。
使用 NVIDIA DALI 庫進(jìn)行數(shù)據(jù)預(yù)處理
在每次迭代之前,從磁盤獲取數(shù)據(jù)并進(jìn)行預(yù)處理。我們從默認(rèn)的數(shù)據(jù)加載器移到了 NVIDIA DALI library 。這為 GPU 提供了優(yōu)化的數(shù)據(jù)加載和預(yù)處理功能。
DALI 庫使用 CPU 和 GPU 的組合,而不是在 CPU 上執(zhí)行數(shù)據(jù)加載和預(yù)處理并將結(jié)果移動(dòng)到 GPU 。這將為即將到來的迭代帶來更有效的數(shù)據(jù)預(yù)處理。優(yōu)化后, CosmoFlow 和 DeepCAM 的速度都顯著加快。 DeepCAM 實(shí)現(xiàn)了超過 50% 的端到端性能提升。
此外, DALI 還為即將到來的迭代提供異步數(shù)據(jù)加載,以消除關(guān)鍵路徑的 I / O 開銷。啟用此模式后,我們看到 DeepCAM 額外增加了 70% 。
將通道應(yīng)用于最后的 NHWC 布局
默認(rèn)情況下, DeepCAM 基準(zhǔn)使用 NCHW 布局作為激活張量。我們使用 PyTorch 的通道 last ( NHWC 布局)支持來避免額外的轉(zhuǎn)置內(nèi)核。 cuDNN 中的大多數(shù)卷積核都針對 NHWC 布局進(jìn)行了優(yōu)化。
因此,在框架中使用 NCHW 布局需要額外的轉(zhuǎn)置內(nèi)核,以便從 NCHW 轉(zhuǎn)換到 NHWC ,從而實(shí)現(xiàn)高效的卷積運(yùn)算。在框架中使用 NHWC 布局避免了這些冗余拷貝,并在 DeepCAM 模型上實(shí)現(xiàn)了約 10% 的性能提升。 NHWC support 在 PyTorch 框架中以 beta 模式提供。
CUDA 圖
CUDA 圖形允許啟動(dòng)由一系列內(nèi)核組成的單個(gè)圖形,而不是單獨(dú)啟動(dòng)從 CPU 到 GPU 的每個(gè)內(nèi)核。此功能最大限度地減少了 CPU 在每次迭代中的參與,通過最大限度地減少延遲(尤其是在強(qiáng)擴(kuò)展場景中)顯著提高了性能。
MXNet 先前添加了 CUDA 圖形支持,而 CUDA Graphs support 最近也添加到了 PyTorch 。 PyTorch 中的 CUDA 圖形支持使 DeepCAM 在強(qiáng)擴(kuò)展場景中的端到端性能提高了約 15% ,這對延遲和抖動(dòng)最為敏感。
使用 MPI 進(jìn)行高效的數(shù)據(jù)暫存
在伸縮性較弱的情況下,分布式文件系統(tǒng)的性能無法滿足 GPU 的需求。為了增加總存儲(chǔ)帶寬,我們將數(shù)據(jù)集放入 DeepCAM 的節(jié)點(diǎn)本地 NVME 內(nèi)存中。
由于各個(gè)實(shí)例都很小,我們可以靜態(tài)地分割數(shù)據(jù),因此每個(gè)節(jié)點(diǎn)只需要準(zhǔn)備完整數(shù)據(jù)集的一小部分。該解決方案如圖 1 所示。這里,我們用 M 表示實(shí)例數(shù),用 N 表示每個(gè)實(shí)例的秩數(shù)。
圖 1 :將列組聚集到碎片中。
請注意,跨實(shí)例,具有相同列組 ID 的每個(gè)列組使用相同的數(shù)據(jù)碎片。這意味著在本機(jī)上,每個(gè)數(shù)據(jù)碎片被讀取 M 次。為了減輕文件系統(tǒng)的壓力,我們創(chuàng)建了與實(shí)例正交的數(shù)據(jù)子硬盤,如圖 2 所示。
圖 2 :亞硬化的演示。
這樣,每個(gè)文件從全局文件系統(tǒng)只讀一次。最后,每個(gè)實(shí)例都需要接收所有數(shù)據(jù)。為此,我們創(chuàng)建了與實(shí)例內(nèi)通訊器正交的新 MPI 通訊器,也就是說,我們將具有相同列組 id 的所有實(shí)例列組組合到相同的實(shí)例間通訊器中。然后,我們可以使用 MPI allgather 將各個(gè)子硬盤組合成原始碎片的 M 個(gè)副本。
圖 3 :子硬塊的分布。
我們不按順序執(zhí)行這些步驟,而是使用批處理來創(chuàng)建一個(gè)管道,該管道與子硬盤的數(shù)據(jù)讀取和分發(fā)重疊。為了提高讀寫性能,我們進(jìn)一步實(shí)現(xiàn)了一個(gè)小型輔助工具,它使用 O _ DIRECT 來提高 I / O 帶寬。
優(yōu)化使 DeepCAM 基準(zhǔn)測試的端到端加速比超過 2 倍。這在提交文件 repository 中提供。
損失函數(shù)的混合編程
使用命令式編程可以靈活地定義和運(yùn)行模型,這樣定義一個(gè)機(jī)器學(xué)習(xí)模型就像寫一個(gè)python程序。與此相對的是符號式編程,它會(huì)先定義計(jì)算過程,然后再執(zhí)行。這種編程方法允許執(zhí)行引擎進(jìn)行各種優(yōu)化,但丟失了命令式方法的靈活性。
MXNet 框架采用了合并這兩種方法的混合式編程。命令式定義的計(jì)算可以被編譯成符號式,并在可能時(shí)進(jìn)行優(yōu)化。CosmoFlow 將模型混合式編程進(jìn)行了擴(kuò)展,把損失函數(shù)也包含進(jìn)來。
圖 4 :損失函數(shù)的模型混合式。
這允許將損耗計(jì)算中的元素操作與 CosmoFlow 模型的縮放激活輸出進(jìn)行融合,從而減少總體迭代延遲。優(yōu)化使 CosmoFlow 的端到端性能提高了近 5% 。
節(jié)間均采用夏普處理,降低了集體成本
SHARP 允許將集合操作從 CPU 卸載到節(jié)間網(wǎng)絡(luò)結(jié)構(gòu)中的交換機(jī)。這有效地將 allreduce 操作的 InfiniBand 網(wǎng)絡(luò)的節(jié)間帶寬增加了一倍。這種優(yōu)化可使 MLPerf HPC 基準(zhǔn)測試的性能提高高達(dá) 5% ,特別是在強(qiáng)擴(kuò)展場景中。
繼續(xù)使用 MLPerf HPC
科學(xué)家們正在加速取得突破,部分原因是人工智能和高性能計(jì)算相結(jié)合,能夠比傳統(tǒng)方法更快、更準(zhǔn)確地提供洞察力。
MLPerf HPC v1 . 0 反映了超級計(jì)算行業(yè)對客觀、同行評審的方法的需求,以測量和比較與 HPC 相關(guān)用例的 AI 培訓(xùn)性能。在這一輪中, NVIDIA 計(jì)算平臺(tái)通過損壞所有三個(gè)性能基準(zhǔn)來證明清晰的領(lǐng)導(dǎo),同時(shí)也證明了兩個(gè)吞吐量測量的最高效率。
關(guān)于作者
Sukru Burc Eryilmaz 是 NVIDIA 計(jì)算機(jī)體系結(jié)構(gòu)的高級架構(gòu)師,他致力于在單節(jié)點(diǎn)和超級計(jì)算機(jī)規(guī)模上改進(jìn)神經(jīng)網(wǎng)絡(luò)訓(xùn)練的端到端性能。他從斯坦福大學(xué)獲得博士學(xué)位,并從比爾肯特大學(xué)獲得學(xué)士學(xué)位。
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5304瀏覽量
106323 -
計(jì)算機(jī)
+關(guān)注
關(guān)注
19文章
7658瀏覽量
90734 -
MLPerf
+關(guān)注
關(guān)注
0文章
36瀏覽量
820
發(fā)布評論請先 登錄
深控?cái)?shù)據(jù)平臺(tái)V1.0發(fā)布!以IoT之力重塑工廠“數(shù)據(jù)脈絡(luò)”
CR6520B應(yīng)用指導(dǎo)書 V1.0
中軟國際推出昇騰金融AI解決方案和一體機(jī)v1.0
主機(jī)處理器板DSI MIPI輸出是否與DLPC3430的DSI輸入匹配?就是v1.0和V1.2是否兼容?
WH-M溫濕度模塊安裝使用說明書 V1.0
EG3112芯片數(shù)據(jù)手冊 V1.0
HPC工作負(fù)載管理的關(guān)鍵要素
HPC云計(jì)算的技術(shù)架構(gòu)
云計(jì)算HPC軟件關(guān)鍵技術(shù)
APView500PV電能質(zhì)量在線監(jiān)測裝置安裝使用說明書V1.0
ESP32-CAM Wi-Fi+BT SoC模組 V1.0
浪潮信息AI存儲(chǔ)性能測試的領(lǐng)先之道

浪潮信息AS13000G7榮獲MLPerf? AI存儲(chǔ)基準(zhǔn)測試五項(xiàng)性能全球第一

評論