安装流程
前言
一、确定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:试验品(呜~~)
发表评论