Skip to content

GPU қолдауымен құрастыру

FrontISTR NVIDIA HPC SDK құрамындағы OpenACC мүмкіндігін пайдаланып GPU-да орындала алады. Бұл бетте GPU қолдауы қосылған FrontISTR-ді құрастыру және іске қосу тәсілдері сипатталады.

Алғышарт кітапханалар туралы Міндетті және қосымша тәуелділіктер бөлімін қараңыз.

Құрастыру тәртібі

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 кластер орталарында 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) арқылы профильдеу деректерін жинауға болады.

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
AI-assisted translation May contain errors Official docs Status