ប៊ីលដ៍ដោយប្រើ GPU¶
FrontISTR អាចដំណើរការលើ GPU ដោយប្រើមុខងារ OpenACC របស់ NVIDIA HPC SDK។ ទំព័រនេះពន្យល់នីតិវិធីប៊ីលដ៍ដែលបើក 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 ហើយត្រូវការចាំបាច់ព្រោះការអនុវត្ត GPU របស់ FrontISTR សន្មត Unified Memory។ mem:managed ជាការកំណត់លំនាំដើមសម្រាប់បរិស្ថានទូទៅដែល CPU និង GPU មានអង្គចងចាំដាច់ដោយឡែក។
ចំណាំ៖ ក្នុងស្ថាបត្យកម្មដែល CPU និង GPU ត្រូវបានបញ្ចូលតាម NVLink ដូច Miyabi (GH200) ប្រើ
mem:unifiedជំនួសmem:managedដូច្នេះត្រូវកែតាមបរិស្ថានដែលប្រើ (-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)។