Skip to content

Instantly share code, notes, and snippets.

@Thesharing
Last active April 25, 2021 16:24
Show Gist options
  • Select an option

  • Save Thesharing/42d0df95ccc790b9e208b1f8fc3744f0 to your computer and use it in GitHub Desktop.

Select an option

Save Thesharing/42d0df95ccc790b9e208b1f8fc3744f0 to your computer and use it in GitHub Desktop.
在Ubuntu Server上安装CUDA

本文针对Ubuntu 16.04 LTS版本。

1 准备工作

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

在Shell中运行命令:

lspci | grep -i nvidia

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

1.2 检查GCC版本

gcc --version

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

1.3 检查Kernel版本

uname -r

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

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

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

1.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

运行

lsmod | grep nouveau

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

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

(3) 下载并安装驱动

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

然后运行以下命令:

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

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

重启后运行

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。


(选做)

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

sudo service lightdm stop

停止GUI运行。


开始安装CUDA。

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

则需要安装依赖库:

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 配置环境变量

运行

sudo vi /etc/profile

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

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中运行:

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) 验证驱动版本

运行

cat /proc/driver/nvidia/version

查看驱动版本。

(2) 查看nvcc版本

运行

nvcc -V i

查看nvcc版本。

(3) 运行示例(选做)

按照教程运行示例。

3 安装cuDNN

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

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

运行:

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

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

然后运行

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:

sudo apt-get install python3-pip python3-dev

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

pip3 install tensorflow-gpu

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

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

接下来验证安装:

在Shell或者IDE中运行代码:

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

等待,如果能够正常输出

Hello, TensorFlow!

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

参考文档

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

TensorFlow官方文档

CUDA安装文档(英文)

cuDNN安装文档(英文)

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

@ArtomYuan
Copy link

帮大忙了,找了好久的资料终于弄好了

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment