如何在 AWS ec2 实例上安装 Nvidia CUDA 驱动程序?

如何在 AWS ec2 实例上安装 Nvidia CUDA 驱动程序?

我正在使用 AWS 实例,但 Nvidia CUDA 驱动程序未安装在那里。我需要帮助在 ec2 安装上安装 Nvidia CUDA 驱动程序。

Ubuntu 版本是 18.04,实例是基于 GPU 的。显卡是 nvidia t4。我用的是 g46nxlarge 实例。

答案1

EC2实例g4dn.xlarge不是典型的虚拟机,因为它具有一些独特的功能,使机器能够直接与专用显卡交互。因此,有专门的 AMI 用于深度学习虚拟工作站, 和赌博。但是,如果你坚持从头开始,亚马逊有提供了一步一步向您展示如何在实例上安装 CUDA 驱动程序。

要点如下:

  1. 访问NVIDIA 驱动程序搜索页面搜索适合您的安装的驱动程序包: NVIDIA 驱动程序搜索结果
  2. 使用以下步骤安装驱动程序NVIDIA 数据中心文档,不要忘记无数安装后步骤

考虑到手动安装的步骤和可能出错的方式,您可能希望首先从预构建的 AMI 开始,然后再使用自定义安装(如果需要)进行重建。

答案2

选项 1)预安装的驱动程序,例如“AWS Deep Learning Base GPU AMI(Ubuntu 20.04)”

此 AMI 记录于:https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/可以在 AWS EC2 Web UI 启动实例上找到它,方法是在“Quickstart AMI”部分下搜索“gpu”(顺便说一句,他们的搜索很糟糕)。我相信它是由亚马逊维护的。

我已经在上进行了测试g5.xlarge,记录如下:https://aws.amazon.com/ec2/instance-types/g5/我相信,截至 2023 年 12 月,这是目前最强大的单个 Nvidia GPU 机器(Nvidia A10G)。请确保使用美国地区,因为那里的价格更便宜,us-east-1(北弗吉尼亚)是我检查时最便宜的地区之一,每小时 1.006 美元,因此对于发达国家的大多数人来说,这是微不足道的成本。只需确保每次关闭虚拟机即可避免继续付费!!!

另一个可行的替代方案是g4dn.xlarge,它是最便宜的 GPU 机器,每小时 0.526 美元us-east-1,运行 Nvidia T4,但我认为它没有多大意义,因为它的价格只是最强大的 GPU 选择的一半,所以为什么不选择最强大的 GPU 呢?它可能会通过更快地进行此类交互式实验来节省您宝贵的时间?这应该只在优化部署成本时考虑。

此外,要访问g5.xlarge,首先您必须请求将 vCPU 限制增加到 4,如下所示:https://stackoverflow.com/questions/68347900/you-have-requested-more-vcpu-capacity-than-your-current-vcpu-limit-of-0由于 GPU 机器似乎都需要至少 4 个 vCPU,因此这非常烦人。

一旦您最终获得实例和图像,运行:

nvidia-smi

正常运行并返回:

Tue Dec 19 18:43:59 2023       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.104.12             Driver Version: 535.104.12   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA A10G                    On  | 00000000:00:1E.0 Off |                    0 |
|  0%   18C    P8               9W / 300W |      4MiB / 23028MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+

这意味着驱动程序正在运行,从那时起,我设法运行了几个使用 GPU 的软件,并观察nvidia-smiGPU 使用率上升的情况。

文档页面还链接到:https://docs.aws.amazon.com/dlami/latest/devguide/gs.html这是关于所谓“AWS 深度学习 AMI”(DLAMI)的指南,它似乎是 AWS 精选的深度学习 AMI 变体,但不幸的是,其中记录的许多变体使用的是 Amazon Linux(基于 RPM)而不是 Ubuntu。

启动它的示例 AWS CLI 是:

aws ec2 run-instances --image-id ami-095ff65813edaa529 --count 1 --instance-type g5.xlarge \
  --key-name <yourkey> --security-group-ids sg-<yourgroup>

选项 2)在基础 Ubuntu 映像“Ubuntu Server 22.04 LTS (HVM)”上自行安装驱动程序

此选项会增加安装时间,但其优点是可以为您提供较新的 Ubuntu 并更好地了解映像中包含的内容。在 Ubuntu 22.04 上安装驱动程序非常简单,因此这绝对是一个可行的选择。

只需选择启动实例时 Amazon 建议的第一个 Ubuntu AMI 并运行:

sudo apt update
sudo apt install nvidia-driver-510 nvidia-utils-510
sudo reboot

从那时起nvidia-smi,其他一切都正常进行g5.xlarge

相关问题:https://stackoverflow.com/questions/63689325/how-to-activate-the-use-of-a-gpu-on-aws-ec2-instance

答案3

不确定这是否适用于 Ubuntu 18.04,但我在 Ubuntu 22.04 上测试了这种方法。不过,我还是发布了这个答案,以防其他使用 22.04 的人想做同样的事情。

我尝试了互联网上的几个博客,最后我按照这个博客成功安装了 nvidia 驱动程序:https://www.linuxcapable.com/install-nvidia-drivers-on-ubuntu-linux/(我遵循了第 1、2 和 3 部分)

在此过程中,我清除了所有现有的 nvidia 东西,然后使用 sudo ubuntu-drivers autoinstall。然后nvidia-smi为我工作。

我在 EC2 类型 p2.xlarge(使用 Tesla K80)和 p3.2xlarge(使用 Tesla V100)上测试了这种方法,两种方法都有效。

操作系统:Ubuntu 22.04(x86_64)

答案4

如果其他读者有同样的问题,可以参阅官方文档,了解如何在基于 GPU 的实例上安装 GPU 和 CUDA这里

相关内容