Nsight Graphics

Pour utiliser nsys, c'est très simple.

D'abord, il faut aller sur le nœud de calcul pour générer un rapport avec votre application (nœud unique ou nœuds multiples).

Ensuite, il faut aller sur le TurboVNC ouvrez une interface graphique nsys pour visualiser votre rapport.

Exemple de rapport simple nœud

#!/usr/bin/bash
#SBATCH -N 1
#SBATCH -n 16
#SBATCH --ntasks-per-node=16
#SBATCH --gres=gpu:2
#SBATCH --time=01:00:00
#SBATCH --mem=128G
#SBATCH -p small
#nvprofiling

module purge
module load amgx/nvidia/2.4.0-nvhpc231-system
module load dcgm/3.1.3-1
module list

workdir=$PWD/${SLURM_JOBID}
mkdir ${workdir}

cd ${workdir}
\cp -f ../{bul3.*,jcl,PCG.json} .
cp ../nsys.sh .
cp $0 .
maxit=4                                                                                                           

export CUDA_VISIBLE_DEVICES=0,1
export TEST_SYSTEM_PARAMS=1
export UCX_MEMTYPE_CACHE=n

export UCX_IB_GPU_DIRECT_RDMA=no
echo "UCX_IB_GPU_DIRECT_RDMA=${UCX_IB_GPU_DIRECT_RDMA}"
echo "LD_LIBRARY_PATH=$LD_LIBRARY_PATH"

#DCGM
nv-hostengine --pid nvhostengine.pid --log-filename nv-hostengine.log
#PCIe
dcgmi dmon -e 1009,1010 -c 200 > compteur.${SLURM_JOB_ID} &

clush -w ${SLURM_NODELIST} nvidia-cuda-mps-control -d
BIN=../my_application
ldd ${BIN}
nodeset -e ${SLURM_JOB_NODELIST} | tr ' ' '\n' > hostfile_${SLURM_JOBID}
nsys profile -t mpi,ucx,openmp,openacc,oshmem,cuda,opengl,nvtx,osrt -o report-mpirun-singlenode mpirun -hostfile ./hostfile_${SLURM_JOBID} -np ${SLURM_NTASKS} --map-by ppr:${SLURM_NTASKS_PER_NODE}:socket:PE=1 $BIN 2 2 4
clush -w ${SLURM_NODELIST}  echo quit | nvidia-cuda-mps-control

kill -9 $(cat nvhostengine.pid)

Visualisation de rapport simple nœud

#Vous ouvrez un terminal sur le TurboVNC :

module load nvidia
module load nvhpc/23.1
cd /usr/local/arch-x86/nvidia/nvhpc/Linux_x86_64/23.1/profilers/Nsight_Systems/host-linux-x64/
./nsys-ui.vglrun.wrapper

#Vous visualisez un rapport sur une interface graphique nsys :

/tmpdir/jamal/Tests_Nsys/6147/report-mpirun-singlenode.nsys-rep

nsys.png

Espace utilisateurs/Doc Technique TURPAN/Améliorer les performances

Voir aussi

LWP

Bull Mpi LightWeight Profiler est un outil de profilage léger, simple à utiliser, et qui ne nécessite aucune modification de code : pas de recompilation ou d’édition de lien.

Profiler votre code avec map sur Turpan

Pour profiler votre code, vous devez travailler en deux temps :