[教程]Debian 10 Buster下Cuda+Cudnn+PyTorch环境的安装配置

发布于 2020-05-06  2.73k 次阅读


-1:关于这篇教程

上期装好机器后,我原本准备在Ubuntu 20.04系统上安装配置Cuda+Cudnn+PyTorch环境使用。但是,按照教程配置完成,重启机器后:

系统炸了!

图形界面弹出Welcome,没错,就是安装完成首次启动让你注册账户的那个教程;tty界面除了root外登陆任何账户都直接闪退,反复login;用root su到其他账户提示sh: cannot execute zsh: Permission Denied;ssh任何账户都无法登陆。

图形界面按照教程重新注册账户后,原来的账户可通过切换用户手动登陆,但是,原来的账户和新账户都无法执行一些基本命令,比如sudo,提示uid must be 0什么的,切换到root重新chown、chmod无效。

没办法,只能重装。

一张图能表示我当时的心情:

对于Ubuntu,我只想说:

在正式开始之前,请随我大喊三遍:辣鸡Ubuntu!辣鸡Ubuntu!辣鸡Ubuntu!

重装系统的话,当然不会再次选择Ubuntu。于是,我安装了传说中的Debian。

在Debian 10上部署Cuda 10环境的教程国内目前似乎还没有,在参考各种资料反复折腾后,我终于成功安装的Cuda+Cudnn环境。为了方便后人,便有了这篇教程。

0.准备文件:

你需要准备这些工具、文件:

0.一台具备Nvidia显卡的计算机。

1.Nvidia显卡闭源驱动:下载地址,推荐使用Linux 64Bit版本。

2.Cuda Toolkit:下载地址,推荐使用Linux-x86_64-Ubuntu--18.04-runfile(local)版本。

3.Cudnn library for Linux:下载地址,推荐使用Linux tar.gz版。需要Nvidia开发者账户。

注意以上3者版本必须对应。笔者选用的是截止写稿当日的最新版本:440版本驱动,10.2版本Cuda、Cudnn。

如果你下载的不是以上的推荐版本,那么接下来的教程可以不用看了,右上(macOS左上)点叉,谢谢。

1.准备系统:

1.1安装Debian。

Debian安装镜像下载地址。如果你的宽带接入>=100mbps的话,建议使用netinst镜像进行网络安装,毕竟写iso也要时间。什么?2020年你的网络接入速度不到100M?无论如何,你都需要耐~心~

强烈推荐在安装Debian时安装图形界面!否则安装Nvidia闭源驱动后Xorg可能无法安装!(Nvidia驱动替换了Xorg的一些文件)

笔者选择的软件包为GNOME+ssh server+System Utilities。

1.2准备系统

这时你的图形界面可能会非常卡顿。所以我们不用图形界面。Ctrl+Alt+F2切换tty2,从命令行界面进行登陆。

在这一阶段可以对系统进行个性化处理。

包括但不限于:

apt换源:

切换到root账户,修改source.list

su root
nano /etc/apt/source.list

笔者使用的是aliyun源。

deb https://mirrors.aliyun.com/debian/ buster main contrib non-free
deb https://mirrors.aliyun.com/debian/ buster-backports main contrib non-free
deb https://mirrors.aliyun.com/debian/ buster-updates main contrib non-free
deb https://mirrors.aliyun.com/debian-security/ buster/updates main contrib non-free

注意如果需要使用https的话,需先安装包apt-transport-https。

用户加sudo:

su root
visudo

在root  ALL=(ALL:ALL) ALL后插入你的用户名,例如Amagi   ALL=(ALL:ALL) ALL。

用户改名(不推荐):

首字母大写强迫症患者福音。

以root从tty登陆。

usermod -l NewUser -d /home/NewUser -m OldUser
groupmod -n NewUser OldUser

这时你的用户名已经改变啦~退出root,用新的用户名登陆吧。

1.3传输文件

将你从Nvidia下载的3个包以(包括但不限于)U盘、sftp、http、ftp、smb等形式传到这台运行Debian的机器上。

由于小白不会挂载U盘,http、ftp、smb等方式由需要服务器,所以个人推荐sftp。

(什么?你说在机器上现下?如果你不介意图形界面非常卡那可以尝试)

