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


前言

注:这是我按照自己的版本需求进行安装的
不保证其他版本一定可行
本文不再介绍各个软件的功能及用途,可自行查阅
安装的版本(流程)是:

  • Visual Studio 2017社区版:提供MatConvNet的C++编译支持
  • CUDA 11.0:提供GPU加速
  • cudNN 7.6.5.32:提供GPU计算加速
  • MATLAB2022b:使用MatConvNet

一、确定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:试验品(呜~~)
在这里插入图片描述

  • 26
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值