GPU Desteğiyle Derleme¶
FrontISTR, NVIDIA HPC SDK'nın OpenACC işlevini kullanarak GPU üzerinde çalışabilir. Bu sayfada GPU etkin derleme adımları ve çalıştırma yöntemi açıklanmaktadır.
Gerekli kütüphaneler için Gerekli ve İsteğe Bağlı Bağımlılıklar bölümüne bakın.
Derleme Prosedürü¶
NVIDIA HPC SDK derleyicilerini (nvc, nvc++ ve nvfortran) kullanın. Bir HPC kümesi ortamında, derlemeden önce ortamın kılavuzuna göre NVIDIA HPC SDK yüklenmelidir (örneğin module load nvhpc).
METIS, MUMPS ve MKL gibi isteğe bağlı kütüphaneler GPU'ları desteklemediğinden, aşağıdaki komut örneklerinde devre dışı bırakılmıştır (örneğin WITH_METIS=OFF).
CMake ile Derleme bölümünde açıklandığı gibi, derleyici olarak NVIDIA HPC SDK (nvc, nvc++, nvfortran) belirtildiğinde CMakeLists.txt içinde -gpu=ccnative,mem:managed ayarlanır. ccnative, derleme ortamındaki GPU'yu otomatik olarak algılayıp en uygun hedefi seçen bir seçenektir; bu nedenle her ortam için elle değişiklik yapmak gerekmez. mem:, GPU belleğinin nasıl ele alınacağını belirleyen bir seçenektir; FrontISTR GPU uygulaması Unified Memory varsaydığı için gereklidir. mem:managed, CPU ve GPU'nun ayrı belleklere sahip olduğu genel ortamlar için varsayılan ayardır.
Not: CPU ile GPU'nun NVLink üzerinden bütünleşik olduğu Miyabi (GH200) gibi mimarilerde
mem:managedyerinemem:unifiedkullanılır; kullanılan ortama göre ayarı değiştirin (-gpu=ccnative,mem:unified).
OpenACC + OpenMP (MPI olmadan)¶
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 kullanılırken, MPI sarmalayıcı derleyicileri (örneğin mpicc) dahili olarak NVIDIA HPC SDK derleyicilerini (örneğin nvc) çağıracak şekilde yapılandırılmalıdır. Birçok HPC kümesi ortamında, module load gibi komutlarla NVIDIA HPC SDK ve MPI kütüphanelerinin yüklenmesi bu yapılandırmayı otomatik olarak sağlar. Ancak önerilen sürümler ve yükleme prosedürleri ortama göre değiştiğinden, ayrıntılar için ilgili ortamın kullanıcı kılavuzuna veya diğer belgelerine başvurun.
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
Çalıştırma¶
GPU derlemesinin çalıştırma prosedürü temelde CPU derlemesiyle aynıdır. Genel çalıştırma prosedürleri için Çalıştırma Kılavuzu bölümüne bakın.
Profil Oluşturma¶
Profil verileri NVIDIA Nsight Systems (nsys) kullanılarak toplanabilir.