2.安装显卡驱动:

Nvidia闭源驱动与系统自带的nouveau驱动冲突。若想正常安装则需先手动禁用nouveau驱动。

sudo nano /etc/modprobe.d/disable-nouveau.conf

输入以下内容:

blacklist nouveau
options nouveau modeset=0

我的文件是由安装器安装失败自动生成的,所以文件名不同。

之后执行

sudo update-initramfs -u

重新生成ramfs。

sudo reboot

重启系统。

之后,你将看到一个分辨率不对的图形界面和tty界面。由于禁用了nouveau驱动,系统无法获得显示器分辨率。不过好在,图形界面不卡顿了。

进入tty界面,安装linux-source, linux-headers软件包:

sudo apt install linux-source linux-headers-4.19.0-8-all-amd64

linux-source的版本会自动识别,linux-headers需手动指定与内核版本一致。查看内核版本的命令为uname -a。

之后,cd到你存放3个下载文件的文件夹:

sudo sh ./NVIDIA-Linux-x86_64-440.82.run

可执行文件修改成你自己的文件名。

一路Yes下去。如果没有错误信息的话,就算安装完成。

sudo reboot

重启计算机。

这时你会发现图形界面的分辨率正常了,也不再卡顿。但是tty界面分辨率问题依旧。

从现在起,你便可以登陆图形界面进行操作了。

UPD 2020.05.12:

强烈建议驱动安装完成后锁定系统内核版本,以免更新内核导致驱动失效!

强烈建议驱动安装完成后锁定系统内核版本,以免更新内核导致驱动失效!

强烈建议驱动安装完成后锁定系统内核版本,以免更新内核导致驱动失效!

锁定内核的命令为:

sudo apt-mark hold linux-image-4.19.0-8-amd64

(后面修改为你当前的内核版本)

众所周知,sudo apt dist-upgrade更新会导致grub自动使用更新后的最新内核引导,这将导致第三方显卡驱动失效!如果此情况已经发生,你唯二的选择为:修改grub.cfg指定内核、接显示器在grub引导时选高级选项指定内核。或者,回到教程开始,重装显卡驱动?

3.安装Cuda:

sudo sh ./cuda_10.2.89_440.33.01_linux.run

可执行文件修改成你自己的文件名。

把驱动的框选取消掉,我们已经提前安装了显卡驱动。

一路Yes进行安装即可。

在~/.bashrc(zsh为~/.zshrc)添加以下字段:

export PATH=/usr/local/cuda-10.2/bin:/usr/local/cuda-10.2/NsightCompute-2019.1${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64

之后检测安装是否成功:

/usr/local/cuda-10.2/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

正常输出Result=Pass,则证明安装成功。

4.安装Cudnn:

解压cudnn-10.2-linux-x64-v7.6.5.32.tgz

执行以下命令:

sudo cp cuda/include/cudnn.h /usr/local/cuda-10.2/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-10.2/lib64
sudo chmod a+r /usr/local/cuda-10.2/include/cudnn.h 
sudo chmod a+r /usr/local/cuda-10.2/lib64/libcudnn*

检测安装是否成功。

cat /usr/local/cuda-10.2/include/cudnn.h | grep CUDNN_MAJOR -A 2

5.安装PyTorch:

sudo apt install python3-pip -y && sudo pip3 install torch

pip不需要换源,谁的局域网还没个透明代理

等待程序自动完成即可。

6.结束:

最后上截图:

(安装插件dash-to-dock,并用dconf-editor修改了gnome的配置文件调出最大化、最小化、隐藏按钮)

(花式秀机器)(也就那台i9还算够看)

Debian 10部署Cuda+Cudnn+PyTorch环境就算完成啦~似乎也不难嘛。

既然Debian这么香,为什么还要用Ubuntu呢?

所以:天灭Ubuntu,Debian保平安!

参考链接:

https://zhuanlan.zhihu.com/p/72298520

https://askubuntu.com/questions/841876/how-to-disable-nouveau-kernel-driver

http://forums.debian.net/viewtopic.php?t=79249

转载请注明出处。(不过我猜那些垃圾营销号也不会转载我的文章)


Faster than LIGHT