当前位置: 代码网 > it编程>编程语言>C/C++ > 配置安装MatConvNet: Matlab2022b+Visual Studio 2017社区版+CUDA11.0+cuDNN

配置安装MatConvNet: Matlab2022b+Visual Studio 2017社区版+CUDA11.0+cuDNN

2024年08月03日 C/C++ 我要评论
配置安装MatConvNet:本人经验,Matlab2022b,CUDA,cuDNN版本


前言


一、确定cuda驱动版本

cuda只能安装在比cuda驱动版本低的系统上,查看自己电脑cuda驱动:
通过nvidia的控制面板(系统信息),查看到nvcuda64.dll的版本为11.7.102,表示只能安装比11.7更低版本的cuda,例如cuda11.2,cuda11.0等
在这里插入图片描述

在这里插入图片描述

二、安装vs2017社区版

可以自行搜索资源安装,社区版很好装,只要确认安装的时候选择了使用c++的桌面开发

我的安装路径:d:\microsoft visual studio\2017\community

三、安装cuda 11.0

1.cuda与matlab版本对应

cuda版本要和所使用的matlab的版本一致,cuda与matlab的版本对应关系为


  • 下表来源于:
    https://ww2.mathworks.cn/help/releases/r2021b/parallel-computing/gpu-support-by-release.html
    表头的cc表示gpu的算力
    在这里插入图片描述

  • 下图来源于:https://ww2.mathworks.cn/help/releases/r2022b/parallel-computing/gpu-computing-requirements.html
    在这里插入图片描述

\quad 可以看出,cuda版本与matlab版本正相关,且r2022b支持算力为3.5到8.x,故使用cuda 11.0+matlab 2022b


cuda的下载地址为:https://developer.nvidia.com/cuda-11-0-2-download-archive.

选择cuda11.0版本,local 模式,总共约2.xgb下载完成后默认安装路径,默认全选,安装。我的对应版本:cuda_11.0.2_451.48_win10

2. cuda算力测试

安装完成后,在cmd中,输入如下命令,运行devicequery.exe程序,查看电脑算力(这个exe是安装cuda成功后自身创建的,可以在资源管理器中找到):

cd c:\program files\nvidia gpu computing toolkit\cuda\v11.0\extras\demo_suite
c:\program files\nvidia gpu computing toolkit\cuda\v11.0\extras\demo_suite\devicequery.exe

在这里插入图片描述
在这里插入图片描述
可以看出我的电脑是7.5的算力,算力要和对应的matlab匹配才可以安装matlab。

四、安装matlab 2022b

matlab有很多种安装方法:

  • 如果学校购买了matlab账号的话,可以直接在matlab的官网,mathworks使用学校的邮箱注册账号,然后安装正版matlab
  • 其他的话可以使用微信公众号搜索公众号,进行安装,多余的不说了…

安装时可以选择自己想要的工具包,没必要全部安装

五、安装cudnn

1.cudnn版本问题

在vs 2017,cuda 11.0,matlab 2022b安装好之后,先进行 vs与matalab的适配 测试:
在matlab命令行中输入

mex -setup

出现如下结果即表示vs与matlab配适成功:
在这里插入图片描述


在测试好 vs 2017 与matlab 2022b 适配没问题后,着手cuda与cudnn模块的安装:cudnn为cuda平台下的转为神经网络设计的加速模块,这里要注意,cuda与cudnn是存在着版本对应关系的,

关系(cudnn下载地址)如下:https://developer.nvidia.com/rdp/cudnn-archive


在这里插入图片描述

但是我在实践中,发现这种关系不可靠,按照给的建议安装,没有成功过如果安装了适配于 for cuda 11.0 版本的cudnn的话,会导致matconvnet一直报出如下错误,即使在后面改代码步骤中全部改好,也会报错。都是cudnn的问题,不要使用推荐的for cudnn !!

在这里插入图片描述

如果要验证的话,可以在安装matconvnet gpu版本的时候,不使用‘enablecudnn’仅为:

vl_compilenn('enablegpu',true,'cudaroot','c:\program files\nvidia gpu computing toolkit\cuda\v11.0','cudamethod' ,'nvcc' ,'debug',true)

