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 件のコメント

Justin Hontz
Justin Hontz 2022 年 10 月 31 日
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 2022 年 11 月 1 日
編集済み: Emiliano Rosso 2022 年 11 月 1 日
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 .
Emiliano Rosso
Emiliano Rosso 2022 年 11 月 1 日
I'll try to login Admin like....
Justin Hontz
Justin Hontz 2022 年 11 月 1 日
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?
Emiliano Rosso
Emiliano Rosso 2022 年 11 月 2 日
編集済み: Emiliano Rosso 2022 年 11 月 2 日
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
Emiliano Rosso
Emiliano Rosso 2022 年 11 月 2 日
編集済み: Emiliano Rosso 2022 年 11 月 2 日
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?
Justin Hontz
Justin Hontz 2022 年 11 月 2 日
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?
Emiliano Rosso
Emiliano Rosso 2022 年 11 月 2 日
Sure!
Thanks!

サインインしてコメントする。

 採用された回答

Justin Hontz
Justin Hontz 2022 年 11 月 2 日

0 投票

The issue was that the NVTOOLSEXT_PATH environment variable was set to the wrong value.

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeGet Started with GPU Coder についてさらに検索

製品

リリース

R2020b

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by