最新 NVIDIA HPC SDK 更新擴展了可移植性,現(xiàn)在支持基于 Arm 的 AWS Graviton 3 processor 。在本文中,您將學(xué)習如何使用 NVIDIA 編譯器啟用可縮放矢量擴展( Scalable Vector Extension , SVE )自動矢量化,以最大限度地提高運行在 AWS Graviton3 CPU 上的 HPC 應(yīng)用程序的性能。
HPC SDK NVIDIA 軟件包
NVIDIA HPC SDK 包括經(jīng)過驗證的編譯器、庫和軟件工具,對于最大限度地提高開發(fā)人員生產(chǎn)力和為 CPU 、 CPU 或云構(gòu)建 HPC 應(yīng)用 至關(guān)重要。
NVIDIA HPC compilers 為 NVIDIA GPU 和多核 Arm 、 OpenPOWER 或 x86-64 CPU 啟用跨平臺 C 、 C ++和 Fortran 編程。對于使用 OpenMP 、 OpenACC 和 CUDA 以 C 、 C ++或 Fortran 編寫的 HPC 建模和仿真應(yīng)用程序,這些都是理想的選擇。
例如,與 GCC 12.1 相比,使用 NVIDIA HPC 編譯器編譯時, AWS Graviton 3 的 SPEC CPU ? 2017 基準分數(shù)預(yù)計增加 17% 。

