网上教程千千万,可是能完全顺着装下来的少之又少,写这篇文章记一下自己踩过的坑,不保证对所有人都适用,但是起码是一份可以借鉴的成功案例。另外因为已经装完了,没有截图,所以下面有些截图是从网上找的,但是不影响看。
系统:Ubuntu 16.04
显卡:GTX 1050
一、Nvidia驱动安装
在英伟达官网下载最新的对应型号的驱动,我用的是NVIDIA-Linux-x86_64-390.59.run
然后是一通代码操作
卸载原有驱动
sudo apt-get remove --purge nvidia*
禁用 nouveau
- 添加黑名单
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf
输入以下内容并保存
blacklist nouveau
options nouveau modeset=0
- 执行
sudo update-initramfs -u
- 重启电脑,检查操作是否成功
lsmod | grep nouveau
如果没有输出则满足要求
安装驱动
一般有两种方式,ppa和Ubuntu纯命令行,我最初用的是Ubuntu命令行,但是不知道为什么总是出问题,所以用了ppa,我把两种方法都贴一下:
纯命令行
- 进入本地控制台
Ctrl + Alt + F1
可以看到进入到黑屏控制台界面,此时输入用户名与密码即可登录
- 关闭图形界面
sudo service lightdm stop
- runfile 安装
sudo chmod a+x NVIDIA-Linux-x86_64-390.59.run
这一步是为了为安装包加权限
sudo ./ NVIDIA-Linux-x86_64-390.59.run –no-x-check –no-nouveau-check –no- opengl-files
按照提示安装,中途如果有 WARNING 或者 ERROR 都可以无视,基本每一步都选择 accept 或者 ok
4. 启动图形界面
sudo service lightdm start
此时进入终端输入 nvidia-smi,若显示下图类似的结果则表示安装成功,如果不显示则重启计算机,若还不显示则尝试重新安装或者从官网下载安装包。
成功的界面应该是下图这样
然而,我并没有成功,所以隆重推出下面这种方式!
ppa源安装
代码如下:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-390 #此处要根据上面查询到的版本适当更改
sudo apt-get install mesa-common-dev
sudo apt-get install freeglut3-dev
记一下这里的坑
- 首先,前两行命令,一次不行就两次,两次不行就三次,我在重新跑了五次之后终于可以了,大概是网络环境不稳定吧。
- 第三个,install nvidia-390 的版本可以随意;运行完之后会有一个诡异的对话框,里面需要“点击”“确认”什么的,先按Tab,就可以跳到确认这些键上了,获得什么权限都给它,回车就可以了。顺便说一句,密码不要太复杂,下面需要用到密码的地方不按照常理输入。
- 这五行代码运行完之后一定要重启,否则肯定没有效果的。
- 重点来了,重启,不知道别人怎么样,我是弹出了这么一个…
一下子就刺激了;
Continue boot
Change Secure Boot state
Enroll key frame disk
Enroll hash from disk
当时查了网上,有说第三个,有说第二个,我最后选了第二个,还不错,蒙对了,然后输入密码…第n位…
弄好之后,还是像刚才一样,输入nvidia-smi,出现上图页面就可以了。
二、CUDA 安装
进入 https://developer.nvidia.com/cuda-toolkit-archive,选择 CUDA9.0,下载runfile,如图:
Runfile 安装
运行下面两行代码:
sudo chmod a+x cuda_8.0.44_linux.run
sudo ./cuda_8.0.44_linux.run
这时会有很长的用户协议,一直按回车键,直到出现选择界面。依次进行如下选择,只有第一个选择 no,因为我们前面已经安装过驱动
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 390.59? (y)es/(n)o/(q)uit:n
Install the CUDA 9.0 Toolkit?(y)es/(n)o/(q)uit: y
Enter Toolkit Location[ default is /usr/local/cuda-9.0 ]: (按回车)
Do you want to install a symbolic link at/usr/local/cuda? (y)es/(n)o/(q)uit: y
Install the CUDA 9.0 Samples? (y)es/(n)o/(q)uit: y
路径也是可以直接按回车
添加环境变量
打开 ~/.bashrc 添加
添加在原有的export下面就好,另起三行,对于引号之类的符号不要画蛇添足
export PATH=/usr/local/cuda-9.0/bin:$PATH
exportLD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"
export CUDA_HOME=/usr/local/cuda
保存退出
再执行
sudo gedit /etc/profile
在这个文件的最后添加
export PATH=/usr/local/cuda-9.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH
完成后重启电脑生效
三、cuDNN安装
在 https://developer.nvidia.com/cudnn 下载对应版本的安装包cudnn-9.0-linux-x64-v7.tgz
解压并放到相应位置即可
tar xvzf cudnn-9.0-linux-x64-v7.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
安装完毕之后执行
nvcc –V
若显示版本信息则表示安装成功。
四、验证安装是否成功
- 到sample文件夹下,打开终端,输入 make编译,要大概等一会,好了以后有报错也无所谓
- 可以在Samples里面找到bin/x86_64/linux/release/目录,并切换到该目录 ;运行deviceQuery程序,sudo ./deviceQuery
查看输出结果,重点关注最后一行,Pass表示通过测试
运行bandwidthTest程序,sudo ./bandwidthTest
查看输出结果,显示结果为PASS表示通过测试
五、Anaconda安装
这个没啥好说的,可以参考我前一篇文章Tensorflow速成学习笔记——一
六、Tensorflow-GPU版本安装
- 打开终端
conda create -n name python=x.x
这种方式可以在anaconda中新建一个和本机环境隔离的python环境,方便乱搞,删除的时候直接删除就可以了,在anaconda envs文件夹下可以找到。
其中,name可以是你随意输入的名字,=后面是你要的版本,顺便说一句,python3和kenitic冲突(ROS系统),所以要是用作ROS机器人控制的可以安装2.7版本。
- 激活环境
conda activate name
会发现命令行前面多了(name)
- 安装,记得按照Tensorflow速成学习笔记——一的方法添加清华的镜像网站。
然后输入
anaconda search -t conda tensorflow-gpu
输入
anaconda show jjhelmus/tensorflow
就可以查看某一个具体的版本
按照提示,输入
conda install --channel https://conda.anaconda.org/jjhelmus tensorflow
就可以进行安装,提醒一下,有的会有好几个版本,在代码最后添加“=x.x.x”就可以安装对应版本,没有空格。不成功的话可以多试几次或者换一个源。
装完以后,python进入,然后import tensorflow试一试,没问题的话就大功告成了!