主要步骤:
1.安装matconvnet 不同的版本的话其实对应不同的visual studio,这个要根据具体说明来做,然后按照官网上的编译
2.安装cuda和cudnn,下载的安装包去NVIDIA官网上去下载,先安装cuda
双击.exe文件就可以了,默认安装到C:\ProgramFiles\NVIDIA GPU Computing Toolkit目录下,也可以选择自定义安装到其他路径。
等待安装好之后,配置环境变量,右击我的电脑,选择高级系统设置->高级->环境变量,在系统变量中添加如下:
CUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0
CUDA_PATH_V7_5 = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v8.0CUDA_LIB_PATH = %CUDA_PATH%\lib\x64CUDA_BIN_PATH = %CUDA_PATH%\binCUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64
之后,找到系统变量中的path,加入%CUDA_LIB_PATH%;%CUDA_BIN_PATH%;%CUDA_SDK_BIN_PATH%;%CUDA_SDK_LIB_PATH%-----这一段有可能不需要做,可以直接跳过,安装的时候可能直接添加了
现在就可以验证是否正确安装了cuda了,打开cmd,输入nvcc -V
现在想查看一下自己的cuda版本和电脑GPU信息,可以利用deviceQuery.exe,在路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\demo_suite中,点击即可出现。
我遇到了.exe出现闪退的情况,解决方法是
在.exe文件同目录下新建一个txt文档,里面输入如下内容xx.exepause然后退出保存,把后缀txt改为bat然后运行,那个xx就是文件的名字。
然后打开.bat文件运行程序即可。(.bat文件命名随意)
----------------------安装cudnn
现在对应版本的cudnn,比如我的cuda是8.0,cudnn用的是7.0的,版本一定要配套兼容
在英伟达网站 https://developer.nvidia.com/rdp/cudnn-download 下载与cuda对应的库,需要注册一个账号
下载之后解压缩,将.h .lib 和.dll 文件分别拷贝到cuda的include, lib/x64, bin 文件夹
matconvnet安装GPU
mex -setup
mex -setup C++ # 配置VS2015作为C和C++的编译器
# 先编译matconvnet的Cpu版
vl_compilenn() % 生成一系列mex文件,是之后卷积v1_nnconv等要用到的
%编译GPU版本
vl_compilenn('enableGpu', true, ...
'cudaRoot','C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0', ...
'cudaMethod', 'nvcc', 'enableCudnn', true, ...
'cudnnRoot', 'F:\matlab works\sunyi\matconvnet\cudnn');
run vl_setupnn
vl_testnn('gpu',true) # 这不时间比较久,慢慢等。
- 编译的时候会出现的问题
1.25版本的MatConvNet中的vl_compilenn.m文件中在506行增加了这样的判断
if strcmp(arch, 'win64') && opts.enableCudnn
这要求&&符号前后都是逻辑值,所以在运行vl_compilenn函数中'enableCudnn'后面要跟true,而不是跟'true',即编译语句为:
否则会报Operands to the || and && operators must be convertible to logical scalar values的错误。 2017.11.30
vl_compilenn('enableGpu',true,'CudaRoot','/usr/local/cuda','cudaMethod','nvcc')