启动Amazon Deep Learning AMIEFA 实例 - 深度学习 AMI
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

启动Amazon Deep Learning AMIEFA 实例

最新的 DLAMI 已完成配置,并随附所需的驱动程序、内核模块、libfabric、openmpi 和NCCL OFI 插件对于 GU 实例。

支持的 CUDA 版本:只有使用了 EFA 的 NCCL 应用程序才在 CUDA-10.0、CUDA-10.1、CUDA-10.1、CUDA-10.1、CUDA-10.1、CUDA-10.1、CUDA-10.1、CUDA-10.1、CUDA-10.1、

注意:

  • 运行 NCCL 应用程序时使用mpirun在 EFA, 必须将到 EFA 支持的安装的完整路径指定为:

    /opt/amazon/openmpi/bin/mpirun <command>
  • 要使您的应用程序能够使用 EFA,请将 FI_PROVIDER="efa" 添加到 mpirun 命令,如在 DLAMI 上使用 EFA中所示。

准备启用 EFA 的安全组

EFA 需要使用一个安全组,以允许进出安全组本身的所有入站和出站流量。 有关更多信息,请参阅 。EFA 文档.

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Security Groups (安全组),然后选择 Create Security Group (创建安全组)

  3. Create Security Group (创建安全组) 窗口中,执行以下操作:

    • 对于 Security group name (安全组名称),请输入一个描述性的安全组名称,例如 EFA-enabled security group

    • (可选)对于 Description (描述),请输入安全组的简要描述。

    • 对于 VPC,请选择要在其中启动启用了 EFA 的实例的 VPC。

    • 选择Create(创建)。

  4. 选择您创建的安全组,然后在 Description (描述) 选项卡上复制 Group ID (组 ID)

  5. 在存储库的入站出站选项卡中,进行以下操作:

    • 选择 Edit(编辑)。

    • 对于 Type (类型),请选择 All traffic (所有流量)

    • 对于 Source,选择 Custom

    • 将您复制的安全组 ID 粘贴到该字段中。

    • 选择Save(保存)。 

  6. 启用入站流量,请参考授权您 Linux 实例的入站流量。如果您跳过此步骤,您将无法与您的 DLAMI 实例进行通信。

启动实例

EFAAmazon Deep Learning AMI目前支持以下实例类型和操作系统:

  • p3dn.24xlarge:亚马逊 Linux、亚马逊 Linux 2、Ubuntu 16.04 和 Ubuntu 18.04

  • p4d.24xlarge:亚马逊 Linux 2、Ubuntu 16.04 和 Ubuntu 18.04

以下章节说明如何启动启用了 EFA 的 DLAMI 实例。有关启动启用 EFA 的实例的更多信息,请参阅在集群置放群组中启动启用 EFA 的实例.

  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 选择 Launch Instance(启动实例)

  3. 在存储库的选择一个 AMI页面上,选择 “深度学习 AMI (Ubuntu 18.04) 25.0版”

  4. 在存储库的选择一个实例类型页面上,选择以下支持的实例类型之一,然后选择后续:配置实例详细信息。有关支持的实例列表,请参阅此链接:EFA 和 MPI 入门

  5. Configure Instance Details (配置实例详细信息) 页面中,执行以下操作:

    • 对于 Number of instances (实例的数量),请输入要启动的启用了 EFA 的实例数量。

    • 对于 Network (网络)Subnet (子网),请选择要在其中启动实例的 VPC 和子网。

    • [可选] 对于置放群组,选择将实例添加到群组. 为获得最佳性能,请在置放群组中启动实例。

    • [可选] 对于置放群组名称,选择添加到新的置放群组,为置放群组输入一个描述性名称,然后为置放群组策略,选择聚集.

    • 请确保启用“Elastic Dapter”在本页面上。如果禁用此选项,请将子网更改为支持所选实例类型的子网。 

    • Network Interfaces (网络接口) 部分中,为设备 eth0 选择 New network interface (新网络接口)。您可以选择指定主 IPv4 地址以及一个或多个辅助 IPv4 地址。如果在具有关联的 IPv6 CIDR 块的子网中启动实例,您可以选择指定主 IPv6 地址以及一个或多个辅助 IPv6 地址。

    • 选择 Next:。Add Storage(添加存储)。

  6. 在存储库的添加存储页面上,除了 AMI 指定的卷(如根设备卷)以外,还要指定要附加到实例的卷,然后选择后续:添加标签.

  7. 在存储库的添加标签”,为实例指定标签(例如,便于用户识别的名称),然后选择后续:Configure Security Group(配置安全组)。

  8. 在存储库的配置安全组页,分配安全组,选择选择现有安全组,然后选择您之前创建的安全组.

  9. 选择 Review and Launch

  10. Review Instance Launch (核查实例启动) 页面上,检查这些设置,然后选择 Launch (启动) 以选择一个密钥对并启动您的实例。

验证 EFA 附件

通过控制台

启动实例后,在Amazon控制台。为此,请在 EC2 控制台中选择实例,然后查看页面下部窗格中的 Description (描述) 选项卡。找到参数“Network Interfaces: eth0”,然后单击 eth0,这将弹出一个弹出窗口。确保 “弹性织物适配器” 已启用。

如果未启用 EFA,您可以通过以下任一方式解决此问题:

  • 终止 EC2 实例并使用相同步骤启动新实例。确保已附加 EFA。

  • 将 EFA 附加到现有实例。

    1. 在 EC2 控制台中,转到 Network Interfaces (网络接口)。

    2. 单击 Create a Network Interface (创建虚拟网络接口)。

    3. 选择您的实例所在的相同子网。

    4. 确保启用 “弹性织物适配器” 并点击 Create (创建)。

    5. 返回 EC2 Instances (EC2 实例) 选项卡并选择您的实例。

    6. 转到操作:实例状态,并在附加到 EFA 之前停止实例。

    7. 从 “操作” 中,选择 “网络连接:附加网络接口。

    8. 选择您刚刚创建的界面,然后点击“附加”。

    9. 重新启动您的实例。

通过实例

以下测试脚本已存在于DLAMI中。运行它以确保内核模块正确加载。

$ fi_info -p efa

您的输出应类似于以下内容。

provider: efa     fabric: EFA-fe80::e5:56ff:fe34:56a8     domain: efa_0-rdm     version: 2.0     type: FI_EP_RDM     protocol: FI_PROTO_EFA provider: efa     fabric: EFA-fe80::e5:56ff:fe34:56a8     domain: efa_0-dgrm     version: 2.0     type: FI_EP_DGRAM     protocol: FI_PROTO_EFA provider: efa;ofi_rxd     fabric: EFA-fe80::e5:56ff:fe34:56a8     domain: efa_0-dgrm     version: 1.0     type: FI_EP_RDM     protocol: FI_PROTO_RXD

验证安全组配置

以下测试脚本已存在于DLAMI中。运行它以确保您创建的安全组配置正确。

$ cd ~/src/bin/efa-tests/ $ ./efa_test.sh

您的输出应类似于以下内容。

Starting server... Starting client... bytes   #sent   #ack     total       time     MB/sec    usec/xfer   Mxfers/sec 64      10      =10      1.2k        0.02s      0.06    1123.55       0.00 256     10      =10      5k          0.00s     17.66      14.50       0.07 1k      10      =10      20k         0.00s     67.81      15.10       0.07 4k      10      =10      80k         0.00s    237.45      17.25       0.06 64k     10      =10      1.2m        0.00s    921.10      71.15       0.01 1m      10      =10      20m         0.01s   2122.41     494.05       0.00

如果它停止响应或未完成,请确保您的安全组具有正确的入/出站规则。