关闭

linux配置matconvnet(GPU support)

1496人阅读 评论(0) 收藏 举报
分类:

from http://blog.csdn.net/xiangych/article/details/49046169

ps:个人实验,仅供参考


硬件:

1、Intel(R) Xeon(R) E5-2620v2 2.10GHz 12core

2、NVIDIA Quadro K2000 显卡compute capability 2.0及以上可使用matconvnet GPU加速

3、RAM 16GB

环境:

1、fedora17 x86_64

2、cuda 7.5

3、matlab2015a

4、matconvnet 1.0 beta16

5、cudnn 6.5 v2


一、安装fedora17

试过很多linux版本,Fedora17配置起来比较简单。主要原因是matconvnet在编译时需要使用gcc4.7,其他版本可能导致编译失败。

Fedora17 x86_64下载地址:http://archives.fedoraproject.org/pub/archive/fedora/linux/releases/17/Fedora/x86_64/iso/

安装过程中注意选择software development

二、安装cuda和Nvidia显卡驱动

1、安装所需依赖项(如果在安装Fedora17时选择的是software development这些依赖是安装好的)

sudo rpm -q gcc kernel-headers kernel-devel  查看是否安装gcc、kernel-headers、kernel-devel

sudo yum install gcc kernel-headers kernel-devel联网情况下可以使用yum命令安装依赖

sudo rpm -ivh xxx.rpm 使用下载好的rpm安装包安装依赖

2、禁用nvidia第三方驱动nouveau,启用nvidia驱动

sudo vi /etc/modprobe.d/blacklist.conf 修改blacklist

添加blacklist nouveau 禁用nouveau

找到blacklist nvidia这一行删除或注释掉(在前面添加#)

vi编辑器的一些操作:底行模式下按i进行输入,esc返回底行模式,:wq写入文件并退出。不懂的找度娘。

3、重建initramfs

sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak备份initramfs文件

sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)创建initramfs文件

操作错误可能会导致系统无法启动,可以放入系统盘进入终端模式通过备份还原initramfs文件,再重复步骤3

4、文本模式开机

ln -sf /lib/systemd/system/multi_user.target /etc/systemd/system/default.target

不同发布版的linux设置文本模式开机的方法不同,这个命令在Fedora17下可用。

5、重启电脑

lsmod|grep nouveau 确保nouveau没有加载(没有任何输出信息)

6、安装nvidia驱动和cuda

安装cuda时会提示你是否安装兼容驱动,不过cuda自带的兼容驱动可能会导致电脑重启无法进入图形界面,建议下载最新的nvidia驱动。

可以先安装cuda在安装nvidia驱动,这样可以避免安装cuda自带的兼容驱动。

具体安装执行nvidia官网下载的.run 文件即可,例如:sudo XXX.run

cuda7.5下载地址:https://developer.nvidia.com/cuda-downloads

nvidia驱动下载地址:http://www.nvidia.cn/Download/index.aspx?lang=cn

7、添加系统变量

sudo vi ~/.bashrc 修改bashrc文件

添加export PATH=$PATH:/usr/local/cuda-7.5/bin

添加export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-7.5/lib64

source ~/.bashrc 使修改立即生效

具体添加内容在cuda安装完成后会有提示,修改bashrc文件要谨慎,操作错误会导致系统命令不能使用。

8、图形模式开机

ln -sf /lib/systemd/system/graphic.target /etc/systemd/system/default.target

9、重启电脑

nvcc -V 查看nvcc编译器信息

如果操作成功则cuda安装成功,如果不成功可查看/usr/local路径下是否安装上cuda,确认cuda已经安装后检查系统变量是否添加正确。

10、测试cuda sample

如果在安装过程中选择安装了cuda sample,默认会在安装cuda的用户的用户文件夹(~/ 目录)下生成NVIDIA_CUDA-7.5_Sample。

进入目录执行make命令进行编译。编译过程中可能会提示缺少lib,需要安装相应lib。大部分缺少的lib可在安装盘的package目录下找到,比如:缺少lglut可以找到free-glut的rpm安装包。

编译成功后会生成bin目录。

三、安装matlab

下载matlab的安装包进行安装就可以,不多做介绍了。

安装matlab后创建启动器的方法:

sudo gedit /usr/share/applications/matlab.desktop

[Desktop Entry]

Name=Matlab2015a

Comment=Matlab2015a

Exec=/usr/local/MATLAB/MATLAB_Production_Server/R2015a/bin/matlab -desktop添加matlab的执行路径,-desktop不能缺少。

Icon=

Terminal=false

Type=Application

Categories=Application

四、安装matconvnet

下载matconvnet:http://www.vlfeat.org/matconvnet/

安装过程参考:http://www.vlfeat.org/matconvnet/install/

1)添加路径

解压matconvnet,打开matlab进入matconvnet目录下执行:run matlab/vl_setupnn

2)编译matconvnet

vl_compilenn('verbose',1)

3)编译GPU支持

matlab与建议使用的cuda toolkit


如果使用的是上表中对应matlab版本的cuda可直接执行:vl_compilenn('enableGpu',true)

否则在编译GPU支持时需要在参数中写入cuda路径。

比如我使用过的是matlab2015a+cuda7.5,编译命令为:

vl_compilenn('enableGpu',true,...

'cudaRoot','/usr/local/cuda-7.5',...

'cudaMethod','nvcc')

五、安装cudnn

下载cudnn:https://developer.nvidia.com/cudnn

需要先申请注册,通常会在4小时内收到邮件回复,最多不超过两天。

安装时解压cudnn并在系统环境中添加LD_LIBRARY_PATH即可。

比如:

把cudnn拷贝到cuda同一目录下命名为cudnn-6.5,即/usr/local/cudnn-6.5

编辑bashrc:sudo vi ~/.bashrc

修改LD_LIBRARY_PATH:LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cudnn-6.5

使修改生效:source ~/.bashrc

重新编译matconvnet

以我的实验环境为例,在matlab下执行命令:

vl_compilenn('enableGpu',true,...

'cudaRoot','/usr/local/cuda-7.5',...

'cudaMethod','nvcc',...

'enableCudnn','true',...

'cudnnRoot','/usr/local/cudnn-6.5')

编译过程中若报错提示找不到libcudnn,可能原因是cudnn的librarypath没有添加生效。

六、测试

执行vl_testnn('gpu',true)进行测试。

如果是64位系统可能会报错,参考https://github.com/vlfeat/matconvnet/issues/246和https://github.com/vlfeat/matconvnet/commit/dc9b5755a0d9335f8814e9a878bc3ab0f8fe09ee

修改vl_test_nnlayers.m文件。


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10780次
    • 积分:164
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:29篇
    • 译文:0篇
    • 评论:1条
    文章存档
    最新评论