在Ubuntu Server上配置CUDA环境

在配置Ubuntu Server的CUDA和TensorFlow的过程中,遇到了很多问题(驱动无法正常运行、CUDA无法正常配置等等),在网上找了很多资料,最终正确安装驱动、CUDA、cuDNN和TensorFlow(GPU版本),因此将安装过程记录下来,方便以后再配环境。

版本要求:

  • Ubuntu 16.04 LTS
  • CUDA 9.0
  • cuDNN v7
  • Python 3.6
  • TensorFlow r1.10
  • PyTorch 0.4.1

1 准备工作

1.1 检查GPU是否符合CUDA运行要求

在Shell中运行命令:

1
lspci | grep -i nvidia

查看GPU型号,然后在https://developer.nvidia.com/cuda-gpus页面中查找设备的GPU是否在支持CUDA的列表中。

1.2 检查GCC版本

1
gcc --version

对于Ubuntu 16.04来说,gcc版本需要>5.4.0。

1.3 检查Kernel版本

1
uname -r

对于Ubuntu 16.04来说,内核版本需要>4.4.0。

然后需要安装对应版本的Kernel Header:

1
sudo apt-get install linux-headers-$(uname -r)

1.4 安装对应的库

1
2
3
4
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev \ 
libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev \
protobuf-compiler g++ freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev \
libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

2 安装CUDA

2.1 首先安装显卡驱动(选做,CUDA自带的驱动可能会无法正常运行)

(1) 禁用Nouveau

运行命令:

1
lsmod | grep nouveau

如果有显示内容,则说明Nouveau驱动正在运行,需要根据教程关闭Nouveau。

(2) 卸载之前的显卡驱动

(3) 下载并安装驱动

NVIDIA驱动下载页面按照自己的GPU型号、系统以及CUDA版本选择驱动并进行下载,得到诸如nvidia-diag-driver-local-repo-ubuntu1604_3XY.AB-1_amd64.deb的文件(XY.AB需要根据下载版本进行修改)。

然后运行以下命令:

1
2
3
4
sudo dpkg -i nvidia-diag-driver-local-repo-ubuntu1604_3XY.AB-1_amd64.deb(XY.AB需要根据下载版本进行修改)
sudo apt-get update
sudo apt-get install cuda-drivers
sudo reboot

运行后系统会进行重启,在运行命令前请保存所有正在运行的工作。

重启后运行:

1
sudo nvidia-smi

如果正常输出显卡状态说民驱动安装成功。

2.2 安装CUDA

CUDA下载页面下载Runfile形式的CUDA安装包,形式为cuda_9.0.176_384.81_linux.run。

具体CUDA和cuDNN版本参考TensorFlow安装要求,对于r1.10版本来说支持的CUDA版本为9.0。


(Optional)

对于有GUI的系统来说,需要在启动时按下Ctrl + Alt + F1/F4进入tty1/tty4模式,然后运行:

1
sudo service lightdm stop

停止GUI运行。


开始安装CUDA。

1
sudo sh cuda_9.0.176_384.81_linux.run
  • 一路按空格,输入accept同意用户协议
  • 安装程序询问是否安装驱动,输入no
  • 询问是否安装CUDA Toolkit,输入yes
  • 更改CUDA Toolkit安装位置,这里不作修改
  • 是否创建/usr/local/cuda符号链接,如果只安装一个CUDA版本,输入yes
  • 询问是否安装CUDA Samples,输入yes
  • 更改CUDA Samples安装位置,这里不作修改

如果没有报错,则说明安装成功。如果提示:

Installing the CUDA Toolkit in /usr/local/cuda-8.0 …

Missing recommended library: libGLU.so

Missing recommended library: libX11.so

Missing recommended library: libXi.so

Missing recommended library: libXmu.so

则需要安装依赖库:

1
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev

然后重新运行CUDA安装程序即可。

2.3 配置环境变量

运行:

1
sudo vi /etc/profile

用vi编辑启动脚本。用方向键将光标定位至文件末尾然后按i插入以下内容:

1
2
export PATH=$PATH:/usr/local/cuda-9.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64

在Shell中运行:

1
2
export PATH=$PATH:/usr/local/cuda-9.0/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64:/usr/local/cuda-9.0/extras/CUPTI/lib64

2.4 验证CUDA是否安装成功

(1) 验证驱动版本

运行:

1
cat /proc/driver/nvidia/version

查看驱动版本。

(2) 查看nvcc版本

运行:

1
nvcc -V i

查看nvcc版本。

(3) 运行示例(选做)

按照教程运行示例。

3 安装cuDNN

cuDNN下载页面下载TensorFlow支持的cuDNN版本,目前支持的是cuDNN v7。在下载时需要注册NVIDIA账号和开发者账号。

下载后得到一个诸如cudnn-9.0-linux-x64-v7.tgz的压缩包。

运行:

1
tar -xvzf cudnn-9.0-linux-x64-v7.tgz

进行解压,在当前目录得到cuda文件夹。

然后运行

1
2
3
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*

将cuDNN拷贝至CUDA目录中。

可以按照官方教程来验证cuDNN的安装。

4 安装Tensorflow

如果没安装pip,则需要安装pip:

1
sudo apt-get install python3-pip python3-dev

然后尝试从官方源下载安装TensorFlow:

1
pip3 install tensorflow-gpu

如果安装缓慢或者网络错误,请尝试切换至清华大学提供的镜像源:

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

接下来验证安装,在Shell或者IDE中运行代码:

1
2
3
4
5
# Python Code
import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

等待,如果能够正常输出

1
Hello, TensorFlow!

说明安装成功。如果输出错误信息,可以参考官方文档解决。


5 安装PyTorch

运行:

1
conda install pytorch torchvision -c pytorch

安装完成后,在Shell或者IDE里运行:

1
2
3
4
# Python Code
import torch
print('CUDA support for Pytorch: ', torch.cuda.is_available())
print('You are using device: ', torch.cuda.get_device_name(0))

如果看到True和显卡名称,说明安装成功。

参考文档

ubuntu16.04安装nvidia driver + cuda + cudnn (1)

TensorFlow官方文档

CUDA安装文档(英文)

cuDNN安装文档(英文)

Ubuntu 14.04 上安装 CUDA 7.5/8.0 超详细教程

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×