日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

构建可扩展的GPU加速应用程序(NVIDIA HPC)

發(fā)布時(shí)間:2023/11/28 生活经验 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 构建可扩展的GPU加速应用程序(NVIDIA HPC) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

構(gòu)建可擴(kuò)展的GPU加速應(yīng)用程序(NVIDIA HPC)
研究人員、科學(xué)家和開發(fā)人員正在通過加速NVIDIA GPU上的高性能計(jì)算(HPC)應(yīng)用來推進(jìn)科學(xué)發(fā)展,NVIDIA GPU具有處理當(dāng)今最具挑戰(zhàn)性的科學(xué)問題的計(jì)算能力。從計(jì)算科學(xué)到人工智能,GPU加速應(yīng)用正在帶來突破性的科學(xué)發(fā)現(xiàn)。流行的語言如C、C++、FORTRAN和Python正被用來開發(fā)、優(yōu)化和部署這些應(yīng)用程序。
面向HPC的GPU程序設(shè)計(jì)
NVIDIA GPU可以編程得很像CPU。從替換GPU優(yōu)化的數(shù)學(xué)庫開始。使用標(biāo)準(zhǔn)C++并行算法和FORTRAN語言特征添加附加加速度。最后,使用pragma?優(yōu)化語言性能,并最終使用pragma?來優(yōu)化性能。
庫文件
GPU加速庫是CPU庫的一個(gè)簡(jiǎn)單替代品。
多GPU和多節(jié)點(diǎn)感知,NVIDIA GPU加速庫為HPC應(yīng)用程序中最常見的模式提供最佳性能。從各種常用的計(jì)算優(yōu)化庫中選擇。
標(biāo)準(zhǔn)語言
標(biāo)準(zhǔn)C++和FORTRAN中的并行特性可以將例程映射到多核CPU或GPU的核心。
英偉達(dá)C++ 17編譯器在標(biāo)準(zhǔn)模板庫(STL)上增加對(duì)執(zhí)行策略的支持,英偉達(dá)2008編譯器的DO并發(fā)構(gòu)造允許循環(huán)迭代而不依賴于相互依賴。
指令
基于指令的編程模型為GPU、CPU和其設(shè)備上的并行計(jì)算提供了一個(gè)簡(jiǎn)單的入口。
如果標(biāo)準(zhǔn)語言不具備獲得良好性能所需的靈活性或特性,可以使用指令進(jìn)行擴(kuò)充,并保持可移植性以供其編譯器和平臺(tái)使用。
CUDA
CUDA是一個(gè)并行計(jì)算平臺(tái)和編程模型,旨在為GPU加速應(yīng)用程序提供最大的靈活性和性能。
為了最大化性能和靈活性,通過直接在CUDA C/C++或CUDA FORTRAN中編碼來獲得GPU硬件的最大值。

NVIDIA HPC SDK
一套針對(duì)HPC的編譯器、庫和工具
NVIDIA HPC軟件開發(fā)工具包(SDK)包括經(jīng)過驗(yàn)證的編譯器、庫和軟件工具,這些工具對(duì)于最大限度地提高開發(fā)人員的工作效率以及HPC應(yīng)用程序的性能和可移植性至關(guān)重要。

