Translation update pending
The Icelandic translation may be out of date because the Japanese source has changed. The existing translation remains available while it is being updated.
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
Án OpenACC (CPU-útgáfa)¶
Til að smíða CPU-útgáfu með þýðendum NVIDIA HPC SDK án OpenACC skal tilgreina -DNVHPC_NO_ACC=ON. Þá eru -acc, -Minfo=accel og -gpu=ccnative,mem:managed ekki stillt. Notið þessa uppsetningu þegar bera á saman niðurstöður við GPU-útgáfu sem er smíðuð með sömu þýðendum.
mkdir build
cd build
CC=nvc CXX=nvc++ FC=nvfortran cmake \
-DNVHPC_NO_ACC=ON \
-DWITH_MPI=OFF -DWITH_OPENMP=ON \
..
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).