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 ను ఆధారంగా తీసుకుంటుంది కాబట్టి ఇది తప్పనిసరి. CPU మరియు GPU కు వేర్వేరు మెమరీ ఉండే సాధారణ పరిసరాల్లో mem:managed డిఫాల్ట్ అమరిక.
గమనిక: 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) ఉపయోగించి ప్రొఫైల్ డేటాను సేకరించవచ్చు.