MatConvNet error on vl_compilenn on GPU
Mostrar comentarios más antiguos
I have
- Matlab R2020a on win10_x64 OS
- Visual Studio 2019
- Cuda 11.1, the latest cudnn
- matconvnet-1.0-beta25
I am trying to compile MatConvNet with the following command
vl_compilenn('enableGpu', true, 'cudaMethod', 'nvcc', ...
'cudaRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1', ...
'enableCudnn', true, 'cudnnRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1');
And getting an error even after following some suggestions from the users with the same problem. I have tried changing cl_path to the path where cl.exe is located and set -O to -O0 in the vl_compilenn. Now, here is my error
E:\Matlab\R2020a\matconvnet-1.0-beta25\matlab\src\bits\datacu.hpp(89): error: identifier "cudnnConvolutionFwdPreference_t" is undefined
E:\Matlab\R2020a\matconvnet-1.0-beta25\matlab\src\bits\datacu.hpp(94): error: identifier "cudnnConvolutionBwdFilterPreference_t" is undefined
E:\Matlab\R2020a\matconvnet-1.0-beta25\matlab\src\bits\datacu.hpp(99): error: identifier "cudnnConvolutionBwdDataPreference_t" is undefined
E:\Matlab\R2020a\matconvnet-1.0-beta25\matlab\src\bits\datacu.hpp(141): error: identifier "cudnnConvolutionFwdPreference_t" is undefined
E:\Matlab\R2020a\matconvnet-1.0-beta25\matlab\src\bits\datacu.hpp(147): error: identifier "cudnnConvolutionBwdFilterPreference_t" is undefined
E:\Matlab\R2020a\matconvnet-1.0-beta25\matlab\src\bits\datacu.hpp(153): error: identifier "cudnnConvolutionBwdDataPreference_t" is undefined
6 errors detected in the compilation of "E:/Matlab/R2020a/matconvnet-1.0-beta25/matlab/src/bits/data.cu".
nvcc warning : The 'compute_35', 'compute_37', 'compute_50', 'sm_35', 'sm_37' and 'sm_50' architectures are deprecated, and may be removed in a future release (Use -Wno-deprecated-gpu-targets to suppress warning).
nvcc warning : The -std=c++11 flag is not supported with the configured host compiler. Flag will be ignored.
data.cu
Error using vl_compilenn>nvcc_compile (line 615)
Command "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\bin\nvcc" -c -o
"E:\Matlab\R2020a\matconvnet-1.0-beta25\matlab\mex\.build\bits\data.obj"
"E:\Matlab\R2020a\matconvnet-1.0-beta25\matlab\src\bits\data.cu" -DENABLE_GPU -DENABLE_DOUBLE
-DENABLE_CUDNN -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\include" -O0 -DNDEBUG
-D_FORCE_INLINES --std=c++11 -I"E:\Matlab\R2020a\extern\include"
-I"E:\Matlab\R2020a\toolbox\parallel\gpu\extern\include"
-gencode=arch=compute_50,code=\"sm_50,compute_50\" --compiler-options=/MD
--compiler-bindir="C:\Program Files (x86)\Microsoft Visual
Studio\2019\Community\VC\Tools\MSVC\14.27.29110\bin\Hostx64\x64" failed.
Error in vl_compilenn (line 487)
nvcc_compile(opts, srcs{i}, objfile, flags) ;
Please, suggest what can I do to avoid this problem
5 comentarios
E
el 5 de En. de 2021
Use cuda 10.1 and cudnn 7.
Cudnn 8 made changes that break older versions.
sonic sonic
el 13 de Jun. de 2021
I encounter the same problem.
sonic sonic
el 13 de Jun. de 2021
This is the solution to the problem
https://blog.csdn.net/qq_17783559/article/details/105474663
Eduardo de Jesus Reis
el 11 de Jul. de 2024
What exactly would this solution be? I can't understand chinese and I couldn't get the translator to work on that page.
Umar
el 11 de Jul. de 2024
Hi Suzy,
You need to ensure that the cuDNN headers and libraries are correctly specified in the compilation command. Here is an updated command that includes the necessary cuDNN flags:
vl_compilenn('enableGpu', true, 'cudaMethod', 'nvcc', ... 'cudaRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1', ... 'enableCudnn', true, 'cudnnRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1', ... 'cudaFlags', {'-I"C:\path\to\cudnn\include"', '-L"C:\path\to\cudnn\lib"', '-lcudnn'});
By adding the cudaFlags parameter with the appropriate paths to cuDNN include and library directories, you ensure that the compiler can find the necessary definitions for cuDNN preferences, resolving the undefined identifier errors.
Respuestas (0)
Categorías
Más información sobre GPU Computing en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!