NVIDIA HPC SDK C、C++和FORTRAN編譯器支持HPC建模和仿真應(yīng)用程序的GPU加速,標(biāo)準(zhǔn)C++和FORTRAN、OpenACC?指令和CUDA?。GPU加速數(shù)學(xué)庫最大限度地提高通用HPC算法的性能,優(yōu)化的通信庫支持基于標(biāo)準(zhǔn)的多GPU和可伸縮系統(tǒng)編程。性能分析和調(diào)試工具簡(jiǎn)化了HPC應(yīng)用程序的移植和優(yōu)化,而容器化工具可以方便地在本地或云中部署。通過對(duì)NVIDIA GPU和運(yùn)行Linux的Arm、OpenPOWER或x86-64 cpu的支持,HPC SDK提供了構(gòu)建NVIDIA GPU加速HPC應(yīng)用程序所需的工具。
為什么要使用NVIDIA HPC SDK?
性能
廣泛使用的HPC應(yīng)用程序,包括VASP、Gaussian、ANSYS Fluent、GROMACS和NAMD,使用CUDA、OpenACC和GPU加速數(shù)學(xué)庫為用戶提供突破性的性能。可以使用這些相同的軟件工具來加速應(yīng)用程序,并實(shí)現(xiàn)戲劇性的加速和能源效率使用NVIDIA GPU。
便攜性
為超過99%的當(dāng)今500強(qiáng)系統(tǒng)構(gòu)建和優(yōu)化應(yīng)用程序,包括基于NVIDIA gpu或x86-64、Arm或OpenPOWER cpu的系統(tǒng)。可以使用下拉庫、C++ 17并行算法和OpenACC指令來加速GPU,并確保應(yīng)用程序完全可移植到其編譯器和系統(tǒng)。
生產(chǎn)力
利用單個(gè)集成套件最大限度地提高科學(xué)和工程吞吐量,并最大限度地縮短編碼時(shí)間,該套件允許快速移植、并行化和優(yōu)化GPU加速,包括用于多GPU和可伸縮計(jì)算的行業(yè)標(biāo)準(zhǔn)通信庫,以及用于分析的分析和調(diào)試工具。
支持喜愛的編程語言
C++ 17并行算法
C++ 17并行算法使用標(biāo)準(zhǔn)模板庫(STL)實(shí)現(xiàn)了便攜式并行編程。英偉達(dá)HPCSDK C++編譯器支持CPU上的完全C++ 17,并將并行算法卸載到Nvidia GPU,使得GPU編程沒有指令、語法或注釋。使用C++ 17并行算法的程序很容易移植到Linux、Windows和Mac OS的大多數(shù)C++實(shí)現(xiàn)。
Fortran 2003編譯器
NVIDIA Fortran編譯器支持Fortran 2003和Fortran 2008的許多功能。支持NVIDIA GPU上的OpenACC和CUDA Fortran,支持多核x86-64、Arm和OpenPOWER CPU的SIMD矢量化、OpenACC和OpenMP,具有在當(dāng)今異構(gòu)GPU加速HPC系統(tǒng)上移植和優(yōu)化Fortran應(yīng)用程序所需的功能。
OpenACC指令
NVIDIA FORTRAN,C++,C++編譯器支持基于OpenACC指令的NVIDIA GPU和多核CPU的并行編程。已經(jīng)使用OpenACC啟動(dòng)或啟用了200多個(gè)HPC應(yīng)用程序端口,包括VASP、Gaussian、ANSYS Fluent、WRF和mpa等生產(chǎn)應(yīng)用程序。OpenACC是一個(gè)性能成熟的gpu和多核cpu的便攜式指令解決方案。
主要特點(diǎn)
GPU數(shù)學(xué)庫
cuBLAS和cuSOLVER庫提供了GPU優(yōu)化和多GPU實(shí)現(xiàn),實(shí)現(xiàn)了LAPACK的所有BLAS例程和核心例程,并在可能的情況下自動(dòng)使用NVIDIA GPU張量核心。cuFFT包括GPU加速的用于真實(shí)和復(fù)雜數(shù)據(jù)的1D、2D和3D FFT例程,cuSPARSE為稀疏矩陣提供基本的線性代數(shù)子程序。這些庫可以從CUDA和OpenC程序中調(diào)用,是用C、C++和FORTRAN編寫的。

