电脑配置Deepin 20 Beta + GTX1050,tensorflow-gpu安装的版本是tensorflow-gpu 1.14.0,Python3.7,CUDA安装的版本是CUDA Toolkit 10.0,CUDNN是要与CUDA版本对应的。
最近安装了新发布的Deepin 20Beta系统,界面确实漂亮些,且适配了很常用应用,Windows10和Deepin双系统体验相当不错。
由于学习需要配置Deep Learning环境要用到Tensorflow-gpu,首先得安装闭源驱动和cuda。
下面是具体过程本文是关于tensorflow-gpu和CUDA以及cuDNN匹配安装的经记录,本人Linux小白参考网上很多资料才安装成功,故整理一下,希望能帮到有需要的人。
1、下载驱动
去NVIDIA官方下载对应的驱动
GeForce xx series 是台式机显卡驱动
GeForce xx series (Notebooks) 是笔记本驱动
比如我这台老机器是GTX1050,我就按照下图这样设置
2、禁用NVIDIA开源驱动nouveau
新建一个黑名单让系统启动的时候不去加载开源驱动
sudo dedit /etc/modprobe.d/blacklist.conf
写入以下内容:
blacklist nouveau
options nouveau modeset=0
按ESC键,输入 :wq! 保存
然后执行,
sudo update-initramfs -u
重启系统,重启后查看是否生效,
输入以下代码检查是否禁用成功
lsmod |grep -i nouveau
如果没有输出内容,证明禁用成功了。
3、安装NVIDIA闭源驱动
先检查之前时候安装过闭源驱动和大黄蜂方案,如果有最好卸载掉。
nvidia-smi
没输出内容证明没有安装过闭源驱动
(1)如果你之前使用过大黄蜂方案,需要删除大黄蜂所安装的软件,可以用以下命令:
dpkg -l | grep -i nvidia | awk '{ print $2 }' | cut -d: -f1 | xargs apt-get -y remove --purge
如果报错——无法打开锁文件 /var/lib/dpkg/lock - open (13: 权限不够),可以sudo -s 输入一次密码 进入root模式,再重试。
(2)已经下载了不合意的驱动,或是上面删除大黄蜂所安装软件后,
还需要输入dpkg -l | grep -i nvidia
命令来查看是否还有残余驱动,如果还有显示,则输入下面命令进行卸载:
sudo apt-get --purge remove nvidia*
(3)确认卸载完成之后,下面开始安装:
我下载的是NVIDIA-Linux-x86_64-440.82.run
,最好不要下载最新的驱动,有可能有Bug。
切到命令行模式,并关闭桌面程序服务,“Ctrl+Alt+F2”,进入TTY命令行模式,Ctrl+Alt+F1可以切换回来(关闭图形显示界面后,就进不了桌面了,操作失败重启命令reboot),然后登录系统,帐号密码是你登陆系统的帐号和密码(不要用小键盘数字)。
关闭图形显示界面:
sudo systemctl stop lightdm
(4)安装驱动:
cd到驱动所在目录
chmod +x NVIDIA-Linux-x86_64-440.82.run #赋予可执行权限
sudo init 3 #切换运行级别3来运行驱动安装程序(不切换可能安装失败)
sudo ./NVIDIA-Linux-x86_64-440.82.run –no-opengl-files #安装驱动文件 –no-opengl-files:只安装驱动文件,不安装OpenGL文件
安装里的选项里,只有yes和no的选yes ,有3个选项的选择中间那个over 的,最后进度条走完那个弹窗的2个选项选No,到这一步就算安装完成了
不过不要重启还需要配置,这时候重启可能会黑屏(这里很关键)
4.配置启动脚本
新建一个display_setup.sh
sudo vim /etc/lightdm/display_setup.sh
内容如下:
#!/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
xrandr --dpi 96
赋予权限:
sudo chmod +x /etc/lightdm/display_setup.sh
然后在lightdm里配置启用这个脚本
sudo vim /etc/lightdm/lightdm.conf
找到 display-setup-script这一行,去掉前面的注释,将display_setup.sh这个目录填进去
display-setup-script=/etc/lightdm/display_setup.sh
做完这些操作就可以重启了
重启后执行 nvidia-smi
如果NVIDIA的显卡并没有工作,显存一点都没占用,显示No running Processes found,还要做下面的工作。
5、设置默认Nvidia显卡工作
lspci | egrep 'VGA|3D'
执行上述命令获取nvidia显卡设备BusID,例子 01:00.0 填写PCI:1:0:0
然后编辑sudo vim /etc/X11/xorg.conf
,( /etc/X11/xorg.conf没有xorg.conf要新建一个)注意其中PCI部分填写PCI:1:0:0
编辑sudo vim ~/.xinitrc
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
xrandr --dpi 96
去官网下载适合你的CUDA,需要登录NVIDIA账号,注意要和你的驱动适配,如果要安装tensorflow2.0建议CUDA10.0或10.1。
下载CUDA
下载CuDNN
下表是NVIDIA驱动和CUDA兼容表
安装CUDA会有很多提示需要你确认,由于之前已经成功安装了显卡驱动,所以就不需要再次安装了,因此,Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 XXX.XX 这里选择 no,其余都是yes或者accept
# install cuda
chmod +x cuda_10.0.130_410.48_linux.run
sudo ./cuda_10.0.130_410.48_linux.run --override
# bashrc 添加环境变量
echo 'export PATH=/usr/local/cuda-10.0/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
# install cudnn
tar -xzvf cudnn-10.0-linux-x64-v7.6.5.32.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda-10.0/include
sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda-10.0/lib64/
sudo chmod a+r /usr/local/cuda-10.0/lib64/libcudnn*
确认是否生效,编译cuda例子执行(要确认一下gcc/g++是不是应该正确安装了,不然编译不了)
#查看gcc/g++是否安装
which gcc
which g++
nvcc -V
cd ~/NVIDIA_CUDA-10.0_Samples/1_Utilities/deviceQuery
make
./deviceQuery
到这里就安装差不多就完成了。
如果需要使用多个版本的tensorflow-gpu创建虚拟环境安装。
我已经安装过Anaconda,下载速度很慢的话,换国内的源
添加conda国内镜像:
创建虚拟环境:conda create -n your_env_name python=3.7
激活虚拟环境:conda activate your_env_name
安装cuda: conda install cudatoolkit
安装cudnn: conda install cudnn
安装tensorflow-gpu,我用的是1.14版本
我安装的时候conda下载tensorflow很慢,于是用pip安装
pip install tensorflow-gpu=1.14.0
pip换阿里源
mkdir ~/.pip
vim ~/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
现在打开终端输入:
>>> import tensorflow as tf
>>> tf.test.is_gpu_available()
如果结果是True,恭喜你安装成功!
参考:
《华为matebook win+deepin 15.11双系统 + 双显卡 + 使用/卸载大黄蜂方案 + NVIDIA独显驱动安装 + tensorflow-gpu-2.0》
《deepin 15.11 安装nvidia driver和cuda 10》
《深度科技论坛——如何手动安装NVIDIA驱动软件》