caffe2环境配置:ubuntu16.04 LTS+GTX1070+CUDA8.0+cuDNN8.0+Caffe2

  • 主题
  • 背景
  • 环境
    • 硬件配置
    • 系统
  • 安装步骤
    • 第一步ubuntu系统安装略
    • 第二步CUDA80安装
    • 第三步GTX1070驱动安装
    • 第四步检验驱动和CUDA安装
    • 第五步安装cuDNN
    • 第六步安装Caffe2
  • 参考

主题

caffe2环境配置

背景

搭建一个平台实践机器学习算法;贾扬清博士的盲粉,选择caffe2。

环境

硬件配置

内存:16G
处理器:Intel® Core™ i7-7700 CPU @ 3.60GHz × 8
显卡:GeForce GTX 1070/PCIe/SSE2
硬盘:SSD 240G
其他:台式机,显示器由NVIDIA显卡驱动

系统

操作系统:linux
系统版本:ubuntu16.04 LTS
内核:4.10.0-38-generic
系统类型:x86_64

安装步骤

第一步:ubuntu系统安装,略。

第二步:CUDA8.0安装

CUDA的安装我尝试过两种方法,有大家建议的runfile安装,可以通过交互的文本界面选择不安装显卡驱动,当然了官方也建议以runfile安装,但我最后是通过deb方式安装成功的。

先说我的runfile安装后出现的情况。runfile方式安装成功后(命令行模式下输入”nvcc -V”,有版本输出,而且也填加了需要的环境变量),编译不通过,报的错误是动态库缺失(libcudadevrt和libcudart-static,这两个只是编译停止后报出来的,后续可能会有更多),但是我在文件系统中搜索了这两个库,库是存在的但是是静态库(.a格式而非.so),由于本人对编译不是很精通,就没有将编译命令单独抽出来修改,个人感觉安装不是很成功,所以选择重装。

在runfile之前我就尝试过deb方式安装,但是都没有成功。后来仔细阅读官方说明文档(CUDA_Installation_Guide_Linux,在官网可以下到对应版本的,或者安装完成后在/usr/local/cuda-8.0/doc/pdf中找),发现deb方式也可以选择不安装显卡驱动,而且可以实现选择性的更新,我本人更青睐这种可以更新的安装方式。下图所示为官方文档对deb方式选择性安装的说明截图。

caffe2环境配置:ubuntu16.04 LTS+GTX1070+CUDA8.0+cuDNN8.0+Caffe2_第1张图片

因为我要自己选择安装显卡驱动(跟随deb安装的是最新的390,我想安装低版本稳定的375),所以我的CUDA8.0安装步骤是:

a. 将面向NVIDIA的开源驱动加入黑名单
方法是在‘/etc/modprobe.d/blacklist.conf’中加入如下两行,新建一个nouveau-blacklist.conf文件也可以:

blacklist nouveau
options nouveau modeset=0

b. 然后要输入以下命令更新系统的启动内核

$ sudo update-initramfs -u

可以通过”lsmod | grep nouveau”来查看是否禁用成功。
在NVIDIA官网上选择对应的版本的deb文件,然后命令行进入文件存放路径,输入以下命令

$ sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb //对应自己版本的.deb
$ sudo apt-get update
$ sudo apt-get install cuda-tookit-8-0
$ sudo reboot

CUDA的使用还需要添加环境变量,我的做法是在自己的用户shell启动脚本中添加环境变量

$ vi ~/.bashrc 
//在.bashrc文件中添加语句‘export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}’,并保存
//如果是用runfile安装,还需要添加动态链接库路径,‘export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\ ${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}’
$ source ~/.bashrc //下次启动就不用重新source

第三步GTX1070驱动安装

在浏览一些安装笔记时看到有人说高版本的驱动会存在问题,375问题比较少,所以选择安装375。安装的方式是大家推荐的runfile。

在NVIDIA官网上查找并下载对应系统和显卡型号版本的驱动run文件,然后命令行进入run文件存放路径,输入以下命令

$ sudo service lightdm stop //停止 X server
$ chmod +x NVIDIA-Linux-x86_64-375.66.run //对应自己的版本的.run
$ sudo ./NVIDIA-Linux-x86_64-375.66.run
$ sudo reboot

有很多安装笔记说”sudo ./NVIDIA-Linux-x86_64-375.66.run”的命令应该加三个参数,如下。

$ sudo ./NVIDIA-Linux-x86_64-375.66.run -no-nouveau-check -no-x-check -no-opengl-files

