重启后AWS EC2实例失去对GPU的支持

Sim*_*mon 9 kernel gpu nvidia amazon-ec2 amazon-web-services

在星期二重新启动实例时,我首先遇到了一个问题,即在使用Ubuntu Deep Learning 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
Run Code Online (Sandbox Code Playgroud)
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
...
Run Code Online (Sandbox Code Playgroud)
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                                                 |
+-----------------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
ubuntu@...:~$ sudo shutdown now
Run Code Online (Sandbox Code Playgroud)
  • 该实例不会立即关闭,也许它正在运行更新,但是我还没有主动触发。
  • 状态显示为“已停止”后,通过AWS管理控制台再次启动实例
  • 运行前三个命令:
ubuntu@...:~$ lsmod | grep nvidia
(no output)
Run Code Online (Sandbox Code Playgroud)
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
...
Run Code Online (Sandbox Code Playgroud)
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.
Run Code Online (Sandbox Code Playgroud)

我如何强制使用内核4.4.0-1075-aws引导?由于是hvm虚拟化,因此无法直接在对话框中选择内核。

alk*_*mid 8

在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 
Run Code Online (Sandbox Code Playgroud)

根据AWS代表的说法,驱动程序已于2019年3月21日在深度学习AMI [ AWS论坛 ]中进行了更新。