若不使用cudnn,不报错即为cudnn的问题导致的报错!!!

2.推荐cudnn

\quad 看不懂上面写的也没关系,只要记住,vs2017社区版+cuda11.0+matalb2022b,最好使用cudnn7.6.5.32版本,不要看系统的推荐版本。


\quad 按照所述,安装好了cuda11.0 、matlab2022b 、vs2017社区版,下载好了(下载地址见上)cudnn7.6.5.32之后,需要将cudnn配置到cuda上,cuda和cudnn的配置很简单,只需要将解压后的cudnn中的对应文件夹的文件,拷贝到cuda目录下对应文件夹的文件中即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意看文件夹的路径,左侧是cudnn7.6.5.32的东西,拷贝到右侧nvidia gpu computing toolkit(默认路径下的对应文件夹)即可。


拷贝完成后,即将cudnn安装到了cuda上。测试cudnn是否可以运行:
\quad 与第三步查看算力的步骤相同,只需将执行的devicequery.exe换成bandwidthtest.exe即可,若devicequery.exe和bandwidthtest.exe结果都是pass则cuda与cudnn安装成功,但并不代表可以成功安装matconvnet。

六、安装matconvnet

1.包含文件夹

在确认如文章所述,安装了cuda11.0、matlab2022b、vs2017社区版和 cudnn7.6.5.32后,最后一步是安装matconvnet。

下载地址:https://www.vlfeat.org/matconvnet/

我下载的是:matconvnet-1.0-beta25.tar,这个版本高低不影响其他的。

将 matconvnet-1.0-beta25.tar 解压后,得到的文件夹只要内部的文件夹即可:

在这里插入图片描述


上截图中的蓝色框选的文件夹暂且称为 【matconvnet】

  • 在【matconvnet】中创建一个【local】文件夹,与其内部【matlab】文件夹同级
  • 将【cudnn7.6.5.32】文件(解压的cudnn文件,下有lib,include,bin三个文件夹)放在【local】文件夹中
  • 将【matconvnet】文件夹放到【d:\program files\matlab\r2022b\toolbox】下

得到的最终结果逐级展示如下:


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.编译

1.用matlab,cd到刚刚放到toolbox的【matconvnet】文件中

2.使用matlab中的设置路径,将【matconvnet】文件中的【matlab】文件夹添加并包含子文件夹

2.1 cpu版本

\quad 在matlab中,直接打开【matconvnet】文件中的【matlab】文件夹里的 vl_compilenn.m 点击运行(会自动使用vs2017 c++编译) \quad 不知道位置的看我编辑器的路径

在这里插入图片描述
\quad 运行出错(嘿嘿),改正的地方:

  • 647行cl_path改为你自己的vs里面的cl.exe,我的路径如下
    在这里插入图片描述
  • 将359行注释掉,改成图中360行
    在这里插入图片描述
  • 其他的问题忘记了,都好改,cpu版本的好装,遇到其他的自行查找

再点击运行一次,成功编译cpu版本

成功编译完cpu版本后,在【matconvnet\matlab\】文件下,会出现一个【mex】文件,这就是编译生成的文件

把【toolbox\matconvnet\local\cudnn\bin】下的cudnn64_7.dll文件,拷贝到生成的【mex】中

2.2 gpu版本

需要先编译cpu版本的才行。接2.1,在命令行中输入:

vl_compilenn('enablegpu',true,				%支持cuda
'cudaroot','c:\program files\nvidia gpu computing toolkit\cuda\v11.0', %你的cuda路径
'cudamethod' ,'nvcc',	
'enablecudnn',true,	%支持cudnn
'cudnnroot','d:\program files\matlab\r2022b\toolbox\matconvnet-cudnn7.6.5.32\local\cudnn7.6.5.32',	%你的cudnn路径
'debug',true)  %要在debug模式下,不然会报错

enter等待即可成功运行

测试,本文采用的是论文中的例子代码,尝试运行

>>vl_setupnn     %在【matconvnet\matlab\】下,运行,以免会无法识别 vl_nncon函数
>>main_demo  %我的一个论文中下载的例子

结果在这里插入图片描述
在这里插入图片描述

成功!!!!!!


ps:试验品(呜~~)
在这里插入图片描述

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com