Membina dengan Sokongan GPU¶
FrontISTR boleh dijalankan pada GPU menggunakan fungsi OpenACC dalam NVIDIA HPC SDK. Halaman ini menerangkan cara membina FrontISTR dengan sokongan GPU didayakan dan cara menjalankannya.
Untuk pustaka prasyarat, lihat Kebergantungan Wajib dan Pilihan.
Prosedur Binaan¶
Gunakan pengkompil NVIDIA HPC SDK (nvc, nvc++ dan nvfortran). Dalam persekitaran kluster HPC, NVIDIA HPC SDK mesti dimuatkan sebelum membina mengikut manual persekitaran (contohnya, module load nvhpc).
Pustaka pilihan seperti METIS, MUMPS dan MKL tidak menyokong GPU, jadi ia dinyahdayakan dalam contoh arahan di bawah (contohnya, WITH_METIS=OFF).
Seperti yang diterangkan dalam Membina dengan CMake, apabila NVIDIA HPC SDK (nvc, nvc++, nvfortran) ditentukan sebagai pengkompil, -gpu=ccnative,mem:managed ditetapkan dalam CMakeLists.txt. ccnative ialah pilihan yang mengesan GPU dalam persekitaran binaan secara automatik dan memilih sasaran optimum, jadi perubahan manual tidak diperlukan bagi setiap persekitaran. mem: ialah pilihan yang menentukan cara memori GPU dikendalikan; ia diperlukan kerana pelaksanaan GPU FrontISTR mengandaikan Unified Memory. mem:managed ialah tetapan lalai bagi persekitaran umum yang CPU dan GPU mempunyai memori berasingan.
Nota: Pada seni bina seperti Miyabi (GH200), yang CPU dan GPU disepadukan melalui NVLink,
mem:unifieddigunakan dan bukannyamem:managed; ubah tetapan mengikut persekitaran yang digunakan (-gpu=ccnative,mem:unified).
OpenACC + OpenMP (tanpa 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¶
Apabila menggunakan MPI, pengkompil pembalut MPI (seperti mpicc) mesti dikonfigurasi untuk memanggil pengkompil NVIDIA HPC SDK (seperti nvc) secara dalaman. Dalam banyak persekitaran kluster HPC, pemuatan NVIDIA HPC SDK dan pustaka MPI dengan arahan seperti module load menyediakan konfigurasi ini secara automatik. Walau bagaimanapun, versi yang disyorkan dan prosedur pemuatan berbeza mengikut persekitaran, jadi rujuk manual pengguna atau dokumentasi lain bagi setiap persekitaran untuk butiran.
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
Pelaksanaan¶
Prosedur pelaksanaan bagi binaan GPU pada asasnya sama seperti binaan CPU. Untuk prosedur pelaksanaan umum, lihat Panduan Pelaksanaan.
Pemprofilan¶
Data pemprofilan boleh dikumpulkan menggunakan NVIDIA Nsight Systems (nsys).