AWS EC2 实例在重启后失去 GPU 支持
Posted
技术标签:
【中文标题】AWS EC2 实例在重启后失去 GPU 支持【英文标题】:AWS EC2 instance losing GPU support after reboot 【发布时间】:2019-08-11 04:15:00 【问题描述】:在星期二重新启动一个实例时,我首先遇到了在具有 Ubuntu 深度学习 AMI 的 AWS p2.xlarge 机器上失去 GPU 支持的问题。
我现在在两天内测试了 3 次,一位同事也遇到了同样的问题,所以我猜是 AWS 的错误。虽然也许有人知道如何更好地调试它。
基本上,在关闭并重新启动后,实例不再将 nvidia 模块加载到内核中。此外,根据 dmesg,似乎加载了不同的内核。所有这一切都是在我没有主动造成的情况下发生的。
以下是使用新实例和无自定义代码重现问题的步骤。我在爱尔兰 (eu-west-1) 工作,该实例在可用区 eu-west-1a 中启动:
启动了“深度学习 AMI (Ubuntu) 版本”的实例 21.2 (ami-0e9085a8d461c2d01) 实例类型:p2.xlarge,所有默认值 登录实例,只运行了以下四个命令:ubuntu@...:~$ lsmod | grep nvidia
nvidia 16592896 0
ipmi_msghandler 49152 1 nvidia
dmesg | less
...
[ 0.000000] Linux version 4.4.0-1075-aws (buildd@lgw01-amd64-035) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #85-Ubuntu SMP Thu Jan 17 17:15:12 UTC 2019 (Ubuntu 4.4.0-1075.85-aws 4.4.167)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-1075-aws root=UUID=96950bba-70e8-4a4b-9d78-d2bc1c767e04 ro console=tty1 console=ttyS0 nvme.io_timeout=4294967295
...
ubuntu@...:~$ nvidia-smi
Tue Mar 19 16:41:53 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.79 Driver Version: 410.79 CUDA Version: 10.0 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 Tesla K80 On | 00000000:00:1E.0 Off | 0 |
| N/A 42C P8 32W / 149W | 0MiB / 11441MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
ubuntu@...:~$ sudo shutdown now
实例没有立即关闭,可能它正在运行更新,但我没有主动触发。
状态显示“已停止”后,通过 AWS 管理控制台再次启动实例
运行前三个命令:
ubuntu@...:~$ lsmod | grep nvidia
(no output)
dmesg | less
...
[ 0.000000] Linux version 4.4.0-1077-aws (buildd@lcy01-amd64-021) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #87-Ubuntu SMP Wed Mar 6 00:03:05 UTC 2019 (Ubuntu 4.4.0-1077.87-aws 4.4.170)
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.4.0-1077-aws root=UUID=96950bba-70e8-4a4b-9d78-d2bc1c767e04 ro console=tty1 console=ttyS0 nvme.io_timeout=4294967295
...
ubuntu@...:~$ nvidia-smi
NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.
如何强制使用内核 4.4.0-1075-aws 启动?由于是 hvm 虚拟化,所以无法直接在对话框中选择内核。
【问题讨论】:
我在 eu-central(法兰克福)遇到了完全相同的问题。发生在具有深度学习 AMI (Ubuntu) 版本 21.2 的 p2.xlarge 和 p3.2xlarge 实例上。到目前为止没有任何帮助,只能终止该实例并从头开始一个新实例,由于从 s3 下载所有数据,这是一个巨大的痛苦。 【参考方案1】:在 4.4.0-107x-aws 内核上构建较旧的 NVIDIA 驱动程序似乎存在问题。您可以安装更新的 NVIDIA 驱动程序,它应该可以在当前内核上正常工作:
wget http://us.download.nvidia.com/tesla/410.104/NVIDIA-Linux-x86_64-410.104.run
sudo sh ./NVIDIA-Linux-x86_64-410.104.run --no-drm --disable-nouveau --dkms --silent --install-libglvnd
据 AWS 代表称,驱动程序已于 2019 年 3 月 21 日在深度学习 AMI 中更新 [AWS forums]。
【讨论】:
感谢@Mito,现已修复。 谢谢你,@alkamid。我刚刚测试了新映像,它似乎可以工作:它直接使用 4.4.0-1077-aws 内核启动,但安装了 nvidia 模块。这在重新启动后保持不变。由于我不再有“损坏”实例,因此我无法测试驱动程序更新,但对我来说,它现在可以与新实例一起使用。 我不知道为什么,但sudo sh ./NVIDIA-Linux-x86_64-410.104.run
为我工作,当我使用命令行选项时,我只得到错误。
体验了因 g4dn.xlarge ubuntu 服务器重启综合症而损坏的 nvidia。通过docs.nvidia.com/datacenter/tesla/tesla-installation-notes/… 的复制意大利面舞解决了这个问题【参考方案2】:
我遇到了同样的问题,它帮助我做到了
sudo apt-get install nvidia-cuda-toolkit
sudo reboot
祝你好运!
【讨论】:
以上是关于AWS EC2 实例在重启后失去 GPU 支持的主要内容,如果未能解决你的问题,请参考以下文章