最近要使用keras训练模型,要使用GPU来对模型进行训练,就尝试着去搭建环境,看了很多的博客,也尝试了很多的次,终于安装完成了。
先说一下本机的配置Ubuntu 16.04,显卡是GTX 1050TI
搭配环境时候最重要的是看一下官网的配合情况,主要是CUDA、cudnn、Nvidia Driver的配合情况。本文安装如下的环境配置,CUDA 10.0 + cudnn 7. 4 + python3.7,GCC按照Ubuntu自带的5.7就好
首先贴上安装的文件,直接下载就行
Anaconda3-2019.10-Linux-x86_64.sh #python 3.7版本
cuda_10.0.130_410.48_linux.run #CUDA 10.0
cudnn-10.0-linux-x64-v7.4.1.5.tgz #cudnn 7.4.1
NVIDIA-Linux-x86_64-410.66.run #NVIDIA Driver
链接:https://pan.baidu.com/s/19LYNWHDtSQpHeWw7eaVe1w 密码:z5zd
打开编辑配置文件:
sudo gedit /etc/modprobe.d/blacklist.conf
在最后一行添加:
blacklist nouveau
改好后执行命令:
sudo update-initramfs -u
重启使之生效:
reboot
重启后按Ctrl+Alt+F1 进入命令行界面
执行命令:
lsmod | grep nouveau
禁用X服务:
sudo /etc/init.d/lightdm stop (或者:sudo service lightdm stop)
给驱动run文件赋予可执行权限:
sudo chmod a+x NVIDIA-Linux-x86_64-410.66.run (下载的驱动文件名)
安装:
sudo ./NVIDIA-Linux-x86_64-410.66.run -no-opengl-files
–no-opengl-files 只安装驱动文件,不安装OpenGL文件。这个参数最重要
–no-x-check 安装驱动时不检查X服务
–no-nouveau-check 安装驱动时不检查nouveau
后面两个参数可不加。
开启X服务:
sudo /etc/init.d/lightdm start (或者:sudo service lightdm start)
重启,没有问题,输入命令:
nvidia-smi
直接执行如下代码
sudo sh cuda_10.0.130_410.48_linux.run
是否接受许可条款: accept
是否安装NVIDIA driver: no #因为我们已经安装了NVIDIA显卡驱动
是否安装cuda toolkit : yes
是否安装cuda samples:yes
中间会有提示是否确认选择默认路径当作安装路径,按Enter键即可。
配置环境变量:
sudo gedit ~/.bashrc
在文本末尾添加:
export PATH=/usr/local/cuda-10.0/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH
立即使配置的环境变量生效 :
source ~/.bashrc
判断cuda是否安装成功,执行:
nvcc --version
测试cuda的Samples:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
su
make
sudo ./deviceQuery
输出的最后两行类似这样的信息:
deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 10.0, CUDA Runtime Version = 10.0, NumDevs = 1, Device0 = GeForce GTX 1050 TI
Result = PASS
直接cudnn将文件解压,拷贝到cuda相应的文件夹下即可:
$ tar xvzf cudnn-10.0-linux-x64-v7.4.1.5.tgz
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/*.* /usr/local/cuda/lib64
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
默认安装python3.7即可,直接执行
sudo sh Anaconda3-2019.10-Linux-x86_64.sh
一直yes即可,下载完成后,在terminal中输入
source ~/.bashrc
将文件更新
接下来是最后一步,安装tensorflow-gpu,推荐使用清华镜像来安装,否则很慢
pip install tensorflow-gpu==1.14.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
测试是否安装成功
import tensorflow as tf
from tensorflow.python.client import device_lib
tf.__version__
tf.test.is_gpu_available()
tf.test.gpu_device_name()
local_device_protos = device_lib.list_local_devices()
[print(x) for x in local_device_protos if x.device_type == 'GPU']
output:
name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 3704487936
locality {
bus_id: 1
links {
}
}
incarnation: 13104334418384183896
physical_device_desc: "device: 0, name: GeForce GTX 1050 Ti, pci bus id: 0000:01:00.0, compute capability: 6.1"
[None]
至此,安装完成,可以开心的跑模型了。