突然,坏了的Ubuntu…. Ubuntu啊,愿你永远存在
这是NISE(南山大学青山研究室)Advent Calendar 2019的第18天的文章。
今年,那些在正式环境犯了错的人的圣诞日历2019非常热闹啊!
这次的故事与此相似。在这里的故事几乎是非虚构的,所以请您事先留意。
那个时候的情况
这个事件其实并不是很久远,发生在刚刚一个月前,可以说是非常新鲜的。目前在NISE这个研究所里,学士生有25人(其中一人正在澳大利亚留学),研究生有8人(其中3人是社会人),他们各自被分配到了一个研究室。
每个房间都安装了配备GPU的台式电脑,在问题上出现在Ubuntu操作系统上。
不经意地…
我将列出该台电脑的技术规格。
PC名MASTERPIECE版本OSWindows 10 Home 64比特,Ubuntu18.04和CPUIntel Core i7双系统,Geforce 1080ti显卡,64GB内存SSD512GBHDD1TB
这种感觉。
从学部的成员那里,他们告诉我说他们想要用GPU来运行keras,并且说他们在今年夏天左右进行了环境设置后就没有再碰过了。因此,我认为内部的软件更新也没有进行,各种软件都变得相当陈旧。
有一天,学部的成员们告诉我,希望我能更新Python,于是我尝试在Ubuntu上安装pyenv。
$ apt install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev
由于需要安装各种库,因此我尝试使用apt进行安装。到目前为止一切顺利,但是在那之后,
有 214 个软件包可以更新。
其中 34 个更新是安全更新。
:
*** 需要重新启动系统 ***
我察觉到出现了类似的讯息。
哎呀,我想念更新信息这种事情应该更勤快一点…发这样的想法是错的。
$ apt update
$ apt upgrade
$ apt dist-upgrade
执行了,并随后重新启动。
画面比例有问题
在重新启动后,我选择了Ubuntu并尝试启动,但出现了令人意外的登录循环。
但从16.04升级到18.04后开始经常发生
我通过参考这篇文章,从恢复模式下禁用了 Wayland,解决了问题。
在这里,我记得我又一次以类似的心情进行了恢复。
实际上,在无效化之后,您仍然可以登录并查看常见的界面…
「咦?这个图标好大哦??」
我不小心说了出来。
平时应该按照显示器的比例来显示,但却变成了比平时更大的16:9的比例。
在这里,后辈提出了希望将显示器分成两个,并分别连接到HDMI和DisplayPort上。
虽然HDMI的显示出现了奇怪的画面比例,但它还是能够显示;然而,DisplayPort的显示却无法被识别。
嗯,暫時先放棄並就此使用下去也是一個選擇,但在眼前出現錯誤而不解決,對於一個工程師來說是不合適的,所以我決定面對電腦並解決問題。
NVIDIA的黑暗
我检查了一下,nvidia-smi仍在运行中…
Failed to initialize NVML: Driver/library version mismatch
现在可以显示了
哎呀~
我之前还在想,如果重新启动,问题会不会解决呢。但是,当我重新启动后,我们再也没有看到登录界面的出现。
a. 危险
内心的不安逐渐蔓延而变得巨大。
很幸运,我成功切换到恢复模式,并从那里登录了。
在Ubuntu 18.04安装NVIDIA驱动
在Ubuntu 18.04安装NVIDIA驱动时遇到了困难。
我拼命地进行了大量的搜索,努力尝试不断,但就算是从恢复模式中也无法登录,我的屏幕变得一片黑暗,与我的脑海一样陷入了相同的状态。
不过,我记起来在内部我们将研究所需的代码等储存在Github的私有仓库中进行管理,同时也在Google云盘上备份了图片截图、构建的模型等内容。
我决定重新安装Ubuntu 18.04。
将Ubuntu 18.04的ISO重新烧录到USB设备并连接。
在整理的同时,我重新安装了Ubuntu。
之前创建的磁盘映像还留存着,真是太好了。
深度学习环境的构建之隐患
好了,现在问题来了。
在我们实验室中,我们推荐使用Chainer作为深度学习框架。
在使用Chainer进行GPU深度学习环境时,需要安装一个名为Cupy的模块。
这个模块有点麻烦。
首先,将基本的Cuda安装到系统中。
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-repo-ubuntu1804_10.1.105-1_amd64.deb
apt update
apt upgrade
apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
apt install ./cuda-repo-ubuntu1804_10.1.105-1_amd64.deb
apt update
apt install cuda cuda-drivers
然后,设置环境变量PATH。
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
下一步是安装Cudnn。由于先前安装的cuda版本不同,因此需要注意安装的Cudnn版本也会有所不同。
wget https://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1804/x86_64/libcudnn7_7.5.0.56-1+cuda10.1_amd64.deb
apt install ./libcudnn7_7.5.0.56-1+cuda10.1_amd64.deb
apt update
apt-get install libcudnn7
然后,安装Chainer和Cupy。
需要注意的是,Cupy依赖于Cuda的版本,所以必须使用相应的版本。另外,必须先安装Cupy,然后再安装Chainer,否则在安装Chainer时会出错。
pip search cupy
pip install cupy
pip install chainer
秘籍
好啦,这样应该会顺利!但实际情况很少这么甜蜜哈哈哈。
其实,这背后有个窍门
conda install keras-gpu
有一个技巧可以一次性下载GPU相关的软件。这个方法非常简单,所以如果对深度学习框架没有特别要求的人,推荐使用这个方法。
总结
这次是关于通过apt update和apt upgrade导致安装了多个nvidia-driver版本的情况,由于我意识到得比较晚,所以最终采取重新安装Ubuntu这一最后手段来解决的故事。
作为教训,
-
-
-
- 谨慎进行更新
-
-
-
-
-
- 始终保持备份
-
-
-
-
- 不要复制粘贴查找到的解决方案
-
是的。
在这种环境搭建领域,特别是第三个问题,我原以为它和其他问题类似,结果却完全不同。这种情况经常发生,因此需要非常注意。
我想退出作为环境建设艺人的工作(愿望)。
各位朋友,如果在建立深度学习开发环境时,请务必小心。
下一次的机会
下一回,NISE(南山大学青山研究室)Advent Calendar 2019将首次登场@chi-nosuke。让我们期待他会写些什么有趣的内容吧!