环境:ubuntu18.04LTS,python3.6.5
目标环境:cuda9.0 cuDNN7.0.5_for_cuda9.0 tensorflow任意
2018.10.24更新
ubuntu18装nvidia驱动可以在设置里面切换了,所以可以直接从cuda装起,很简单。
更新end
2018.09.17更新
突然发现一条命令就可以装nvidia驱动
ubuntu-drivers autoinstall
更新end
2018.05.10原文如下:
安装依赖:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev libfreeimage3 libfreeimage-dev
卸载原有N卡驱动(如果有的话):
# 建议run文件卸载,即你之前下载的Nvidia驱动run文件
sudo chmod +x *.run
sudo ./NVIDIA-Linux-x86_64-384.59.run --uninstall
# 不建议采取这种
sudo apt-get remove --purge nvidia*
禁用nouveau驱动(十分重要):
sudo gedit /etc/modprobe.d/blacklist.conf
文本最后添加:
blacklist nouveau
options nouveau modeset=0
命令行使生效:
sudo update-initramfs -u
重启后测试如下:
(这时你的电脑分辨率会变成800*600,不要慌,装完驱动重启后就会恢复)
lsmod | grep nouveau
#如果屏幕没有输出则禁用nouveau成功
如果完成了这一步,剩下的就很简单了。
接下来准备安装Nvidia驱动:
下载适合自己显卡和系统的驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn
#给安装程序权限
sudo chmod 777 NVIDIA-Linux-x86_64-390.48.run
#安装,后面参数非常重要
sudo ./NVIDIA-Linux-x86_64-390.48.run -no-opengl-files -no-x-checks -no-nouveau-check
驱动测试:
nvidia-smi #列出GPU信息列表
Nvidia-settings #弹出设置框
#没报错就可以
重启后分辨率就回来了。
安装cuda:
sudo chmod 777 cuda_9.0.176_384.81_linux.run
sudo ./cuda_9.0.176_384.81_linux.run -toolkit -samples -override --no-opengl-libs -silent
没有提示,耐心等待。
安装后,降低gcc版本:
sudo apt install gcc-5 g++-5
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 50
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-5 50
设置cuda环境变量(比较重要,不然samples跑不起来):
vim ~/.bashrc
文本最后添加
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64:/usr/local/cuda/extras/CPUTI/lib64
export CUDA_HOME=/usr/local/cuda-9.0/bin
export PATH=$PATH:$LD_LIBRARY_PATH:$CUDA_HOME
测试cuda:
cd /usr/local/cuda-9.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery
cd ../bandwidthTest
sudo make
./bandwidthTest
看到最后结果是
Result = PASS
即可。
安装cuDNN7.0:
注册NVIDIA并下载cuDNN包:https://developer.nvidia.com/rdp/cudnn-archive
下载的包如下面安装命令所示:
sudo dpkg -i libcudnn7_7.0.5.11-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.0.5.11-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-doc_7.0.5.11-1+cuda9.0_amd64.deb
测试cuDNN:
cd /usr/src/cudnn_samples_v7/mnistCUDNN
sudo make clean
sudo make
./mnistCUDNN
看到Test passed即可。
最后安装tensorflow:
pip3 install --upgrade tensorflow-gpu
测试:
import tensorflow as tf
hello = tf.constant('hello, Tensorflow!')
sess = tf.Session()
print(sess.run(hello))
从log可以看到GPU信息,运行无报错即可。