刚接触linux,并且是无图形界面命令行形式,因为任务需求需要安装linux深度学习环境,折腾了两天才最终安装成功。由于之前有过windows环境安装tensorflow-gpu安装经验,因此后面并没有花很长时间,反而是第一步安装NIVDIA 显示驱动花了最多的时间。下面开始介绍Ubuntu安装NIVDIA+CUDA+cuDNN+TF的步骤
服务器配置:
- Ubuntu LTS 18.04
- Unix 4.15
- GV100[TITAN V]
1.下载CUDA、cudnn安装包,放入~/software文件夹下
CUDA 9.0下载:CUDA Toolkit 9.0 Downloads | NVIDIA Developer
由于CUDA 9.0中没有适配于Ubuntu 18.04的安装包,下载ubuntu17.04的即可
下载一个base installer还有四个patch,一共五个文件
cuDNN 7.4.1 for cuda 9.0(等注册账号后登录进入):https://developer.nvidia.com/rdp/cudnn-download
将下载的5个.run文件和1个.solitairetheme8文件放到/software文件夹内
2.查看适合的驱动并安装驱动
~$ ubuntu-drivers devices
可以看到该GPU为GV100,推荐使用nvidia-driver-415驱动,但是版本太高,我在这里安装390驱动
根据上面显示的能够安装的驱动版本,安装推荐的版本输入下面命令:
~$ sudo ubuntu-drivers autoinstall
若安装推荐版本的driver,则安装成功后显示下列信息,Driver Version:415.18 CUDA Version:10.0
安装其他版本的命令:
~$ sudo apt install nvidia-390
或者可以输入下列命令安装:
~$ sudo add-apt-repository ppa:graphics-drivers/ppa
~$ sudo apt update
~$ sudo apt install nvidia-390
3.重启服务器
这一步很重要,因为没有重启服务器安装完成后输入nvidia-msi命令总是提示
Failed to initialize NVML: Driver/library version mismatch
经过反复安装都是这个效果,因此重启了一下服务器后显示才安装成功
重启服务器命令
~$ sudo reboot
输入nvidia-msi后显示驱动信息,Driver Version为390.87
4.降级GCC
由于Cuda-9.0
只支持gcc-6.0
以下的版本,而Ubuntu18.04系统默认安装的gcc-7.3
版本(可以在终端输入gcc --version
查看系统安装的gcc版本),所以首先需要降级为gcc-5
版本。
~$ sudo apt install gcc-5
~$ sudo apt install g++-5# 建立软链接
~$ cd /usr/bin
~$ sudo rm -r gcc #移除之前的软连接
~$ sudo ln -sf gcc-4.7 gcc #建立gcc4.7的软连接
~$ sudo rm -r g++ #同gcc
~$ sudo ln -sf g++-4.7 g++# 以下也可
# ~$ sudo mv gcc gcc.bak #备份
# ~$ sudo ln -s gcc-5 gcc
# ~$ sudo mv g++ g++.bak
# ~$ sudo ln -s g++-5 g++
使用gcc --version查看gcc版本
~$ cat /proc/driver/nvidia/version
~$ gcc --verison
5.安装CUDA
software文件夹内下载好的CUDA,一共有5个文件,第一个base installer中第二个选项是否安装NVIDIA驱动选择no
Install NVIDIA Accelerated Graphics Driver for Linux-86_64 384.81 >> no
~$ sudo sh software/cuda_9.0.176.384.81_linux.run --override
~$ sudo sh software/cuda_9.0.176.1_linux.run
~$ sudo sh software/cuda_9.0.176.2_linux.run
~$ sudo sh software/cuda_9.0.176.3_linux.run
~$ sudo sh software/cuda_9.0.176.4_linux.run
6.安装完CUDA后,修改其环境变量
~$ echo 'export PATH=/usr/local/cuda-9.0/bin:$PATH' >> ~/.bashrc
~$ echo 'export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
~$ source ~/.bashrc
7.检验CUDA
输入下列命令查看CUDA版本
~$ nvcc -V
8.测试cuda显示gpu信息以验证cuda安装成功
输入下列命令,如果显示的是GPU信息,则证明CUDA安装成功
~$ cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
~$ sudo make
~$ sudo ./deviceQuery
9.安装cuDNN
下载下来的cudnn后缀是.solitairetheme8,可以用下列命令来解压
~$ tar -xvzf cudnn-9.0-linux-x64-v7.solitairetheme8
将解压完毕的文件夹内的文件复制到安装路径中
Installation Guide :: NVIDIA Deep Learning cuDNN Documentation
~$ sudo cp 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*
10.安装Tensorflow-GPU 1.10.0
创建python 3.6的环境并进入环境安装tf-gpu 1.10
~$ conda create -n tensorflow python=3.6
~$ conda activate tensorflow
~$ pip install --ignore-installed --upgrade tensorflow-gpu==1.10.0
11.验证tf是否安装成功
输入以下代码,启动tf
import tensorflow as tf
hello=tf.constant('Hello World!')
sess=tf.Session()
print(sess.run(hello))
若在创建会话命令sess=tf.Session()后显示GPU情况,则证明安装tf-gpu成功
参考:
1.https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-18-04-bionic-beaver-linux
2.Ubuntu18.04+Cuda9.0+Cudnn7.1环境配置Tensorflow-gpu - 简书
3.真实机下 ubuntu 18.04 安装GPU +CUDA+cuDNN 以及其版本选择(亲测非常实用)_Will-kkc的博客-CSDN博客_ubuntu cuda安装
4.Ubuntu18.04+CUDA9.0+cuDNN7.1.3+TensorFlow1.8 安装总结_Aiolia86的博客-CSDN博客
5.Ubuntu 18.04 安装 CUDA 9.1_ffiirree的博客-CSDN博客
6.cuda - Nvidia NVML Driver/library version mismatch - Stack Overflow
7.ubuntu18.04 tensorflow 机器学习环境搭建_51CTO博客_ubuntu 安装tensorflow
常用命令:
dpkg -l | grep -i nvidia 查看所有安装的nvidia包
nvidia-smi 查看nvidia驱动
ubuntu-drivers devices 查看ubuntu驱动
gcc --version