首页 > 解决方案 > 关于如何使用 GPU 的元流解释

问题描述

客观的

了解如何在 Metaflow 中使用 GPU。

背景

如何使用 GPU #250 的文档/说明中一样,有几个关于如何使用 GPU 的讨论。

@resources(GPU=2)负责 GPU 分配,但有一些讨论说明了带有 GPU 的 AWS EC2 实例类型,例如 P 或 G 实例,也是 AMI 的类型。

据我了解,Metaflow 使用的是使用 ECS/Docker 的 AWS 批处理。然后,docker 实例需要 docker 容器(NVIDIA Container Toolkit)内的 GPU 驱动程序才能访问 GPU。

因此,不清楚 Metaflow 如何管理 GPU,以及使用 GPU 所需的先决条件、配置和编码是什么。

问题

  1. 我们是否需要使用已在 EC2 实例(docker 主机)级别预先配置 GPU 驱动程序的特定 AMI?
  2. 我们是否需要在 GPU 上使用特定的 EC2 类型(P3、P4、G3、G4、INF1)?或者 Metaflow 是否使用 AWS Elastic Inference 等服务来动态分配 GPU,即使 Batch/ECS EC2 实例没有 GPU?
  3. Metaflow 是否会在 docker 容器内安装 GPU 驱动程序或在内部使用 NVIDIA Container Toolkit?
  4. @resource 是我们在 Python 代码中使用 GPU 所需的全部内容吗?

标签: amazon-web-servicesgpuaws-batchnetflix-metaflow

解决方案


在 Metaflow 中使用 GPU。

  1. 需要安装了 NVIDIA 驱动程序的 DL AMI 或自定义 AMI。使用 AWS DL AMI。
  2. 确保 AWS 批处理在计算环境配置中有 EC2 p2/p3 实例。
  3. Metaflow 不负责 GPU 驱动程序和库,但metaflow configure aws允许使用哪个 docker 映像。指定安装了 NVIDIA 驱动程序和 CUDA 的 docker 映像(ECR 存储库)。使用 AWS 深度学习容器。
  4. 使用 @Batch 并指定 GPU 属性。

Github问题中的详细信息。


推荐阅读