电脑换了华硕新主板,需要重装系统,用的Ubuntu18.04的系统,电脑用的显卡是GTX1080Ti。在新系统中装显卡驱动过程中遇到很多坑,中间无奈搞乱环境又重装了一次系统,再次尝试,终于成功。整个过程失败次数很多,参考的教程感觉自己步步都做对了,但是最后就是不能成功运行。配置系统这种事情确实比较麻烦,心态要对,遇到问题上网搜索方法,最终总归都能解决。
接下来接讲讲我装NVIDIA驱动到装tensorflow-gpu和pytorch的方法,大家硬件和系统都有所区别,不能保证我的方法你不一定能成功,但是希望能值的大家借鉴。
不得不说,我所使用的方法大部分都是参考其他无私博主的贡献,主要参考的这篇博客 。
先说一句,Python我是用的是 Anaconda3-5.2.0-Linux-x86_64.sh,因为这里对应的是Python3.6。最新版的Anaconda对应的是Python3.7,但是Python3.7目前为止还不能兼容tensorflow,所以请不要下载最新版本的Anaconda。
推荐大家使用anaconda来代替原版python,它预置了很多数据分析相关的包,包括scipy和matplotlib等,这些模块你自己安装可能会出现很多问题。
另外,自带的conda安装python包会方便很多,因为它针对数据分析相关模块做了很多优化,会检测并自动安装环境,很多方便的功能是pip做不到的。
包括之后的cuda、cudnn安装都是根据系统环境安装的,比自己手动装靠谱的多,不容易出错。
首先,系统最好是新系统,NVIDIA驱动所需的依赖比较多,而且对版本都有要求,否则会产生各种报错。
官网下载NVIDIA驱动,下载地址:https://www.nvidia.cn/Download/index.aspx?lang=cn
这里选择好第一项产品类型后,需要等一会才能加载后面的选项,网络不好的话更需要耐心等待。
截止到发文2018.12.26,我下载的版本是 NVIDIA-Linux-x86_64-410.78.run
,等待下载过程中,可以先进行下一步。
安装依赖:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev libfreeimage3 libfreeimage-dev
以上步骤均完成后,继续。
# 卸载干净已安装的NVIDIA驱动
sudo apt-get remove --purge nvidia*
# 下面run文件名称换成你的
sudo chmod 777 NVIDIA-Linux-x86_64-410.78.run
禁用nouveau驱动(十分重要):
sudo vim /etc/modprobe.d/blacklist.conf
文本最后添加以下内容:
blacklist nouveau
options nouveau modeset=0
使用命令行使其生效:
sudo update-initramfs -u
重启电脑使其生效。
sudo reboot
参考的博客,博主说重启后分辨率可能会发生变化,安装完NVIDIA驱动后会恢复,但这里我并没有出现分辨率变化的情况。
lsmod | grep nouveau
#如果屏幕没有输出则禁用nouveau成功
到这里,安装NVIDIA驱动的前期工作已完成,接下来进行安装。
# 安装,后面参数非常重要
sudo ./NVIDIA-Linux-x86_64-390.48.run -no-opengl-files -no-nouveau-check
参考的博文中此处有 -no-x-checks
参数,但是 由于我的版本和他的不一样,我的版本没有这个参数,所以没有添加。如果是他的版本,可以加上这个参数。
运行显示当前显卡的状态,
#列出GPU信息列表
nvidia-smi
如果出现下图,则说明安装成功。如果报错,则说明安装失败,请搜索其他安装驱动的方法。
这里还有 Nvidia-settings
命令可以弹出设置,但是这个命令我是运行失败的,不过不影响接下来的安装,可以忽略。
如果之前出现分辨率变化的情况,这里安装成功后会还原。
以上步骤完成后,NVIDIA驱动就安装成功了,如果你不需要装tensorflow-gpu等东西,可以继续参考上面引用的博文中内容继续安装cuda、cudnn。
但是如果你需要安装tensorflow-gpu和pytorch,请先别安装cuda、cudnn,按照下面步骤完成安装。
上面已经讲过,python使用的是Anaconda,Anaconda3-5.2.0为Python3.6,tensorflow需使用python3.6。
安装软件,
sh Anaconda3-5.2.0-Linux-x86_64.sh
Anaconda官网下载软件特别慢,可以使用清华源下载,具体的下载地址和下载后的初步配置,比如怎么提高包的下载速度,请参考我的这篇文章:conda和pip常用方法,更换源,包的安装、更新、删除、查看。
# 更新conda
conda update conda
# 安装tensorflow-gpu
conda install tensorflow-gpu
使用上面conda命令安装,会检测系统环境,自动下载cuda toolkit和cudnn,所以这里无需再手动安装。
我自动安装的版本是 cudatoolkit 8.0
和 cudnn 6.0.21
。使用下面命令查看你安装的版本,
conda list | grep "cudatoolkit"
conda list | grep "cudnn"
进入python shell,运行下面命令,没有报错即安装成功。
import tensorflow as tf
hello = tf.constant('hello, Tensorflow!')
sess = tf.Session()
print(sess.run(hello))
会出现很多日志信息,但如果能正常输出print内容,没有出现error应该都没有问题。
上面的命令不要退出,新打开窗口后运行 nvidia-smi
,如果出现刚才运行的python则代表GPU使用正常。
打开pytorch官方网站, https://pytorch.org/get-started/locally/ ,根据自己上面查到的cuda版本决定下载的命令。
运行给出的推荐命令即可。
# cuda 8.0
conda install pytorch torchvision cuda80 -c pytorch
# cuda 9.0
conda install pytorch torchvision -c pytorch
安装完成后,使用下面命令测试是否成功安装,并且是否使用了GPU。
import torch
print(torch.cuda.is_available())
如果返回的是1,则说明正确安装并且使用了GPU。