AWS EC2 实例在重启后失去 GPU 支持
AWS EC2 instance losing GPU support after reboot
星期二重新启动一个实例,我首先 运行 解决了在具有 Ubuntu 深度学习 AMI 的 AWS p2.xlarge 机器上失去 GPU 支持的问题。
我两天测试了三次,一个同事遇到了同样的问题,所以我猜这是一个 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
- 实例不会立即关闭,可能是 运行 更新但我没有主动触发。
- 状态显示"stopped"后,再次通过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虚拟化,无法在对话框中直接选择内核
在 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 日在 Deep Learning AMI 中更新[AWS forums]。
我遇到了同样的问题,它帮助我做到了
sudo apt-get install nvidia-cuda-toolkit
sudo reboot
祝你好运!
星期二重新启动一个实例,我首先 运行 解决了在具有 Ubuntu 深度学习 AMI 的 AWS p2.xlarge 机器上失去 GPU 支持的问题。
我两天测试了三次,一个同事遇到了同样的问题,所以我猜这是一个 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
- 实例不会立即关闭,可能是 运行 更新但我没有主动触发。
- 状态显示"stopped"后,再次通过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虚拟化,无法在对话框中直接选择内核
在 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 日在 Deep Learning AMI 中更新[AWS forums]。
我遇到了同样的问题,它帮助我做到了
sudo apt-get install nvidia-cuda-toolkit
sudo reboot
祝你好运!