1、安装显卡驱动
首先删除旧的Nvidia驱动文件
sudo apt-get purge nvidia-*
加入PPA源
sudo add-apt-repository ppa:graphics-drivers/ppa
安装Nvidia驱动:
找到自己显卡最新的一个版本后执行安装,比如1080ti当前最新版为nvidia-driver-396
sudo apt-get install nvidia-driver-396(tab键可补充列出其他版本)
安装完毕后重启机器,运行 nvidia-smi,看看生效的显卡驱动;(在确保独立显卡安装成功的情况下,禁用集成显卡,连接独立显卡到显示器),即可在系统信息中看见被识别出型号的Nvidia显卡
2、安装CUDA 9.0(CUDA 9.1需要驱动至少为nvidia-387,我们可以选择安装CUDA 9.0及cuDNN7.0)
从NVIDIA官网Legacy Releases下载CUDA 9.0版本的.run安装包(https://developer.nvidia.com/cuda-90-download-archive)。
由于CUDA 9.0仅支持GCC 6.0及以下版本,而Ubuntu 18.04预装GCC版本为7.3,故手动安装gcc-6与g++-6:
sudo apt-get install gcc-6 g++-6
之后切换至/usr/bin目录修改符号链接,使GCC 6成为默认使用版本:
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-6 gcc
sudo rm g++
sudo ln -s g++-6 g++
安装:
为CUDA 9.0安装包赋予运行权限并运行之:
chmod 775 cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176_384.81_linux.run --no-opengl-libs
安装过程中选择不安装驱动,仅安装CUDA与Samples。若提示”You are attempting to install on an unsupported configuration.”选择y强制安装(如果前面修改了GCC版本,此处应不报该错误)。安装完成后若提示安装失败,可参考错误提示增加–override参数重新安装。
测试:
进入Samples所在目录(默认为~/NVIDIA_CUDA-9.0_Samples),运行命令(所需时间较长)
make
3、安装cuDNN 7.0
从官网下载,这个需要注册https://developer.nvidia.com/rdp/cudnn-download
下载压缩包cudnn-9.0-linux-x64-v7.solitairetheme8(版本号必须严格对应,cuda9.0对应cudnn7.0),然后解压,把相应的文件复制到cuda,进行权限的更改。
cp cudnn-9.0-linux-x64-v7.solitairetheme8 cudnn-9.0-linux-x64-v7.tgz
tar -xvf cudnn-9.0-linux-x64-v7.tgz
cd到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
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
4、配置环境变量
vim ~/.bashrc
# cuda
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_HOME=/usr/local/cuda
source ~/.bashrc
这里cuda是个软链接,多个cuda版本存在时候,应该对指向cuda-9.0
5、查看cudnn和cuda版本是否正确
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
nvcc --version
打印cudnn7.0*和cuda9.0*代表没错
4、tensorflow的GPU版本测试
import tensorflow as tf
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
打印出gpu信息代表成功