| 1 | 1/1 | 返回列表 |
| 查看: 1085 | 回復(fù): 0 | |||
A寶祿計(jì)算銀蟲 (初入文壇)
|
[交流]
VASP 的 OpenACC GPU 端口
|
|
在 VASP.6.2.0 中,我們正式發(fā)布了 VASP 的 OpenACC GPU 端口:正式的意思是我們現(xiàn)在強(qiáng)烈建議使用此 OpenACC 版本在 GPU 加速系統(tǒng)上運(yùn)行 VASP。 VASP之前的CUDA-C GPU 端口被認(rèn)為已棄用,不再積極開發(fā)、維護(hù)或支持。從 VASP.6.3.0 開始,VASP 的 CUDA-C GPU 端口已完全刪除。 內(nèi)容 1個(gè)要求 1.1軟件棧 1.2硬件 2個(gè)建筑 3個(gè)特點(diǎn)和限制 4個(gè)運(yùn)行 OpenACC 版本 5個(gè)學(xué)分 6個(gè)相關(guān)文章 要求 軟件棧 編譯器 要編譯 VASP 的 OpenACC 版本,您需要最新版本的NVIDIA HPC-SDK (>=21.2)。 原則上,任何至少支持 OpenACC 標(biāo)準(zhǔn) 2.6 的編譯器都應(yīng)該可以做到這一點(diǎn),但我們只嘗試和測(cè)試了上述編譯器。 注意:NVIDIA HPC-SDK 版本 22.1 和 22.2 有一個(gè)嚴(yán)重的錯(cuò)誤,禁止與 OpenMP 線程一起執(zhí)行 OpenACC 版本。使用這些編譯器版本時(shí),您應(yīng)該在沒有 OpenMP 支持的情況下進(jìn)行編譯。此錯(cuò)誤已從 NVIDIA HPC-SDK 版本 22.3 開始修復(fù)。 圖書館 數(shù)值庫:FFTW、BLAS、LAPACK 和 scaLAPACK。如果您使用的是NVIDIA HPC-SDK,您必須自己安裝的唯一數(shù)值庫是FFTW。后三個(gè)(BLAS、LAPACK 和 scaLAPACK)隨 SDK 一起提供;蛘撸梢枣溄拥教峁┧兴膫(gè)的Intel oneAPI MKL庫的安裝。 NVIDIA CUDA 工具包(>=10.0)。所有必要的 CUDA 工具包組件都作為 NVIDIA HPC-SDK 的一部分提供。 MPI 的 CUDA 感知版本。與 NVIDIA HPC-SDK 一起打包的 OpenMPI 安裝是 CUDA 感知的。 NVIDIA 集體通信庫 (NCCL) (>=2.7.8)。這個(gè)庫不是一個(gè)嚴(yán)格的要求,但出于性能原因強(qiáng)烈建議使用它。合適的 NCCL 安裝作為 NVIDIA HPC-SDK 的一部分提供。 司機(jī) 您需要一個(gè)至少支持 CUDA-10.0 的 CUDA 驅(qū)動(dòng)程序。 硬件 我們僅使用以下 NVIDIA GPU 測(cè)試了 VASP 的 OpenACC GPU 端口: NVIDIA 數(shù)據(jù)中心 GPU:P100 (Pascal)、V100 (Volta) 和 A100 (Ampere)。 NVIDIA Quadro GPU:GP100 (Pascal) 和 GV100 (Volta)。 注意:在其他 NVIDIA GPU(例如“游戲”硬件)上運(yùn)行 VASP 在技術(shù)上是可行的,但不可。哼@些 GPU 不太適合,因?yàn)樗鼈儾惶峁┛焖匐p精度浮點(diǎn)運(yùn)算 (FP64) 性能,并且通常具有更小的沒有糾錯(cuò)碼 (ECC) 功能的存儲(chǔ)器。 建筑 要構(gòu)建 VASP 的 OpenACC 端口,最好將您的makefile.include文件基于其中一個(gè)原型模板,并根據(jù)您系統(tǒng)的具體情況調(diào)整這些模板。 特點(diǎn)和限制 VASP 的大部分功能都已使用 OpenACC 移植到 GPU,但涉及 RPA 的所有功能除外:GW 和 ACFDT。這是正在進(jìn)行的工作。 出于性能原因,應(yīng)避免使用波函數(shù)的并行 FFT ( NCORE >1)。目前,即使在INCAR文件中另有指定,OpenACC 版本也會(huì)自動(dòng)切換到NCORE =1 。 由于使用 NCCL,VASP 的 OpenACC 版本只能使用每個(gè)可用 GPU 的單個(gè) MPI 等級(jí)來執(zhí)行: 在大多數(shù)情況下,使用 NCCL 具有很大的性能優(yōu)勢(shì)。但是,我們知道這樣一個(gè)事實(shí),即對(duì)于小型系統(tǒng)上的計(jì)算,保留讓多個(gè) MPI 級(jí)數(shù)共享一個(gè) GPU 的能力將很有用,并計(jì)劃使 NCCL 的使用成為可選的以消除此限制。 運(yùn)行 OpenACC 版本 1.每個(gè) GPU 使用單個(gè) MPI 等級(jí)(目前,NCCL 的使用排除了每個(gè) GPU 使用多個(gè)等級(jí))。 2.除了 MPI 等級(jí)之外,還使用 OpenMP 線程來利用更多可用的 CPU 能力。OpenACC 版本目前僅限于使用 1 個(gè) MPI-rank/GPU,這意味著可能有相當(dāng)多的 CPU 能力未被使用。由于仍然有部分代碼在 CPU 端運(yùn)行,因此允許每個(gè) MPI 等級(jí)使用多個(gè) OpenMP 線程可能是有益的: o要了解如何使用 OpenACC和OpenMP 支持構(gòu)建 VASP,請(qǐng)查看makefile.include.nvhpc_ompi_mkl_omp_acc文件。 注意:這里我們鏈接了用于 CPU 端 FFTW、BLAS、LAPACK 和 scaLAPACK 調(diào)用的英特爾 MKL 庫和英特爾 OpenMP 運(yùn)行時(shí)庫 ( libiomp5.so 。在為 Intel CPU 編譯時(shí)強(qiáng)烈建議這樣做,尤其是在使用多線程時(shí)。為確保 MKL 使用英特爾 OpenMP 運(yùn)行時(shí)庫,您需要通過以下方式設(shè)置環(huán)境變量:export MKL_THREADING_LAYER=INTEL 或者通過添加: -x MKL_THREADING_LAYER=intel 作為命令的選項(xiàng)mpirun。 o將 OpenMPI 等級(jí)和 OpenMP 線程正確放置和固定到 CPU 內(nèi)核上可能有點(diǎn)棘手,這取決于使用的 MPI 的特定風(fēng)格。 3.要獲得最佳性能,明智地選擇KPAR和NSIM非常重要。不幸的是,理想值將取決于您系統(tǒng)的具體情況,包括工作負(fù)載和硬件,因此您將不得不嘗試不同的設(shè)置。但是,根據(jù)經(jīng)驗(yàn),可以說: o將KPAR設(shè)置為您將要使用的 GPU 數(shù)量(= MPI-ranks)。不過,這僅在計(jì)算中不可約k點(diǎn)的數(shù)量或多或少可被KPAR整除時(shí)才有意義,否則 MPI 等級(jí)上的工作分布將嚴(yán)重不平衡。這意味著您在選擇此參數(shù)時(shí)的選項(xiàng)有些受限。 oNSIM確定在許多電子求解器(例如 RMM-DIIS 和 blocked-Davidson)中同時(shí)優(yōu)化的波段數(shù)。作為一項(xiàng)規(guī)則,與 CPU 端執(zhí)行相比,應(yīng)該選擇更大的參數(shù)以獲得 GPU 上的良好性能。 注意:為了優(yōu)化 VASP 的 CPU 端執(zhí)行,通常也會(huì)對(duì)NCORE進(jìn)行不同的設(shè)置。當(dāng)在 GPU 上運(yùn)行時(shí),任何不同于NCORE =1 的東西都會(huì)對(duì)性能產(chǎn)生不利影響,并且 VASP 將自動(dòng)切換到NCORE =1,即使在INCAR文件中另有指定也是如此。 |
| 1 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 085701環(huán)境工程295求調(diào)劑,一志愿A區(qū)211 +7 | 等春來, 2026-03-06 | 8/400 |
|
|---|---|---|---|---|
|
[考研] 材料調(diào)劑 +5 | ounce. 2026-03-05 | 13/650 |
|
|
[考研] 初試297求調(diào)劑 +3 | 一個(gè)蘿蘿 2026-02-28 | 3/150 |
|
|
[考研] 080500材料科學(xué)與工程 +13 | 202114020319 2026-03-03 | 13/650 |
|
|
[考研] 【求調(diào)劑】293分環(huán)境工程求調(diào)劑材料/化工,服從調(diào)劑,抗壓能力強(qiáng)! +8 | xiiiia 2026-03-04 | 8/400 |
|
|
[考研] 一志愿東北大學(xué)080500,英一數(shù)二343分求調(diào)劑 +5 | Seele_v5 2026-03-04 | 5/250 |
|
|
[考研] 化學(xué)工程求調(diào)劑 +10 | 化工人999 2026-03-04 | 10/500 |
|
|
[考研] 286 +6 | ksncj 2026-03-04 | 6/300 |
|
|
[考研] 一志愿鄭州大學(xué),學(xué)碩,物理化學(xué), 333求調(diào)劑 +5 | 李魔女斗篷 2026-03-04 | 5/250 |
|
|
[考研] 282求調(diào)劑 +5 | 2103240126 2026-03-02 | 8/400 |
|
|
[考研] 322,求調(diào)劑 +3 | 菜菜愛玩 2026-03-04 | 3/150 |
|
|
[考研]
材料325求調(diào)劑
30+5
|
mariusuki 2026-03-02 | 10/500 |
|
|
[考研] 085600求調(diào)劑 +4 | LRZZZZZZ 2026-03-02 | 6/300 |
|
|
[考研] 環(huán)境工程學(xué)碩288求助調(diào)劑 +7 | 多吃億口芝士 2026-03-02 | 7/350 |
|
|
[考研] 課題組接收材料類調(diào)劑研究生 +6 | gaoxiaoniuma 2026-02-28 | 9/450 |
|
|
[考研] 298求調(diào)劑 +7 | axyz3 2026-02-28 | 8/400 |
|
|
[考研] 288求調(diào)劑 +3 | 少71.8 2026-03-02 | 5/250 |
|
|
[考研] 0856化工專碩求調(diào)劑 +15 | 董boxing 2026-03-01 | 15/750 |
|
|
[考研] 1 +5 | 2026計(jì)算機(jī)_誠心 2026-03-01 | 8/400 |
|
|
[考研]
|
LYidhsjabdj 2026-02-28 | 4/200 |
|