編譯器還可以與優(yōu)化的 NVIDIA math libraries 、通信庫以及性能調(diào)優(yōu)和調(diào)試工具完全互操作。這些加速的數(shù)學(xué)庫最大限度地提高了普通 HPC 算法的性能,而優(yōu)化的通信庫支持基于標準的可擴展系統(tǒng)編程。
集成的性能分析和調(diào)試工具簡化了 HPC 應(yīng)用程序的移植和優(yōu)化,而容器化工具可以方便地在本地或云中部署。
臂和 AWS 重力 3
AWS Graviton3 于 2022 年 5 月推出,是 AWS 基于 Arm 的 CPU 。 Arm 體系結(jié)構(gòu)具有傳統(tǒng)的能效和對高內(nèi)存帶寬的支持,使其成為云和數(shù)據(jù)中心計算的理想選擇。 Amazon 報導(dǎo) :
Amazon EC2 C7g 實例由最新一代 AWS Graviton3 處理器提供支持,為計算密集型工作負載提供了 Amazon EC2 中最佳的性價比。 C7g 實例非常適合 HPC 、批處理、電子設(shè)計自動化( EDA )、游戲、視頻編碼、科學(xué)建模、分布式分析、基于 CPU 的機器學(xué)習( ML )推理和廣告服務(wù)。與基于第六代 AWS Graviton2 的 C6g 實例相比,它們的性能提高了 25% 。
與 AWS Graviton2 相比, ANSYS 將 AWS Graviton3 的性能提高 35% 作為基準 。一級方程式模擬速度也提高了 40% 。自推出 Arm Neoverse 產(chǎn)品線以來,基于 Arm 的 CPU 一直在提供重大創(chuàng)新和性能增強,當時 Neoverses N1 核心 超過績效預(yù)期30% 。
與 Arm 支持新計算技術(shù)的歷史保持一致, AWS Graviton3 的特點是 DDR5 內(nèi)存和 SVE 到 Arm 體系結(jié)構(gòu)。
Amazon EC2 C7g 實例是云中第一個使用 DDR5 內(nèi)存的實例,與 DDR4 內(nèi)存相比,它提供了 50% 的內(nèi)存帶寬,從而實現(xiàn)了對內(nèi)存中數(shù)據(jù)的高速訪問。充分利用所有內(nèi)存帶寬的最佳方法是使用最新的矢量化技術(shù): Arm SVE 。
SVE 架構(gòu)
除了是第一個提供 DDR5 的云托管 CPU 之外, AWS Graviton3 也是第一個在云中使用 SVE 的。
SVE 首次引入富士通 A64FX CPU ,為 RIKEN Fugaku 超級計算機供電。當 Fugaku 推出時,它打破了所有當代 HPC CPU 基準,并在兩年內(nèi)自信地名列 TOP500 超級計算機榜首。
SVE 和高帶寬內(nèi)存是 A64FX 的主要設(shè)計特點,是 HPC 的理想之選,而 AWS Graviton3 處理器中也有這兩個特點。
SVE 是 Arm 體系結(jié)構(gòu)的下一代 SIMD 擴展。它可以使用 CPU 實現(xiàn)中的一系列可能值實現(xiàn)靈活的矢量長度。矢量長度可以從最小 128 位到最大 2048 位不等,增量為 128 位。
例如,富士通 A64FX 以 512 位實現(xiàn) SVE ,而 AWS Graviton3 以 256 位實現(xiàn)。與其他 SIMD 體系結(jié)構(gòu)不同,盡管硬件矢量位寬度不同,但相同的匯編代碼在兩個 CPU 上運行。這稱為矢量長度無關(guān)( VLA )編程。
VLA 代碼具有高度的可移植性,可以使編譯器生成更好的匯編代碼。但是,如果編譯器知道目標 CPU 的硬件矢量位寬度,它可以針對特定的體系結(jié)構(gòu)進行進一步優(yōu)化。這是矢量長度特定( VLS )編程。
SVE 對 VLA 和 VLS 使用相同的匯編語言。唯一的區(qū)別是,編譯器在生成代碼時可以自由地對數(shù)據(jù)布局、循環(huán)跳閘計數(shù)和其他相關(guān)特性進行附加斷言。這會產(chǎn)生高度優(yōu)化的、特定于目標的代碼,從而充分利用 CPU 。
SVE 還引入了一系列功能強大的高級功能,非常適合 HPC 和 ML 應(yīng)用:
收集加載和分散存儲指令允許對結(jié)構(gòu)數(shù)組和其他非連續(xù)數(shù)據(jù)進行矢量化操作。
推測性矢量化支持對包含控制流的字符串操作函數(shù)和循環(huán)進行 SIMD 加速。
水平和序列化矢量操作有助于數(shù)據(jù)縮減,并有助于優(yōu)化處理大型數(shù)據(jù)集的循環(huán)。
SVE 不是 NEON 指令集的擴展或替代,后者也可在 AWS Gravition3 中使用。 SVE 經(jīng)過重新設(shè)計,以提高 HPC 和 ML 的數(shù)據(jù)并行性。
使用 NVIDIA HPC 編譯器最大限度地提高 Graviton3 性能
編譯器自動矢量化是利用 SVE 的最簡單方法之一, NVIDIA HPC 編譯器在 22.7 版本中添加了對 SVE 自動矢量化的支持。
為了最大限度地提高性能,編譯器執(zhí)行分析以確定要生成的 SIMD 指令。 SVE 自動矢量化使用目標特定信息,根據(jù) CPU 核的矢量位寬度生成高度優(yōu)化的矢量長度特定( VLS )代碼。
要啟用 SVE 自動矢量化,請為目標 CPU 指定適當?shù)?-tp 體系結(jié)構(gòu)標志: -tp = neoverse-v1 。如果不指定 -tp 選項,則假定應(yīng)用程序?qū)⒃诰幾g它的同一系統(tǒng)上執(zhí)行。
在 Graviton3 上使用 NVIDIA HPC 編譯器編譯的應(yīng)用程序會自動充分利用 CPU 的 256 位 SVE SIMD 單元。 Graviton3 還向后兼容 -tp = neoverse-n1 選項,但僅在其 128 位 NEON SIMD 單元上運行矢量代碼。
NVIDIA HPC SDK 入門
NVIDIA HPC SDK 提供了一個全面且經(jīng)驗證的軟件堆棧。它使 HPC 開發(fā)人員能夠在 NVIDIA 平臺和 AWS Graviton3 等高性能系統(tǒng)上創(chuàng)建和優(yōu)化應(yīng)用程序性能。
通過提供廣泛的編程模型、庫和開發(fā)工具,可以針對專用硬件高效開發(fā)應(yīng)用程序,從而在 NVIDIA GPU 和支持 SVE 的處理器(如 AWS Graviton3 )等系統(tǒng)中實現(xiàn)最先進的性能。
關(guān)于作者
John Linford 博士是 NVIDIA 的首席技術(shù)經(jīng)理,專注于開發(fā) CPU 軟件生態(tài)系統(tǒng)。 John 此前曾擔任 HPC 工程部主任。 John 擁有近二十年的一線 HPC 應(yīng)用、系統(tǒng)和優(yōu)化經(jīng)驗,尤其喜歡與新興技術(shù)和極端規(guī)模的系統(tǒng)合作。約翰的總部設(shè)在德克薩斯州奧斯汀。
Scott Manley 是一名編譯器優(yōu)化工程師,也是 NVIDIA HPC SDK 的自動矢量化主管。 Scott 的整個職業(yè)生涯都致力于矢量化和 HPC 編譯器。他曾在 Cray 編譯環(huán)境( CCE )工作,并在都柏林三一學(xué)院獲得博士學(xué)位,主要致力于優(yōu)化 SIMD ISAs 的使用。
Graham Lopez 在 NVIDIA 領(lǐng)導(dǎo)高性能計算編譯器的產(chǎn)品管理。此前,他曾與應(yīng)用程序合作,以在當前和未來的領(lǐng)先級計算設(shè)施上大規(guī)模運行。除了直接參與 HPC 應(yīng)用程序之外, Graham 還發(fā)表了編程模型、計算科學(xué)、異構(gòu)系統(tǒng)的應(yīng)用程序加速和基準測試以及低級通信 API 等領(lǐng)域的研究成果。格雷厄姆過去三年一直是 ISO C ++標準委員會的成員。
審核編輯:郭婷
-
NVIDIA
+關(guān)注
關(guān)注
14文章
5594瀏覽量
109743 -
編譯器
+關(guān)注
關(guān)注
1文章
1672瀏覽量
51614
發(fā)布評論請先 登錄
NVIDIA 收購開源工作負載管理提供商 SchedMD
NVIDIA和AWS擴展全棧合作伙伴關(guān)系
利用NVIDIA Cosmos開放世界基礎(chǔ)模型加速物理AI開發(fā)
NVIDIA宣布開源Aerial軟件
亞馬遜云科技在中國區(qū)域推出Amazon Graviton4實例 以自研芯片驅(qū)動企業(yè)算力升級
NVIDIA Dynamo新增對亞馬遜云科技服務(wù)的支持
NVIDIA RTX AI加速FLUX.1 Kontext現(xiàn)已開放下載
NVIDIA全棧加速代理式AI應(yīng)用落地
全球各大品牌利用NVIDIA AI技術(shù)提升運營效率
NVIDIA Isaac Sim與NVIDIA Isaac Lab的更新
NVIDIA加速的Apache Spark助力企業(yè)節(jié)省大量成本
Cadence 利用 NVIDIA Grace Blackwell 加速AI驅(qū)動的工程設(shè)計和科學(xué)應(yīng)用
英偉達GTC2025亮點:NVIDIA Blackwell加速計算機輔助工程軟件,實現(xiàn)實時數(shù)字孿生性能數(shù)量級提升
英偉達GTC2025亮點:Oracle與NVIDIA合作助力企業(yè)加速代理式AI推理
Oracle 與 NVIDIA 合作助力企業(yè)加速代理式 AI 推理
利用AWS Graviton3上的SVE加速NVIDIA HPC軟件
評論