Smíði með GPU¶
FrontISTR getur keyrt á GPU með OpenACC-eiginleikum NVIDIA HPC SDK. Á þessari síðu er lýst hvernig FrontISTR er smíðað með GPU-stuðningi og hvernig keyrsla fer fram.
Um nauðsynleg söfn er vísað í Nauðsynleg og valkvæð háðasöfn.
Smíðaferli¶
Notið þýðendur NVIDIA HPC SDK (nvc, nvc++, nvfortran). Í HPC-klasaumhverfi þarf að hlaða NVIDIA HPC SDK samkvæmt leiðbeiningum viðkomandi umhverfis áður en smíðin hefst (til dæmis module load nvhpc).
Valkvæð söfn á borð við METIS, MUMPS og MKL styðja ekki GPU og eru því óvirkjuð í skipanadæmunum hér að neðan (til dæmis WITH_METIS=OFF).
Eins og lýst er í Smíðaferli með CMake, þegar NVIDIA HPC SDK (nvc, nvc++, nvfortran) er valið sem þýðandasett, er -gpu=ccnative,mem:managed stillt í CMakeLists.txt. ccnative er valkostur sem greinir sjálfkrafa GPU í smíðaumhverfinu og velur hentugt mark, þannig að ekki þarf að breyta stillingum handvirkt fyrir hvert umhverfi. mem: er valkostur sem tilgreinir hvernig GPU-minni er meðhöndlað; hann er nauðsynlegur vegna þess að GPU-útfærsla FrontISTR byggir á sameinuðu minni. mem:managed er sjálfgefin stilling fyrir venjuleg umhverfi þar sem CPU og GPU hafa aðskilið minni.
Athugasemd: Í arkitektúr eins og Miyabi (GH200), þar sem CPU og GPU eru samtengd með NVLink, er
mem:managedekki notað; í stað þess ermem:unifiednotað. Breytið stillingunni eftir því umhverfi sem er notað (-gpu=ccnative,mem:unified).
OpenACC + OpenMP (án MPI)¶
mkdir build
cd build
CC=nvc CXX=nvc++ FC=nvfortran cmake \
-DWITH_MPI=OFF -DWITH_OPENMP=ON \
-DWITH_METIS=OFF -DWITH_MUMPS=OFF \
-DWITH_MKL=OFF -DWITH_LAPACK=OFF \
-DWITH_ML=OFF -DWITH_REFINER=OFF -DWITH_REVOCAP=OFF \
..
make -j
OpenACC + OpenMP + MPI¶
Þegar MPI er notað þurfa MPI-hjúpunarþýðendur (til dæmis mpicc) að vera stilltir þannig að þeir kalli innbyrðis á þýðendur NVIDIA HPC SDK (til dæmis nvc). Í mörgum HPC-klasaumhverfum verður þessi uppsetning sjálfkrafa virk þegar NVIDIA HPC SDK og MPI-söfn eru hlaðin með skipunum á borð við module load. Ráðlagðar útgáfur og hleðsluferli eru þó mismunandi eftir umhverfi, svo vísað er í notendahandbók eða önnur skjöl viðkomandi umhverfis fyrir nánari upplýsingar.
mkdir build
cd build
CC=mpicc CXX=mpic++ FC=mpif90 cmake \
-DWITH_MPI=ON -DWITH_OPENMP=ON \
-DWITH_METIS=OFF -DWITH_MUMPS=OFF \
-DWITH_MKL=OFF -DWITH_LAPACK=OFF \
-DWITH_ML=OFF -DWITH_REFINER=OFF -DWITH_REVOCAP=OFF \
..
make -j
Keyrsla¶
Keyrsluferli GPU-smíðar er í grundvallaratriðum hið sama og fyrir CPU-smíði. Um almennt keyrsluferli er vísað í Keyrsluleiðbeiningar.
Prófílun¶
Safna má prófílgögnum með NVIDIA Nsight Systems (nsys).