如何在AWS EC2实例上激活GPU的使用?

问题描述 投票:0回答:3

我正在使用 AWS 在自定义数据集上训练 CNN。我启动了 p2.xlarge 实例,将我的 (Python) 脚本上传到虚拟机,然后通过 CLI 运行我的代码。

我使用 Python3(CUDA 10.0 和 Intel MKL-DNN)激活了 TensorFlow(+Keras2) 的虚拟环境,这是 AWS 的默认选项。

我现在正在运行代码来训练网络,但感觉 GPU 没有“激活”。训练的速度与我使用 CPU 在本地运行时一样快(慢)。

这是我正在运行的脚本:

https://github.com/AntonMu/TrainYourOwnYOLO/blob/master/2_Training/Train_YOLO.py

我还尝试通过将

with tf.device('/device:GPU: 0'):
放在解析器后面(第 142 行)并缩进下面的所有内容来更改它。然而,这似乎并没有改变任何事情。

有关如何激活 GPU(或检查 GPU 是否已激活)的任何提示?

python amazon-web-services tensorflow amazon-ec2 gpu
3个回答
2
投票

查看此答案以列出可用的 GPU。

from tensorflow.python.client import device_lib

def get_available_gpus():
    local_device_protos = device_lib.list_local_devices()
    return [x.name for x in local_device_protos if x.device_type == 'GPU']

您还可以使用 CUDA 列出当前设备,并在必要时设置设备

import torch

print(torch.cuda.is_available())
print(torch.cuda.current_device())

1
投票

最终还是和我的tensorflow包有关!我必须卸载tensorflow并安装tensorflow-gpu。之后GPU会自动激活。

有关文档,请参阅:https://www.tensorflow.org/install/gpu


0
投票

选项 1) 预装驱动程序,例如“AWS 深度学习基础 GPU AMI (Ubuntu 20.04)”

此 AMI 记录在:https://aws.amazon.com/releasenotes/aws-deep-learning-base-gpu-ami-ubuntu-20-04/,并且可以在 AWS EC2 Web UI Launch 上找到例如,通过在“快速入门 AMI”部分下搜索“gpu”(顺便说一句,他们的搜索非常糟糕)。我相信它是由亚马逊维护的。

我已经在

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

另一个可行的替代方案是

g4dn.xlarge
,它是最便宜的 GPU 机器,
us-east-1
上每小时 0.526 美元,并且运行 Nvidia T4,但我认为它没有什么意义,因为它只是价格的一半最强大的 GPU 选择,那么为什么不选择最强大的 GPU,它可以通过加快此类交互式实验的速度来节省您的一些宝贵时间呢?这应该只是优化部署成本时的一个考虑因素。

此外,要访问

g5.xlarge
,首先您必须请求将 vCPU 限制增加到 4,如下所示: 您请求的 vCPU 容量超过当前 vCPU 限制 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-smi
显示 GPU 使用率上升。

文档页面还链接到: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://askubuntu.com/questions/1397934/how-to-install-nvidia-cuda-driver-on-aws-ec2-instance

© www.soinside.com 2019 - 2024. All rights reserved.