Ubuntu16.04安装GPU环境(NVIDIA驱动、CUDA、CUDNN、Tensorflow-GPU安装)

Table of Contents

一、安装NVIDIA驱动

二、gcc降版本

三、安装CUDA

四、安装CUDNN

五、安装Tensorflos-gpu

安装过程中遇到的一些问题:

问题1. 更新内核警告

问题2. 安装警告

问题3.循环登录或者其他安装失败等问题


本机环境:显卡 NVIDIA GTX 1050,Ubuntu16.04,Python3.6.7(虚拟环境安装)

安装版本:NVIDIA 410.48,CUDA9.0,CUDNN-v7.3.1 for CUDA9.0,Tensorflow-GPU==1.11.0

一定要选择TensorFlow对应的版本进行下载,否则版本出错的话,可能需要重新安装。

对于版本的对应问题,可以参见这篇博客,写的很详细。

以下是下载安装包的网址:

NVIDIA驱动下载,CUDA下载,CUDNN下载

一、安装NVIDIA驱动

1.删除旧的驱动

sudo apt-get purge NVIDIA*

2.禁用自带的 nouveau nvidia驱动

sudo vim /etc/modprobe.d/blacklist-nouveau.conf

在文件中添加以下内容

blacklist nouveau
options nouveau modeset=0

然后

sudo vim /etc/modprobe.d/blacklist.conf

在文件中添加以下内容

blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist rivatv
blacklist nvidiafb

4.然后更新一次

sudo update-initramfs -u

如果输入以上命令后出现警告,查看解决办法。

5.修改之后需要重启系统,使用以下命令确认下Nouveau是不是已经被干掉,如果没反应则表示已经干掉

lsmod | grep nouveau

6.然后需要以下命令结束X-window服务,准备安装驱动

sudo service lightdm stop   # 结束X-window服务

7.使用Ctrl+Alt+F1切换到tty1控制台,cd到你下载的NVIDIA驱动文件目录下(我的目录 /home/NVIDIA-Linux-x86_64-410.73.run),安装驱动

sudo sh ./NVIDIA*.run -no-x-check -no-nouveau-check -no-opengl-files

-no-x-check:安装驱动时关闭X服务

-no-nouveau-check:安装驱动时禁用nouveau

-no-opengl-files:只安装驱动文件,不安装OpenGL文件

出现什么failed之类的选择continue或者yes就可以了。

如果安装完成后出现循环登录的问题,看文章末尾的解决办法。

8.等待安装完成,重新启动X-Window

sudo service lightdm start

9.进入图形界面(如果无法进入图形界面,参考文章末尾的解决办法),使用命令 nvidia-smi 检查安装是否成功

nvidia-smi
nvidia-settings

没有nvidia-settings,可以尝试使用 sudo apt-get install nvidia-settings进行安装

如果有如下图的显示,则表明安装成功

Ubuntu16.04安装GPU环境(NVIDIA驱动、CUDA、CUDNN、Tensorflow-GPU安装)_第1张图片

输入命令 nvidia-settings 出现下图所示

Ubuntu16.04安装GPU环境(NVIDIA驱动、CUDA、CUDNN、Tensorflow-GPU安装)_第2张图片

如果没有上图出现,可以尝试从第1步重新安装,或者可以尝试直接使用以下命令安装(其中410为我之前下载以及安装的版本),然后重启电脑,再使用命令 nvidia-smi   nvidia-settings 查看状态(为了nvidia-settings能出现上图,折腾了好久,重新安装了好多次,如果有耐心,最终也能成功的,虽然最后糊里糊涂的把问题解决了,我提供的解决方案仅供参考,每个人遇到的问题都不一样)

sudo apt-get install nvidia-410-dev

二、gcc降版本

Ubuntu的gcc编译器是5.4.0,然而cuda不支持5.0以上的编译器,因此需要降级,把编译器降到4.9:

sudo apt-get install g++-4.9 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 10 
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20 
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 10 
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 
sudo update-alternatives --set cc /usr/bin/gcc 
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 
sudo update-alternatives --set c++ /usr/bin/g++

使用命令gcc -v查看gcc版本

Ubuntu16.04安装GPU环境(NVIDIA驱动、CUDA、CUDNN、Tensorflow-GPU安装)_第3张图片

三、安装CUDA

在cuda所在目录打开终端输入以下命令(之前下载的CUDA文件,在/home/下载/目录下)

sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda

安装完成后,运行如下命令打开profile文件

sudo gedit /etc/profile

打开文件后在文件末尾添加路径,也就是安装目录,命令如下(若不添加这些内容,不能使用nvcc -V查看CUDA信息):

