概述
初始配置环境:
电脑:联想R9000K Win11
显卡:3080
Matlab 2021b
Visual Studio 2017 Professional
VS安装位置:D:VisualStudio2017
CUDA:cuda_11.3.1_465.89_win10
CUDA安装位置:D:CUDANVIDIA GPU Computing ToolKitv11.3
Cudnn:cudnn-11.3-windows-x64-v8.2.1.32
Matconvnet:matconvnet-1.0-beta25
配置过程中,关于mex设置问题均按照网上的方法解决了,但始终报如下错误:
警告: Setting the 'MW_NVCC_PATH' environment variable to 'D:CUDANVIDIA GPU Computing ToolKitv11.3binnvcc'
> 位置:vl_compilenn>activate_nvcc (第 758 行)
位置: vl_compilenn (第 299 行)
警告: CL.EXE not found in PATH. Trying to guess out of mex setup.
> 位置:vl_compilenn>check_clpath (第 656 行)
位置: vl_compilenn (第 429 行)
用于 x64 的 Microsoft (R) C/C++ 优化编译器 19.16.27045 版
版权所有(C) Microsoft Corporation。保留所有权利。
用法: cl [ 选项... ] 文件名... [ /link 链接选项... ]
Location of cl.exe (D:VisualStudio2017IDEVCToolsMSVC14.16.27023binHostx64x64) successfully added to your PATH.
错误使用 vl_compilenn>nvcc_compile (第 620 行)
Command "D:CUDANVIDIA GPU Computing ToolKitv11.3binnvcc" -c -o
"E:Matlab Projects 0 MatConvNetmatconvnet-1.0-beta25matlabmex.buildbitsdata.obj"
"E:Matlab Projects 0 MatConvNetmatconvnet-1.0-beta25matlabsrcbitsdata.cu" -DENABLE_GPU -DENABLE_DOUBLE -DENABLE_CUDNN -I".localcudnninclude" -g
-DDEBUG -D_FORCE_INLINES --std=c++11
-I"D:Matlab 2021bexterninclude"
-I"D:Matlab 2021btoolboxparallelgpuexterninclude"
-gencode=arch=compute_86,code="sm_86,compute_86"
--compiler-options=/MD
--compiler-bindir="D:VisualStudio2017IDEVCToolsMSVC14.16.27023binHostx64"
failed.
出错 vl_compilenn (第 490 行)
nvcc_compile(opts, srcs{i}, objfile, flags) ;
网上找了很多参考资料均无法解决,后参考如下两篇文章,发现问题:
MatConvNet安装问题_White Jiang的博客-CSDN博客
另一篇由于从窗口太多关闭了,没找到,主要的参考价值为一条评论:Matconvnet最高支持的CUDA版本为10.2,但这个信息我未能求证(有兴趣的可以求证后将信息分享一下),随后,我将CUDA和Cudnn的版本进行了更换,更新后的环境配置如下:
电脑:联想R9000K Win11
显卡:3080
Matlab 2021b
Visual Studio 2017 Professional
VS安装位置:D:VisualStudio2017
CUDA:cuda_10.1.243_426.00_win10
CUDA安装位置:D:CUDAv10.1NVIDIA GPU Computing Toolkit
Cudnn:cudnn-10.1-windows10-x64-v8.0.5.39
Matconvnet:matconvnet-1.0-beta25
随后编译过程中出现如下问题:
错误使用 mex
'E:Matlab Projects 0_MatConvNetmatconvnet-1.0-beta25matlabmexvl_nnconv.mexw64' 使用了
'-R2018a' 进行编译并与 '-R2017b' 链接在一起。 有关详细信息,请参阅 MEX 文件使用了一个 API 进行编译并与另一个
API 链接在一起。
出错 vl_compilenn>mex_link (第 632 行)
mex(args{:}) ;
出错 vl_compilenn (第 503 行)
mex_link(opts, objs, flags.mex_dir, flags) ;
参考如下文章:MatConvNet compiled with '-R2018a' and linked with '-R2017b'_u014292102的博客-CSDN博客
随后编译:
编译指令: vl_compilenn('enableGpu',true);
成功编译通过。
接下来使用Cudnn编译,即设置opts.enableCudnn = true,完整设置如下:
opts.continue = false; % false
opts.enableGpu = true; % false
opts.enableImreadJpeg = true;
opts.enableCudnn = true; % false
opts.enableDouble = true;
opts.imageLibrary = [] ;
opts.imageLibraryCompileFlags = {} ;
opts.imageLibraryLinkFlags = [] ;
opts.verbose = 0;
opts.debug = false;
opts.cudaMethod = []; % []
opts.cudaRoot = 'D:CUDAv10.1NVIDIA GPU Computing Toolkit' ;
opts.cudaArch = [] ;
opts.defCudaArch = [...
'-gencode=arch=compute_86,code="sm_86,compute_86" '];
opts.mexConfig = '' ;
opts.mexCudaConfig = '' ;
opts.cudnnRoot = 'D:CUDAv10.1NVIDIA GPU Computing Toolkit' ;
opts.preCompileFn = [] ;
opts = vl_argparse(opts, varargin);
报错:
e:matlab projects 0_matconvnetmatconvnet-1.0-beta25matlabsrcbitsdatacu.hpp(89): error: identifier "cudnnConvolutionFwdPreference_t" is undefined
e:matlab projects 0_matconvnetmatconvnet-1.0-beta25matlabsrcbitsdatacu.hpp(94): error: identifier "cudnnConvolutionBwdFilterPreference_t" is undefined
e:matlab projects 0_matconvnetmatconvnet-1.0-beta25matlabsrcbitsdatacu.hpp(99): error: identifier "cudnnConvolutionBwdDataPreference_t" is undefined
e:matlab projects 0_matconvnetmatconvnet-1.0-beta25matlabsrcbitsdatacu.hpp(141): error: identifier "cudnnConvolutionFwdPreference_t" is undefined
e:matlab projects 0_matconvnetmatconvnet-1.0-beta25matlabsrcbitsdatacu.hpp(147): error: identifier "cudnnConvolutionBwdFilterPreference_t" is undefined
e:matlab projects 0_matconvnetmatconvnet-1.0-beta25matlabsrcbitsdatacu.hpp(153): error: identifier "cudnnConvolutionBwdDataPreference_t" is undefined
6 errors detected in the compilation of "C:/Users/张小祥/AppData/Local/Temp/tmpxft_00004a84_00000000-10_data.cpp1.ii".
nvcc warning : The -std=c++11 flag is not supported with the configured host compiler. Flag will be ignored.
data.cu
错误使用 vl_compilenn>nvcc_compile (第 620 行)
Command "D:CUDAv10.1NVIDIA GPU Computing Toolkitbinnvcc" -c -o "E:Matlab
Projects 0_MatConvNetmatconvnet-1.0-beta25matlabmex.buildbitsdata.obj" "E:Matlab
Projects 0_MatConvNetmatconvnet-1.0-beta25matlabsrcbitsdata.cu" -DENABLE_GPU -DENABLE_DOUBLE -DENABLE_CUDNN -O3 -DNDEBUG
-D_FORCE_INLINES --std=c++11 -I"D:Matlab2021bexterninclude" -I"D:Matlab2021btoolboxparallelgpuexterninclude"
-gencode=arch=compute_75,code="sm_75,compute_75" --compiler-options=/MD
--compiler-bindir="D:VisualStudio2017IDEVCToolsMSVC14.16.27023binHostx64x64" failed.
出错 vl_compilenn (第 490 行)
nvcc_compile(opts, srcs{i}, objfile, flags) ;
参考如下链接:https://ww2.mathworks.cn/matlabcentral/answers/602116-matconvnet-error-on-vl_compilenn-on-gpu
主要问题是cudnn版本的问题:
随后参考链接:Windows 10系统下MATLAB2018b调用CUDA 10.1和NVCC_博博有个大大大的Dream-CSDN博客将cudnn的版本更换为7版本,随后问题解决,编译顺利通过。
最后
以上就是称心外套为你收集整理的Win11配置Matconvnet错误使用 vl_compilenn>nvcc_compile和datacu.hpp undefined的问题的全部内容,希望文章能够帮你解决Win11配置Matconvnet错误使用 vl_compilenn>nvcc_compile和datacu.hpp undefined的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复