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 نفاذ Unified Memory کو فرض کرتا ہے، اس لیے اس کی تعیین ضروری ہے۔ 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) کے ذریعے پروفائلنگ ڈیٹا جمع کیا جا سکتا ہے۔