windows下编译Matconvnet的方法(CPU和GPU)

转载 2016年08月30日 16:44:04

今天配置了Matconvnet,使用的是http://www.voidcn.com/blog/Hungryof/article/p-5047632.html这里面介绍的方法,转载做个备份。

配置的时候注意Matconvnet的版本与Cudnn的版本,如果版本太老,可能编译时会出错。


matconvnet

本人采用的matconvnet是MatConvNet 1.0-beta18. 版本到时没太大关系,反正自己去官网下就行 
http://www.vlfeat.org/matconvnet/

操作系统与cuda

采用了win7 64bit,VS2013,MATLAB2015a, cuda7.5 
还是那句话,要想让MATLAB2015a用vs2013的c++编译器,要先安装MATLAB,再安装vs2013。其他版本对应可以去MATLAB官方上找。 
cuda的话,可以去下载最高版本的。下载地址:https://developer.nvidia.com/cuda-downloads 。首先你的显卡得是INVIDA的,并且需要compute compability>2.0. 可以通过MATLAB输入:gpuDevice() 来确定你的显卡 。

值得注意的是,实验室的我的台式机显卡是610M。。compability是2.1,结果gpu编译时,出现了compute_21错误。。找了好久才明白原来是610的显卡只能支持到cuda5.5.。。简单来说还是尽量好点的显卡吧。 
安装时cuda默认安装吧,方便直接默认找。

CPU编译

两个命令: 
mex -setup 
vl_compilenn 
就可以了。就这么酷炫,编译完之后会多了一个mex文件夹,在matlab文件夹下面。


这里的mex文件夹下就是以后要调用的程序,有 


编译完之后应该有除了cudnn64_4.dll外的mexw64文件,可以看出,这些文件主要是vl_conv,vl_imreadjpeg等。这些文件是由cuda C写的,并不是由MATLAB语言写的,格式是 xx.cu。然后通过mex将这些.cu文件编译成可以由MATLAB调用的函数,也就是说mexw64就相当于MATLAB的函数文件xx.m一样了。你可以看看MATLAB下面的vl_nnconv.m,可以看到文件里面全部都是注释,这样的话,调用时咋运行的啊。哈哈,原来要先编译,编译好了多了mex文件,调用时是调用mexw64文件啊。这里的cudnn64_4.dll是后面用gpu编译时用到的。

GPU编译

我想说,其实还是有点小麻烦的。首先下载cuda呗,默认安装。

增加cudnn

cudnn是专门针对深度学习的一个加速框架。 
下载地址:http://pan.baidu.com/s/1bil9H8 或是从网上自己找吧。 
然后做2件事: 
1. 建一个local文件夹,然后把cudnn放进去,再复制到matconvnet目录下。


2. 把bin下的cudnn64_4.dll再复制到mex的文件夹下。这一点很重要,否则vl_compilenn即使编译成功,运行时却会出现Invalid 的vl_nnconv.mexw64,可是你一看明明有这个文件啊,并且cpu编译时这个文件也是可以用的,为啥现在就不能了,就是你没有做第二步。

先看看vl_compilenn写了啥

在vl_compilenn中已经对opts的enableGpu等属性进行了初始化。 
这是稍微修改后的,这里改不改我这样的都无所谓的,这是因为,你看看下面有vl_argparse(opts,varargin),这个就是把外面的传入的参数再对opts进行赋值。 


所以 
编译

输入命令:

vl_compilenn('enableGpu',true,'cudaRoot','C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v7.5','cudaMethod','nvcc','enableCudnn','true','cudnnRoot','local/cudnn-rc4')
最后一步 
运程cnn_cifar测试一下效果。
先在matconvnet-1.0根目录下创建data\cifar,把下载的cifar-10-matlab.tar.gz放在此目录,并解压。当然也可以由程序自行下载。
然后找到cnn_cifar后,然后修改opts.gpus 
先看看两幅图的对比吧。。 
CPU组: 
这是用Xeon E3 1231v3(桌面版产品相比,它非常接近Core i7-4770k(3.5-3.9GHz/84W),感觉还是不错的。。),内存32G。然而跑的时候。。 


才390Hz,每秒390张图片的处理速度。。

GPU组: 
由于台式机显卡太弱,,只能用笔记本来了。 
笔记本是 GTX 645m的,用了cudnn_r4,看看到底咋样。。


这么厉害。。竟然800多。。有意思的是,处理速度越来越快,最终问稳定在910!!整整比不错的cpu快了2倍。。并且只是一个低性能入门级显卡。。如果用titan。。 

MatConvNet教程----- Win7下编译和配置详解

Windows7 下安装 MatConvNet 和 CUDA7.5  安装环境: Win7 X64 ,  VS 2013,Matlab 2014Ra, CUDA 7.5.18,MatConvNet 1...
  • zhjm07054115
  • zhjm07054115
  • 2015-11-21 16:07:15
  • 26528

编译MatConvNet(仅CPU版本)

参考文档: http://blog.csdn.net/dlhlsc/article/details/55194111 http://www.vlfeat.org/matconvnet/quick/...
  • u013342586
  • u013342586
  • 2017-03-10 23:21:09
  • 656

windows下编译Matconvnet的方法(CPU和GPU)

今天配置了Matconvnet,使用的是http://www.voidcn.com/blog/Hungryof/article/p-5047632.html这里面介绍的方法,转载做个备份。 配置的时...
  • eagelangel
  • eagelangel
  • 2016-08-30 16:44:04
  • 3655

Matconvnet学习笔记

Introduction to Matconvnet   MatConvNet是实现用于计算机视觉领域的卷积神经网络(CNN)的MATLAB工具箱。自从取得突破性工作以来,CNN在计算机视觉领域有一...
  • Anysky___
  • Anysky___
  • 2016-05-09 21:02:03
  • 31176

MatConvNet CPU版 编译文件

  • 2017年09月08日 09:33
  • 271KB
  • 下载

matconvnet编译

(3)cd > addpath matlab > vl_compilenn (4)vl_compilenn('verbose', 1)(如果是cpu就用这个) (5)vl_compilenn...
  • u011037837
  • u011037837
  • 2016-03-15 21:34:48
  • 654

windows下编译MatConvNet(CPU版)

一、下载Matconvnet 下载网址为http://www.vlfeat.org/matconvnet/,写这篇博客时最新版本为1.0-beta23  二、配置Matlab编译器 输入 mex -s...
  • dlhlSC
  • dlhlSC
  • 2017-02-15 12:40:41
  • 1069

深度学习架构MatConvNet在Windows下的安装编译

运行环境:MATLAB R2014a,Windows 7 64位,GPU GeForce 980Ti,CUDA v7.5,cuDnn v5.1,并安装了Visual Studio 2010用于MATL...
  • yingwong
  • yingwong
  • 2016-10-10 17:34:55
  • 1260

【MatConvNet】配置GPU

参照大神的方法:http://www.th7.cn/system/win/201603/155182.shtml第一步:需要安装cuda、VS2013;cuda默认路径,注意cuda版本和GPU要匹配...
  • u011995719
  • u011995719
  • 2017-01-13 20:17:10
  • 2621

深度学习 3. MatConvNet (CNN)的介绍和下载以及CPU和GPU的安装配置,Matlab2016

MatConvNet (CNN)的介绍和下载以及CPU和GPU的安装配置,Matlab2016
  • qq_20259459
  • qq_20259459
  • 2017-01-05 15:20:35
  • 8206
收藏助手
不良信息举报
您举报文章:windows下编译Matconvnet的方法(CPU和GPU)
举报原因:
原因补充:

(最多只允许输入30个字)