为什么我这里可以不加呢?在此一一说明。
‘-no-nouveau-check’:禁用nouveau的,前期在安装CUDA时已经禁用了
‘-no-x-check’: 命令‘service lightdm stop’已经将Xserver停掉了
‘-no-opengl-files’: 我在CUDA安装说明中看到了原因,说是如果NVIDIA显卡没有用来驱动显示器,那么OpenGL就不应该装,因为会覆盖负责驱动显示器的显卡的OpenGL,导致图形界面出错,也就是大家常见的循环登录问题。我的NVIDIA显卡也用来驱动显示器,所以我可以安装。安装说明的截图如下所示。

caffe2环境配置:ubuntu16.04 LTS+GTX1070+CUDA8.0+cuDNN8.0+Caffe2_第2张图片

运行.run开始安装后NVIDIA Installer会提示几个选择:
a. 是否安装32位兼容库,我选择的是”Yes”。我第一次安装提示说没找到安装的位置,我就在自己的系统上安装了32位的库,在命令行中执行。

$ sudo apt-get install lib32ncurses5 ​
$ sudo apt-get install lib32z1

然后再安装驱动的32位兼容库时就不会找不到安装位置
b. ‘是否安装DKMS包管理器’,我选择”Yes”
c. ‘是否运行nvidia-xconfig’产生xorg.conf配置文件,我选择”Yes”,如果不用NVIDIA显卡来驱动显示,应该选择‘No’
安装完成

第四步:检验驱动和CUDA安装

a. 检验显卡驱动,命令行输入:

$ nvidia-smi

如果安装成功应该打印出显卡的工作信息,如图所示。

caffe2环境配置:ubuntu16.04 LTS+GTX1070+CUDA8.0+cuDNN8.0+Caffe2_第3张图片

b. 检验CUDA安装

$ nvcc -V

安装成功后会打印CUDA的版本信息

c. 编译并测试CUDA例子

$ cuda-install-samples-8.0.sh ./ //用cuda自带的脚本安装例子到当前目录(./)
$ cd NVIDIA_CUDA-8.0_Samples
$ make // 如果编译成功会打印出‘PASS$ cd bin
$ ./deviceQuery //测试驱动正确安装
$ ./bandwidthTest //测试系统和显卡之间的正常通信

两个测试打印的信息如下图所示。

caffe2环境配置:ubuntu16.04 LTS+GTX1070+CUDA8.0+cuDNN8.0+Caffe2_第4张图片

caffe2环境配置:ubuntu16.04 LTS+GTX1070+CUDA8.0+cuDNN8.0+Caffe2_第5张图片

第五步:安装cuDNN

参照Caffe2上的方法

$ CUDNN_URL="http://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz"
$ wget ${CUDNN_URL}
$ sudo tar -xzf cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local
$ rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig

第六步:安装Caffe2

  • 完全按照Caffe2的官方文档安装,官网首页:http://caffe2.ai
    安装文档(ubuntu+源码安装):https://caffe2.ai/docs/getting-started.html?platform=ubuntu&configuration=compile
    注意要添加的环境变量(我是在~/.bashrc中添加的)
export PYTHONPATH=/usr/local:$PYTHONPATH
export PYTHONPATH=$PYTHONPATH:/home/ubuntu/caffe2/build
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
  • 测试Caffe2是否安装成功:
$ cd ~ && python -c 'from caffe2.python import core' 2>/dev/null && echo "Success" || echo "Failure"

成功的话会打印出”Success”

  • 测试样例
$ python -m caffe2.python.operator_test.relu_op_test

如果CUDA安装的有问题,输出的结果会包一个”warning”,意思是例子是在CPU-only的模式下计算的,然后就说明CUDA可能没有安装成功(也可能是显卡的问题,我曾经有一次安装就是驱动和CUDA的测试都通过了,但是 Caffe2的测试样例用的是CPU,没有用到GPU)。

参考

驱动和CUDA安装:http://www.linuxdiyf.com/linux/26370.html
驱动和CUDA安装:http://www.cnblogs.com/devilmaycry812839668/p/6867780.html
驱动和CUDA安装:http://www.cnblogs.com/txg198955/p/5473419.html
ubuntu16.04启动进入text-mode: https://askubuntu.com/questions/870221/booting-into-text-mode-in-16-04
ubuntu16.04安装32位库:http://www.linuxdiyf.com/linux/21656.html

你可能感兴趣的:(DNN模拟器Caffe使用笔记)