From fd30c1c80f504bbe9e8ecd927cad2106d252ff6b Mon Sep 17 00:00:00 2001 From: Jiri Kraus Date: Tue, 23 Jul 2024 09:56:59 +0000 Subject: [PATCH] NVTX3 and NSight Systems update. --- posts/nvtx/Makefile | 12 +++++++----- posts/nvtx/env_hpc_sdk.sh | 33 +++++++++++++++++++++++++++++++++ posts/nvtx/inst_nvtx.cpp | 2 +- posts/nvtx/manual_nvtx.cu | 2 +- 4 files changed, 42 insertions(+), 7 deletions(-) create mode 100644 posts/nvtx/env_hpc_sdk.sh diff --git a/posts/nvtx/Makefile b/posts/nvtx/Makefile index 39bc8fd..c72fb3f 100644 --- a/posts/nvtx/Makefile +++ b/posts/nvtx/Makefile @@ -28,22 +28,24 @@ CC=gcc CXX=g++ NVCC=nvcc +NVTX_INCLUDE ?= $(CUDA_HOME)/include + BINARIES=manual_nvtx compiler_inst_nvtx all: $(BINARIES) inst_nvtx.o: inst_nvtx.cpp Makefile - g++ -export-dynamic -fPIC -I${CUDA_ROOT}/include -c inst_nvtx.cpp + g++ -export-dynamic -fPIC -I$(NVTX_INCLUDE) -c inst_nvtx.cpp manual_nvtx: manual_nvtx.cu Makefile - nvcc -Xcompiler -export-dynamic -DUSE_NVTX -lnvToolsExt -o manual_nvtx manual_nvtx.cu + nvcc -Xcompiler -export-dynamic -DUSE_NVTX -ldl -o manual_nvtx manual_nvtx.cu compiler_inst_nvtx: compiler_inst_nvtx.cu Makefile inst_nvtx.o - nvcc -Xcompiler -export-dynamic -Xcompiler -fPIC -Xcompiler -finstrument-functions inst_nvtx.o -ldl -lnvToolsExt -o compiler_inst_nvtx compiler_inst_nvtx.cu + nvcc -Xcompiler -export-dynamic -Xcompiler -fPIC -Xcompiler -finstrument-functions inst_nvtx.o -ldl -o compiler_inst_nvtx compiler_inst_nvtx.cu clean: rm -f *.o $(BINARIES) run: $(BINARIES) - nvprof -o compiler_inst_nvtx.nvvp ./compiler_inst_nvtx - nvprof -o manual_nvtx.nvvp ./manual_nvtx + nsys profile --trace=cuda,nvtx -o compiler_inst_nvtx ./compiler_inst_nvtx + nsys profile --trace=cuda,nvtx -o manual_nvtx ./manual_nvtx diff --git a/posts/nvtx/env_hpc_sdk.sh b/posts/nvtx/env_hpc_sdk.sh new file mode 100644 index 0000000..31b7369 --- /dev/null +++ b/posts/nvtx/env_hpc_sdk.sh @@ -0,0 +1,33 @@ +# Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of NVIDIA CORPORATION nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +# OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +if [ -v HPCSDK_RELEASE ]; then + echo "Running with NVIDIA HPC SDK" + if [ ! -v CUDA_HOME ] || [ ! -d ${CUDA_HOME} ]; then + export CUDA_HOME=$(nvc++ -cuda -printcudaversion |& grep "CUDA Path" | awk -F '=' '{print $2}') + echo "Setting CUDA_HOME=${CUDA_HOME}" + fi +fi diff --git a/posts/nvtx/inst_nvtx.cpp b/posts/nvtx/inst_nvtx.cpp index d0a8fee..0b51241 100644 --- a/posts/nvtx/inst_nvtx.cpp +++ b/posts/nvtx/inst_nvtx.cpp @@ -26,7 +26,7 @@ */ #include -#include "nvToolsExt.h" +#include "nvtx3/nvToolsExt.h" #include #include diff --git a/posts/nvtx/manual_nvtx.cu b/posts/nvtx/manual_nvtx.cu index 8cb63dc..fe0b897 100644 --- a/posts/nvtx/manual_nvtx.cu +++ b/posts/nvtx/manual_nvtx.cu @@ -28,7 +28,7 @@ #include #ifdef USE_NVTX -#include "nvToolsExt.h" +#include "nvtx3/nvToolsExt.h" const uint32_t colors[] = { 0xff00ff00, 0xff0000ff, 0xffffff00, 0xffff00ff, 0xff00ffff, 0xffff0000, 0xffffffff }; const int num_colors = sizeof(colors)/sizeof(uint32_t);