MISSING nvToolsExt64_1.lib

gpucoder can't see nvToolsExt64_1.lib even if it exist ad it's declared correctly in the environement variable NVTOOLSEXT_PATH.
I tried to disable the firewall obtaining the same problem.
What to do ?
I get error:
Error using gpucoder.profile (line 41)
Unable to find NVTX library 'nvToolsExt64_1.lib'. Ensure that the NVTX SDK installation contains the
specified library file.
when I type :
cfg = coder.gpuConfig('exe');
cfg.GpuConfig.MallocMode = 'discrete';
gpucoder.profile('myH_MEX',ARGS{1},'CodegenConfig',cfg,...
'CodegenArguments','-d profilingdir','Threshold',0.001);
---
coder.checkGpuInstall
Compatible GPU : PASSED (Warning: Support for GPU devices with Compute Capability 5.2 will be removed in a future MATLAB release. For more information on GPU support, see GPU Support by Release.)
CUDA Environment : PASSED
Runtime : PASSED
cuFFT : PASSED
cuSOLVER : PASSED
cuBLAS : PASSED
cuDNN Environment : PASSED (Warning: Deep learning code generation has been tested with cuDNN v7.6. The provided cuDNN library v8.6 may not be fully compatible.)
Basic Code Generation : PASSED
Basic Code Execution : PASSED
ans =
struct with fields:
gpu: 1
cuda: 1
cudnn: 1
tensorrt: 0
basiccodegen: 1
basiccodeexec: 1
deepcodegen: 0
deepcodeexec: 0
tensorrtdatatype: 0
profiling: 0
---
C:\Windows\system32>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:32:27_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.2, V10.2.89

8 Comments

This particular error message is thrown when environment variable NVTOOLSEXT_PATH is found, but the the profiler cannot find the library file. Under NVTOOLSEXT_PATH, you should be able to find the library file under the lib\x64 directory; can you verify that this is the case? If not, please try reinstalling NVIDIA Nsight Systems. (It may also be necessary to install Nsight Visual Studio Edition.)
Emiliano Rosso
Emiliano Rosso on 1 Nov 2022
Edited: Emiliano Rosso on 1 Nov 2022
that's the problem! Because the library file exists but Matlab can't see it. That's the reason why I tried to disable the firewall whitout results!
NSight Compute,NSight System & NSight Visual Studio Edition are all installed. It doesn't say " file is wrong" , it could be a version problem , it doesn't see it .
I'll try to login Admin like....
Please try running the following code in MATLAB:
>> nvtxPath = getenv('NVTOOLSEXT_PATH');
>> libListing = dir(fullfile(nvtxPath, 'lib', 'x64'));
This is essentially the same code that the current implementation of gpucoder.profile uses to locate the library file. Can you confirm whether 'nvToolsExt64_1.lib' is included as an entry in the resulting struct?
Thanks!
nvtxPath = getenv('NVTOOLSEXT_PATH');
'C:\Program Files\NVIDIA Corporation\NvToolsExt\;C:\Program Files\NVIDIA Corporation\NvToolsExt\lib\x64;'
libListing = dir(fullfile(nvtxPath, 'lib', 'x64'))
0×1 empty struct array with fields:
name
folder
date
bytes
isdir
datenum
SOLVED!
setenv('NVTOOLSEXT_PATH','C:\Program Files\NVIDIA Corporation\NvToolsExt\');
If libListing calls 'lib' & 'x64' you don't need to declare it!
I changed the environement variable too manually!
What is weird is that this was the starting setting but I probably missed something ...
in gpucoderSetup all is OK & in coder.checkGpuInstall it returns :
gpu: 1
cuda: 1
cudnn: 1
tensorrt: 0
basiccodegen: 1
basiccodeexec: 1
deepcodegen: 0
deepcodeexec: 0
tensorrtdatatype: 0
profiling: 0
Why does it give me profiling: 0 ?
When I run :
cfg = coder.gpuConfig('exe');
cfg.GpuConfig.MallocMode = 'discrete';
gpucoder.profile('tvd_sim2_MEX',ARGS{1},'CodegenConfig',cfg,...
'CodegenArguments','-d profilingdir','Threshold',0.001);
it works but now I have a new problem:
nvprof.exe stopped working
UnknownServerPort_Diagnostics - 0
UnknownServerPort_Diagnostics - 1
UnknownServerPort_Diagnostics - 2
Error using gpucoder.profile (line 41)
Could not parse server port number from application output:
To manually test launching the executable run the command line:
C:\Users\redmello\Documents\MATLAB\TEMP\Prof_Out_Pattern\profilingdir\sil\tvd_sim2_MEX.exe -port 0
-blocking 1.
---
mex -setup
MEX configured to use 'Microsoft Visual C++ 2019 (C)' for C language compilation.
C:\Windows\system32>nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Wed_Oct_23_19:32:27_Pacific_Daylight_Time_2019
Cuda compilation tools, release 10.2, V10.2.89
SOLVED adding :
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\CUPTI\lib64
to PATH environement variable.
But now I have a new problem running:
cfg = coder.gpuConfig('exe');
cfg.GpuConfig.MallocMode = 'discrete';
gpucoder.profile('tvd_sim2_MEX',ARGS{1},'CodegenConfig',cfg,...
'CodegenArguments','-d profilingdir','Threshold',0.001);
I get error:
Error using gpucoder.profile (line 41)
Incorrect class for expression 'x': expected 'double' but found 'coder.PrimitiveType'.
What to do?
coder.checkGpuInstall by default does not do any profiling checks. To perform these checks, you need to set the Profiling property of the coder.gpuEnvConfig object to true before passing the config to coder.checkGpuInstall.
Since your original question was resolved, can you please create a new question or create a technical support ticket for your follow-up question?
Sure!
Thanks!

Sign in to comment.

 Accepted Answer

Justin Hontz
Justin Hontz on 2 Nov 2022
The issue was that the NVTOOLSEXT_PATH environment variable was set to the wrong value.

More Answers (0)

Categories

Find more on Get Started with GPU Coder in Help Center and File Exchange

Products

Release

R2020b

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!