GPU дэмжлэгтэйгээр бүтээх¶
FrontISTR нь NVIDIA HPC SDK-ийн OpenACC функцийг ашиглан GPU дээр ажиллах боломжтой. Энэ хуудас FrontISTR-ийг GPU дэмжлэгтэйгээр хэрхэн бүтээх болон ажиллуулахыг тайлбарлана.
Шаардлагатай сангуудын талаар Заавал болон нэмэлт хамаарлууд-аас үзнэ үү.
Бүтээх журам¶
NVIDIA HPC SDK компиляторуудыг (nvc, nvc++, nvfortran) ашиглана. HPC кластерын орчинд бүтээхийн өмнө тухайн орчны гарын авлагын дагуу NVIDIA HPC SDK-г ачаалах шаардлагатай (жишээлбэл module load nvhpc).
METIS, MUMPS, MKL зэрэг нэмэлт сангууд GPU-г дэмждэггүй тул доорх командын жишээнүүдэд идэвхгүй болгосон (WITH_METIS=OFF гэх мэт).
CMake ашиглан бүтээх-д тайлбарласанчлан NVIDIA HPC SDK (nvc, nvc++, nvfortran)-г компилятор болгон заах үед CMakeLists.txt-д -gpu=ccnative,mem:managed тохируулна. ccnative нь бүтээх орчин дахь GPU-г автоматаар илрүүлж хамгийн тохиромжтой зорилтот архитектурыг сонгох сонголт тул орчин бүрт гараар өөрчлөх шаардлагагүй. mem: нь GPU санах ойг хэрхэн ашиглахыг заах сонголт бөгөөд FrontISTR-ийн GPU хэрэгжүүлэлт Unified Memory-д тулгуурладаг учраас шаардлагатай. CPU ба GPU тусдаа санах ойтой ердийн орчинд mem:managed нь өгөгдмөл тохиргоо юм.
Тайлбар: Miyabi (GH200) зэрэг CPU ба GPU нь NVLink-ээр нэгдсэн архитектур дээр
mem:managed-ийн орондmem:unifiedашиглана; хэрэглэж буй орчиндоо тааруулан тохиргоог өөрчилнө (-gpu=ccnative,mem:unified).
OpenACC + OpenMP (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¶
MPI ашиглах үед MPI wrapper компиляторуудыг (mpicc гэх мэт) дотроо NVIDIA HPC SDK компиляторыг (nvc гэх мэт) дуудахаар тохируулсан байх ёстой. Олон HPC кластерын орчинд NVIDIA HPC SDK болон MPI сангуудыг module load зэрэг командаар ачаалахад энэ тохиргоо автоматаар хангагдана. Гэхдээ санал болгож буй хувилбар болон ачаалах журам орчин бүрт ялгаатай тул дэлгэрэнгүйг тухайн орчны хэрэглэгчийн гарын авлага болон бусад баримтаас үзнэ үү.
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
Ажиллуулах¶
GPU бүтээлтийг ажиллуулах журам нь үндсэндээ CPU бүтээлттэй ижил. Ерөнхий ажиллуулах журмыг Ажиллуулах гарын авлага-аас үзнэ үү.
Профайлинг¶
NVIDIA Nsight Systems (nsys) ашиглан профайлингийн өгөгдөл цуглуулж болно.