-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
转载请注明出处。(不过我猜那些垃圾营销号也不会转载我的文章)
评论~ 4 条评论
redjgray 博主
哇,一排机子,我酸了。。。
顺便吐槽下辣鸡Ubuntu的bug好多。。。
Etavioxy 博主
哇开始掉Debian的头发…
leohearts 博主
前段时间在Ubuntu 1804上装cuda, 装完驱动废了, 部分mesa OpenGL程序无法运行升级到20.04后官方支持动态显卡切换后才算是部分解决((debian支持nvidia的on-demand模式吗?就是类似bumblebee的那种)
Amagi_Yukisaki 博主
@leohearts
没有在双显卡笔记本上装过Debian,所以我也不知道。
不过应该Xorg的版本够高的话和内核没关系吧。