export  PATH=/usr/local/cuda-9.0/bin:$PATH

export  LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH

保存后执行一个命令后重启电脑

sudo ldconfig
sudo reboot

 查看版本和测试CUDA的例子

# 查看版本
nvcc --version

出现如下信息:

# 编译例子测试
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

若出现以下信息表明安装成功

Ubuntu16.04安装GPU环境(NVIDIA驱动、CUDA、CUDNN、Tensorflow-GPU安装)_第4张图片

四、安装CUDNN

在cudnn所在目录打开终端输入以下命令(之前下载的CUDNN文件,在/home/下载/目录下)

tar xvzf cudnn-9.0-linux-x64-v7.3.1.20.tgz              #(解压)
sudo cp cuda/include/cudnn.h /usr/local/cuda/include    #(复制) 
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64      #(复制) 
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

安装完成CUDA和CUDNN之后使用以下命令验证是否安装成功

cat /usr/local/cuda/version.txt 
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

以下是我的安装成功后的状态

Ubuntu16.04安装GPU环境(NVIDIA驱动、CUDA、CUDNN、Tensorflow-GPU安装)_第5张图片

五、安装Tensorflos-gpu

首先确定你电脑上的Python版本(我的版本是3.6.7)

使用以下命令安装Tensorflow(在虚拟环境安装的话不加sudo,这样才能安装到虚拟环境中,否则加sudo的话,这样会安装到全局环境中。如果网络不好的话,可能中途失败,不要灰心,再来一次,可能就安装成功了)

sudo pip install tensorflow==1.11.0       # Python 2.7; CPU support (no GPU support) 
sudo pip3 install tensorflow==1.11.0      # Python 3.n; CPU support (no GPU support) 
sudo pip install tensorflow-gpu==1.11.0   # Python 2.7; GPU support  
sudo pip3 install tensorflow-gpu==1.11.0  # python3.n;  GPU support

安装的时候可以使用国内源,可以大大提升下载速度和安装成功率,比如下边使用了清华的源,更多的使用可以看这里

sudo pip3 install tensorflow-gpu==1.11.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

验证安装是否安装成功

进入python解释器(终端输入python或者python3),进行测试:

import tensorflow as tf
with tf.device('/cpu:0'):
    a=tf.constant([1.0,2.0,3.0],shape=[3],name='a')
    b=tf.constant([1.0,2.0,3.0],shape=[3],name='b')
with tf.device('/gpu:0'):
    c = a + b
sess=tf.Session(config=tf.ConfigProto(log_device_placement=True))
print(sess.run(c))

出现以下内容表明GPU版安装成功:

Ubuntu16.04安装GPU环境(NVIDIA驱动、CUDA、CUDNN、Tensorflow-GPU安装)_第6张图片

以下是我的完整显示:

Ubuntu16.04安装GPU环境(NVIDIA驱动、CUDA、CUDNN、Tensorflow-GPU安装)_第7张图片

安装成功,心累啊!

安装过程中遇到什么问题,欢迎随时交流,一起解决。

安装过程中遇到的一些问题:

问题1. 更新内核警告

出现如下警告

sudo update-initramfs -u
W: Possible missing firmware /lib/firmware/i915/kbl_guc_ver9_14.bin for module i915
W: Possible missing firmware /lib/firmware/i915/bxt_guc_ver8_7.bin for module i915

到这个网页下载自己缺失的文件即可,然后使用以下命令放到响应的位置

Ubuntu16.04安装GPU环境(NVIDIA驱动、CUDA、CUDNN、Tensorflow-GPU安装)_第8张图片

sudo cp kbl_guc_ver9_14.bin /lib/firmware/i915
sudo cp bxt_guc_ver8_7.bin /lib/firmware/i915

 

问题2. 安装警告

如果出现如下警告:

WARNING: Unable to find a suitable destination to install 32-bit compatibility libraries. Your system may not be set up for 32-bit compatibility. 32-bit compatibility files will not be installed; if you wish to install them, re-run the installation and set a valid directory with the --compat32-libdir option.
可以使用如下命令,然后再重新安装驱动(先卸载再安装)

sudo aptitude install ia32-libs

问题3.循环登录或者其他安装失败等问题

重启电脑进入BIOS,将secure boot设置为disable。

可能有的主板没有这个选项,对于华硕主板可以进入BIOS -> Boot -> Secure Boot -> OS Type,然后将Windows UFEI mode 切换为Other OS。

 

你可能感兴趣的:(Linux+工具,TensorFlow,Python)