針對(duì)張量核心優(yōu)化
NVIDIA GPU張量核心使科學(xué)家和工程師能夠使用混合精度或雙精度來顯著地加速合適的算法。NVIDIA HPCSDK數(shù)學(xué)庫針對(duì)張量核心和多GPU節(jié)點(diǎn)進(jìn)行了優(yōu)化,以最小的編碼工作量實(shí)現(xiàn)系統(tǒng)的全部性能潛力。使用NVIDIA Fortran編譯器,可以通過將轉(zhuǎn)換數(shù)組內(nèi)部函數(shù)自動(dòng)映射到cuTENSOR庫來利用張量核心。

CPU優(yōu)化
異構(gòu)HPC服務(wù)器使用gpu來加速計(jì)算,并使用基于x86-64、OpenPOWER或Arm指令集架構(gòu)的多核cpu。所有這些CPU都支持NVIDIA編譯器和工具,并且所有編譯器優(yōu)化都在支持CPU上完全啟用。NVIDIA HPC SDK具有統(tǒng)一的特性、命令行選項(xiàng)、語言實(shí)現(xiàn)、編程模型、工具和庫用戶界面,簡(jiǎn)化了開發(fā)人員在各種HPC環(huán)境中的體驗(yàn)。

多GPU編程
NVIDIA集合通信庫(NCCL)使用MPI兼容的all-gather、all-reduce、broadcast、reduce和reduce-scatter例程實(shí)現(xiàn)高度優(yōu)化的多GPU和多節(jié)點(diǎn)集合通信原語,以利用HPC服務(wù)器節(jié)點(diǎn)內(nèi)和跨HPC服務(wù)器節(jié)點(diǎn)的所有可用GPU。NVSHMEM實(shí)現(xiàn)了GPU內(nèi)存的OpenSHMEM標(biāo)準(zhǔn),并提供了多GPU和多節(jié)點(diǎn)通信原語,這些原語可以從主機(jī)CPU或GPU啟動(dòng),也可以從CUDA內(nèi)核中調(diào)用。

可擴(kuò)展系統(tǒng)編程
MPI是分布式內(nèi)存可伸縮系統(tǒng)編程的標(biāo)準(zhǔn)。NVIDIA HPC SDK包括一個(gè)支持GPUDirect的基于openmpi的CUDA感知MPI庫? 因此,可以使用遠(yuǎn)程直接內(nèi)存訪問(RDMA)直接發(fā)送和接收GPU緩沖區(qū),包括在CUDA統(tǒng)一內(nèi)存中分配的緩沖區(qū)。CUDA感知開放MPI完全兼容CUDA C/C++、CUDA FORTRAN和英偉達(dá)OpenACC編譯器。

Nsight性能分析
N光? Systems提供HPC服務(wù)器上應(yīng)用程序性能的全系統(tǒng)可視化,使能夠優(yōu)化消除瓶頸,跨多核CPU和GPU擴(kuò)展并行應(yīng)用程序。Nsight Compute允許通過圖形或命令行用戶界面深入研究GPU加速應(yīng)用程序的交互式分析器中的GPU內(nèi)核,并允許使用NVTX API直接檢測(cè)源代碼的區(qū)域來查明性能瓶頸。

部署到任何地方
容器通過將應(yīng)用程序及其依賴項(xiàng)綁定到可移植虛擬環(huán)境中,簡(jiǎn)化了軟件部署。NVIDIA HPC SDK包含使用HPC容器生成器開發(fā)、分析和部署軟件的說明,以簡(jiǎn)化容器映像的創(chuàng)建。NVIDIA容器運(yùn)行時(shí)支持幾乎所有容器框架的無縫GPU支持,包括Docker和Singularity。

用戶所說的
“需要Fortran、C和C++編譯器,支持用戶需要的所有編程模型,并期望Nvidia GPU和AMD EPCC CPU-MPI、OpenMP、OpenACC、CUDA和優(yōu)化的數(shù)學(xué)庫。NVIDIA HPC SDK會(huì)檢查所有這些框。”

總結(jié)

以上是生活随笔為你收集整理的构建可扩展的GPU加速应用程序(NVIDIA HPC)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。