【代码调试】GPU配置MatConvNet(ECO代码)

ECO配置GPU运行

win10+matlab2020a+vs2015+cuda10.0

运行GPU版本的ECO出现以下错误

发现是GPU配置MatConvNet问题,所以要在matlab配置一下MatConvNet用gpu运行
运行GPU版本的ECO出现以下错误
参考博客:https://blog.youkuaiyun.com/ms961516792/article/details/82762973
https://blog.youkuaiyun.com/youshaoduo/article/details/80791110
https://blog.youkuaiyun.com/fhcfhc1112/article/details/83547306
总结如下:在install.m文件30行改为下图所示运行,也可以改好之后直接在命令行运行这段代码,或者添加一个.m文件把代码复制进去运行.m文件

在这里插入图片描述
代码如下(需要电脑上安装CUDA和cudnn,CUDA就不说了一般电脑都有,路径参考我的换一下就ok,安装一下cudnn,按照上述博客复制到代码external_libs/matconvnet新建local文件夹下,将解压后三个文件夹下的.h文件都分别复制到cuda对应命名的文件夹下一份)

 vl_compilenn('enableGpu', true,'Debug',true',... 
                       'cudaRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0', ...%你安装的cuda地址
                       'cudaMethod', 'nvcc', ...
                       'enableCudnn', true, ...
                       'cudnnRoot', 'C:\Users\Admin\Desktop\matlab code\ECO-master\external_libs\matconvnet\local\cuddn') %你安装的cudnn地址

在命令行运行
在这里插入图片描述

发现还是出错博客上一搜,说是配置MatConvNet经典错误,

错误使用 vl_compilenn>nvcc_compile (line 615)

错误使用 vl_compilenn>nvcc_compile (line 615)
Command "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin\nvcc" -c -o "C:\Users\Admin\Desktop\matlabcode\新建文件
夹\ECO-master\external_libs\matconvnet\matlab\mex\.build\bits\datamex.obj" "C:\Users\Admin\Desktop\matlabcode\新建文件
夹\ECO-master\external_libs\matconvnet\matlab\src\bits\datamex.cu" -DENABLE_GPU -DENABLE_DOUBLE -DENABLE_CUDNN -I"local\cuddn\include" -g -DDEBUG
-D_FORCE_INLINES --std=c++11 -I"C:\Program Files\Polyspace\R2020a\extern\include" -I"C:\Program Files\Polyspace\R2020a\toolbox\distcomp\gpu\extern\include"
-gencode=arch=compute_70,code=\"sm_70,compute_70\"  --compiler-options=/MD --compiler-bindir="C:\software\Microsoft Visual Studio 14.0\VC\..\VC\bin"  failed.

出错 vl_compilenn (line 487)
      nvcc_compile(opts, srcs{i}, objfile, flags) ;

在这里插入图片描述
看了几十篇博客搞了好久都没解决这个问题,什么加’Debug’,true’,在vs/vc加bin或者加src,总之尝试了很多快放弃了,突然发现了一篇博客,说是这里的问题
在这里插入图片描述
(原话)
错误原因:Matlab R2019b的配置文件所在路径为:D:\Softwares\MATLAB\toolbox\parallel\gpu\extern\src\mex\win64;

mxGPUArray.h所在路径为:D:\Softwares\MATLAB\toolbox\parallel\gpu\extern\include\gpu;

而编译vl_compilenn的默认路径为:D:\Softwares\MATLAB\toolbox\distcomp\gpu\extern\src\mex\win64;

解决方法:将vl_compilenn.m的第367行的distcomp改为parallel(vl_compilenn.m在matconvnet\matlab文件夹下)
在这里插入图片描述
原文链接:https://blog.youkuaiyun.com/qq_17783559/article/details/105474663
试了之后发现可以,终于解决了。

错误使用mex

然后就出现了如下图的错误,

错误使用 mex
'C:\Users\Admin\Desktop\matlabcode\ECO-master\external_libs\matconvnet\matlab\mex\vl_nnconv.mexw64' 使用了 '-R2018a' 进行编译并
与 '-R2017b' 链接在一起。 有关详细信息,请参阅 MEX 文件使用了一个 API 进行编译并与另一个 API 链接在一起。
出错 vl_compilenn>mex_link (line 627)
mex(args{:}) ;
出错 vl_compilenn (line 500)
  mex_link(opts, objs, flags.mex_dir, flags) ;

在这里插入图片描述
参考如下博客:Matlab编译安装MatConvnet流程及问题解决里边的第5个错误,在vl_compilenn.m文件下以下图所示方式解决。
在这里插入图片描述
在这里插入图片描述
终于解决完毕啦:运行gpu版本成功!!!!
在这里插入图片描述
希望对大家有所帮助吧,调个代码有点费人。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值