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) વડે પ્રોફાઇલિંગ ડેટા એકત્રિત કરી શકાય છે.