一、准备工作
- 环境基础: Ubuntu16.04
- 显卡: GTX1060
- 安装包下载:
- cuda:https://developer.nvidia.com/cuda-90-download-archive
- cudnn:https://developer.nvidia.com/cudnn 记得注册Nvidia账号,否则不能下载
- Anaconda:https://www.anaconda.com/download/
二、安装流程
- 安装系统,清理环境
- 安装Nvidia驱动
- 安装Cuda&cuDNN
- 安装Anaconda和tensorflow-gpu
- 配置ssh服务以及远程桌面
Tips:cuda9.2版本太高,最新的tensorflow-gpu 1.8也没有提供支持 。不合适的CUDA版本会导致import tensorflow出现错误。在本教程中所安装的tensorflow是1.12.0版本
三、 安装系统,清理环境
- 系统安装请参照这里
$ sudo apt-get remove –purge cuda*
$ sudo apt-get remove –purge nvidia*
四、安装Nvidia显卡驱动
- 安装相关依赖项
$sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev> libopencv-dev libhdf5-serial-dev protobuf-compiler
$sudo apt-get install --no-install-recommends libboost-all-dev
$sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev
$sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
$sudo add-apt-repository ppa:graphics-drivers/ppa
$sudo apt-get update
1.懒人做法
安装完上述依赖之后,点击系统设置->软件->附加驱动->选择其中一项,比如:
Using NVIDIA binary driver-version 3***.** from nvidia-3**(open source)
2.勤劳做法
- 首先去官网查看适合自己显卡的驱动
驱动文件后缀名应当是以.run结尾的。把这个文件移动到home目录下。我的显卡型号是GTX1060,系统是linux 64位,按照要求选择后点击search.,点击下载就好了。我下载后的驱动文件是:NVIDIA-Linux-x86_64-384.98.run。
注意: 很多问题几乎都是出在显卡驱动安装上面,比如循环登录无法进入桌面、运行深度学习程序出错又不清楚是哪等。这些问题都应该首要考虑到是否是显卡驱动出现问题,解决办法就是重新安装显卡驱动。如下:
$ctrl + alt + f1 #转换到命令行界面,登陆账户
$sudo service lightdm stop #关闭图形界面服务
$sudo apt-get remove nvidia* #用于卸载程序
$sudo apt-get install nvidia-390 #选择重新安装的驱动版本
$sudo sudo service lightdm start #开启图形界面服务
$sudo reboot
3.安装驱动
禁用自带显卡驱动,在终端下输入:
$sudo gedit /etc/modprobe.d/blacklist.conf #在其最后一行加上blacklist nouveau
$sudo update-initramfs -u
$ctrl + alt + f1 #转换到命令行界面,登陆账户
$sudo service lightdm stop #关闭图形界面服务
$cd ~
$sudo ./NVIDIA-Linux-x86_64-384.98.run
$sudo sudo service lightdm start #开启图形界面服务
$sudo reboot
五、安装CUDA&cuDNN
1.安装CUDA
CUDA是NVIDIA的编程语言平台,想使用GPU就必须要使用cuda。
(1)下载CUDA
首先在官网下载CUDA,选择自己合适的版本。 该链接界面只显示最新版本。若需要下载以前的版本,可在页面下方点击Legacy Releases,选择自己需要的其他版本。
(2)安装CUDA
安装相关依赖:
$sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
下载完成后执行以下命令:
$sudo chmod 7777 cuda_9.0.176_384.81_linux.run
$sudo ./cuda_9.0.176_384.81_linux.run
注意:执行后会先出现一个声明,需要阅读到100%,同意声明后才会开始安装.安装时首先会有一系列提示让你确认,但是注意,有个让你选择是否安装nvidia361驱动时,一定要选择否:
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 361.62?
(3)设置环境变量和动态链接库
打开~/.bashrc文件: sudo gedit ~/.bashrc
将以下内容写入到~/.bashrc尾部:
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
$ sudo gedit /etc/profile
在打开的文件末尾加上(“=”前后不要有空格)
export PATH=/usr/local/cuda/bin:$PATH
保存之后创建链接文件:
$sudo gedit /etc/ld.so.conf.d/cuda.conf
文件尾部加上
/usr/local/cuda/lib64
最后在终端输入以下命令使该链接生效:
$sudo ldconfig
(4)测试CUDA的samples
$cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
$sudo make
$sudo ./deviceQuery
./deviceQuery Starting...
CUDA Device Query (Runtime API) version (CUDART static linking)
Detected 1 CUDA Capable device(s)
Device 0: "GeForce GTX 1060 6GB"
CUDA Driver Version / Runtime Version 9.2 / 9.0
CUDA Capability Major/Minor version number: 6.1
...
Compute Mode:
< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 9.2, CUDA Runtime Version = 9.0, NumDevs = 1
Result = PASS
如果显示一些关于GPU的信息,则说明安装成功。
2.配置cuDNN
(1)下载cuDNN
cuDNN是GPU加速计算深层神经网络的库。 首先去官网下载cuDNN,需要注册一个账号才能下载。
(2)解压cuDNN
下载cuDNN7.4.2之后进行解压:
$ tar -xvf cudnn-9.0-linux-x64-v7.4.2.24.tgz
(3)复制并建立软链接
进入cuDNN7.4.2 解压之后的cuda目录,在命令行进行如下操作:
$cd cuda
$sudo cp include/cudnn.h /usr/local/cuda/include #复制头文件
$sudo cp lib64/libcudnn* /usr/local/cuda/lib64/
$cd /usr/local/cuda/lib64/
$sudo ln -s libcudnn.so.7.4.2 libcudnn.so.7 #生成软衔接(注意这里要和自己下载的cudnn版本对应,可以在/usr/local/cuda/lib64下查看自己libcudnn的版本)
$sudo ln -s libcudnn.so.7 libcudnn.so #生成软链接
$sudo ldconfig -v #更新软链接
六、安装Anaconda和tensorflow-gpu
1.安装Anaconda
下载Anaconda,点击这里,选择下载python3版本,比如我下载的Anaconda3-5.2.0-Linux-x86_64.sh。在文件目录下执行:
$bash Anaconda3-5.2.0-Linux-x86_64.sh
最后要将其安装路径添加至环境变量当中,之后在终端执行
$source ~/.bahsrc
详细步骤参照这里.
2.安装tensorflow-gpu
这里使用豆瓣源进行安装,地址为https://pypi.douban.com/simple ,在终端输入以下命令进行安装:
$pip -i https://pypi.douban.com/simple tensorflow-gpu==1.2.0 #这里提供1.2.0版本的安装
然后对安装好的tensorflow进行测试
$dc-gpu@dcgpu:~$ python
Python 3.6.5 |Anaconda, Inc.| (default, Apr 29 2018, 16:14:56)
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
/home/dc-gpu/anaconda3/lib/python3.6/site-packages/h5py/__init__.py:36: FutureWarning: Conversion of the second argument of issubdtype from `float` to `np.floating` is deprecated. In future, it will be treated as `np.float64 == np.dtype(float).type`.
from ._conv import register_converters as _register_converters
>>> tf.__version__
'1.12.0'
>>>
如出现以上信息说明安装成功。
七、配置ssh服务以及远程桌面
1.安装ssh服务
(1)安装
打开”终端“,输入
$sudo apt-get update
$sudo apt-get install openssh-server
$sudo ps -e |grep ssh
#回车-->有sshd,说明ssh服务已经启动,如果没有启动,输入"sudo service ssh start"-->回车-->ssh服务就会启动。
(2)使用gedit修改配置文件"/etc/ssh/sshd_config"
打开”终端“,输入
$sudo gedit /etc/ssh/sshd_config
#-->回车-->把配置文件中的"PermitRootLogin without-password"加一个"#"号,把它注释掉-->再增加一句"PermitRootLogin yes"-->保存,修改成功。
2.安装远程桌面
Windowsd电脑远程桌面Ubuntu16.04,旨在远程图形界面控制Ubuntu电脑。
(1)Ubuntu端安装服务
打开”终端“,输入
$sudo apt-get install xrdp #安装xrdp
$sudo apt-get install vnc4server #安装vnc4server
$sudo apt-get install xubuntu-desktop #安装xubuntu-desktop
$echo "xfce4-session" >~/.xsession #向xsession中写入xfce4-session(每个用户自己运行此行)
$sudo apt-get install xinit
$sudo apt-get install gdm #弹出选择窗口,选择gdm并回车
$sudo apt-get update #为下一条命令准备,否则下一条命令执行错误。
$sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal # 安装gnome桌面
$vim ~/.vnc/xstartup # 修改vnc的启动文件
// "x-window-manager &"改为"gnome-terminal &"
$sudo service xrdp restart #开启xrdp服务
$vncserver -geometry 2560x1440 #以指定分辨率开启vnc服务,登陆方式为ip:5901,首次启用需要填写密码
$ifconfig #查看ip地址
(2)windows端控制
- win + r之后输入mstsc, 打开远程桌面。
- 弹出窗口中输入用户名和密码点OK,即可打开远程桌面。
另:下载vnc客户端进行登陆,登陆方式为ip:5901,密码为首次启动vncserver设置的密码。
八、结束语
至此,所有环境基本搭建完成。在此期间可能会遇到各种问题,若出现问题请自行百度,网上基本都有解决方案。如有疑问请联系我qq:741889820。