因为项目需要,准备入坑facebook的detectron目标检测框架。由于目前框架只能在linux+gpu环境下运行,所以准备了以下工作:
先说下我的硬件配置:
i5-6500破铜
华硕gtx 1080ti 显卡
32G ddr4内存
华硕z170主板
主板上有一个hdmi接口,当显示器和这个hdmi接口连接时,核显驱动显示;当显示器和显卡后面的hdmi口连接时,gtx1080驱动显示器。
值得一提的是,我是win7系统用easybcd在硬盘上装了ubuntu16.04,由于i5带核心显卡,所以在安装时我拆掉了gtx1080,然后hdmi线连到主板的插口上安装系统的。不拆显卡直接安装会失败。
话说,核显+独显双核显卡配置的ubuntu装nvidia驱动是个大坑啊,之前折腾我的笔记本i7 4700hq与gtx850M装nvidia驱动那一个心酸,体验了从入门到放弃的全过程。好在现在手头有个台式机器可以继续尝试折腾。
双hdmi口的双显卡驱动安装很简单,一点也不虐心,跟我来吧:
1. 准备工作
Ubuntu16.04系统安装完毕之后,(此时gtx1080显卡还没装回主板上)首先做两个准备工作,一个是更新apt-get的源,可以用清华源:
1/ 在修改source.list前,最好先备份一份
执行备份命令
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old
2/ 执行命令打开source.list文件:
推荐用gedit工具打开,对于新手简单容易上手:
sudo gedit /etc/apt/source.list
3/复制源
把下面的任意一下复制到source.list中去,并删除覆盖原来的文件内容。
# deb cdrom:[Ubuntu 16.04 LTS _Xenial Xerus_ - Release amd64 (20160420.1)]/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security multiverse
4/update命令 ,便更新结束
sudo apt-get update
2. 安装CUDA TOOLKIT
到这一步很多同学就会奇怪了,为什么不先装显卡驱?因为cuda安装过程会默认安装驱动,即使你的机器上面没有独立显卡(此时gtx1080显卡依然没装回主板上)。
前往NVIDIA的 CUDA 官方页面,登录后可以选择CUDA9.1版本下载:https://developer.nvidia.com/cuda-downloads , 这次我选择的是面向ubuntu16.04的deb版本:
下载完deb文件之后按照官方给的方法按如下方式安装CUDA9.1:
sudo dpkg -i cuda-repo-ubuntu1604-9-1-local_9.1.85-1_amd64.deb
安装结束后添加key到环境变量
sudo apt-key add /var/cuda-repo-9-1-local-rc/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda
ok到这一步cuda与nvidia驱动都装好了,下一步是关闭机器,拿起螺丝刀装上gtx1080ti显卡!
安装完毕后,把机箱后hdmi先插回显卡的hdmi上,然后开机!
打开系统设置,再打开软件和更新,打开附加驱动选项卡,等待几秒后出现双显卡的驱动使用情况,点击核心显卡下面的不使用设备选项,在NVIDIA里选择最新的显卡驱动nvidia-387,然后点右下角的应用更改。如下图,显卡驱动安装大功告成!
下面可以测试一下CUDA的相关例子,验证cuda和显卡驱动有没有安装成功,我将cuda9.1下的sample拷贝到一个临时目录下进行编译:
cp -r /usr/local/cuda-9.1/samples/ .
cd samples/
make
make大概十分钟左右,等待结束后,cd到拷贝sample文件夹的目录:
cd /home/ubuntu/samples
然后继续进入子文件夹
cd /home/ubuntu/samples/1_Utilities/bandwidthTest
终端继续输入
./bandwidthTest
出现如下信息证明安装ok!
[CUDA Bandwidth Test] - Starting...
Running on...
Device 0: GeForce GTX 1080
Quick Mode
Host to Device Bandwidth, 1 Device(s)
PINNED Memory Transfers
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 11258.6
Device to Host Bandwidth, 1 Device(s)
PINNED Memory Transfers
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 12875.1
Device to Device Bandwidth, 1 Device(s)
PINNED Memory Transfers
Transfer Size (Bytes) Bandwidth(MB/s)
33554432 231174.2
Result = PASS
最后在 ~/.bashrc 里再设置一下cuda的环境变量:
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
然后终端输入
source ~/.bashrc 让其生效。
3. 安装cuDNN
安装cuDNN很简单,不过同样需要前往NVIDIA官网: https://developer.nvidia.com/rdp/cudnn-download,这次我们选择的是cuDNN7.05, 关于cuDNN7.05:
我选择的是这个版本:cuDNN v7.05 for CUDA 9.1 --- cuDNN v7.05 Library for Linux
下载完毕后解压,然后将相关文件拷贝到cuda安装目录下即可:
首先cd到cudnn目录,如我的cudnn在/home/ubuntu/deeplearning/environment
那么首先:
cd /home/ubuntu/deeplearning/environment
然后:
tar -zxvf cudnn-9.1-linux-x64-v7.tgz
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/ -d
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
到此双显卡驱动+cuda9.1+cudnn7.05深度学习环境安装完毕啦,下一步就是安装detectron了,且听下回分解。
错误提示:
Makefile:381: recipe for target 'cudaDecodeGL' failedmake[1]: *** [cudaDecodeGL] Error 1make[1]: Leaving directory '/home/cocadas/Workspace/NVIDIA_CUDA-8.0_Samples/3_Imaging/cudaDecodeGL'Makefile:52: recipe for target '3_Imaging/cudaDecodeGL/Makefile.ph_build' failedmake: *** [3_Imaging/cudaDecodeGL/Makefile.ph_build] Error 2
修改:.../NVIDIA_CUDA-8.0_Samples/3_Imaging/cudaDecodeGL/findgllib.mk file,将UBUNTU_PKG_NAME = "nvidia-375"
改成对应驱动版本号