අන්තර්ගතය වෙත යන්න

GPU භාවිත කර ගොඩනැගීම

FrontISTR, NVIDIA HPC SDK හි OpenACC හැකියාව භාවිත කර GPU මත ක්‍රියාත්මක කළ හැක. මෙම පිටුව 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 ක්‍රියාත්මක කිරීම ඒකාබද්ධ මතකය උපකල්පනය කරන බැවින් මෙය නියම කිරීම අනිවාර්ය වේ. mem:managed CPU සහ GPU වෙන වෙනම මතකය භාවිත කරන සාමාන්‍ය පරිසර සඳහා පෙරනිමි සැකසුමයි.

සටහන: 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 ආවරණ සම්පාදකය (mpicc ආදිය) අභ්‍යන්තරව NVIDIA HPC SDK සම්පාදකය (nvc ආදිය) කැඳවන වින්‍යාසයක තිබිය යුතුය. HPC ක්ලස්ටර් පරිසරයක module load වැනි විධානයක් මඟින් NVIDIA HPC SDK සහ MPI පුස්තකාලය පූරණය කළ විට බොහෝවිට එම වින්‍යාසය ස්වයංක්‍රීයව ලැබේ. නමුත් නිර්දේශිත අනුවාදය සහ පූරණ ක්‍රියාපටිපාටිය පරිසරය අනුව වෙනස් වන බැවින්, විස්තර සඳහා අදාළ පරිසරයේ පරිශීලක අත්පොත බලන්න.

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) භාවිත කර කාර්යසාධන පැතිකඩ දත්ත රැස් කළ හැක.

MPI නැත

nsys profile -t cuda -s none -o profile_result /path/to/FrontISTR/build/fistr1/fistr1

MPI ඇත

nsys profile -t cuda,mpi -s none -o profile_result \
  mpiexec -n <ක්‍රියාවලි ගණන> /path/to/FrontISTR/build/fistr1/fistr1 -t 8