EFA AWS Deep Learning AMI を使用したインスタンスの起動 - Deep Learning AMI

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

EFA AWS Deep Learning AMI を使用したインスタンスの起動

最新版 Base DLAMI は EFA と共に使用する準備ができており、GPU インスタンス用の必要なドライバー、カーネルモジュール、Libfabric、OpenMPI および NCCL OFI プラグインが付属しています。

サポートされている Base DLAMI の CUDA バージョンは、リリースノートで確認できます。

[Note:] (メモ:)

  • EFA 上の mpirun を使用して NCCL アプリケーションを実行する際、EFA がサポートされているインストレーションへの完全なパスを以下のように指定する必要があります。

    /opt/amazon/openmpi/bin/mpirun <command>
  • アプリケーションで EFA を使用するには、DLAMI での EFA の使用 に示すように、mpirun コマンドに FI_PROVIDER="efa" を追加します。

EFA 対応のセキュリティグループを準備する

EFA には、セキュリティグループ自体との間で送受信されるすべてのトラフィックを許可するセキュリティグループが必要です。詳細については、「EFA ドキュメント」を参照してください。

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. ナビゲーションペインで [セキュリティグループ] を選択して、[セキュリティグループの作成] を選択します。

  3. [セキュリティグループの作成] ウィンドウで、以下を行います。

    • [セキュリティグループ名] に、EFA-enabled security group のような、分かりやすいセキュリティグループ名を入力します。

    • (オプション) [説明] に、セキュリティグループの簡単な説明を入力します。

    • [VPC] で、EFA 対応のインスタンスを起動する VPC を選択します。

    • [作成] を選択します。

  4. 作成したセキュリティグループを選択し、[説明] タブで [グループ ID] をコピーします。

  5. [Inbound] (インバウンド) タブおよび [Outbound] (アウトバウンド) タブで、次の手順を実行します。

    • [Edit] を選択します。

    • [Type] で、[All traffic] を選択します。

    • [ソース][カスタム] を選択します。

    • コピーしたセキュリティグループ ID をフィールドに貼り付けます。

    • [保存] を選択します。

  6. Linux インスタンスのインバウンドトラフィックの承認」を参照するインバウンドトラフィックを有効にします。このステップを抜かすと、DLAMI インスタンスと通信できなくなります。

インスタンスの起動

の EFA AWS Deep Learning AMI は現在、以下のインスタンスタイプとオペレーティングシステムでサポートされています。

  • P3dn .24xlarge: Amazon Linux 2、Ubuntu 20.04

  • P4d .24xlarge: Amazon Linux 2、Ubuntu 20.04

  • P5.48xlarge: Amazon Linux 2、Ubuntu 20.04

以下のセクションでは、EFA 対応の DLAMI インスタンスを起動する方法について説明します。EFA 対応のインスタンスの起動の詳細については、クラスタープレイスメントグループで EFA 対応のインスタンスを起動するを参照してください。

  1. Amazon EC2 コンソール (https://console.aws.amazon.com/ec2/) を開きます。

  2. [Launch Instance] (インスタンスの起動) を選択します。

  3. AMI の選択ページで、DLAMI リリースノートページにあるサポートされている DLAMI を選択します。

  4. [Choose an Instance Type] (インスタンスタイプの選択) ページで、次のいずれかのサポート対象のインスタンスタイプを選択し、[Next: Configure Instance Details] (次の手順: インスタンスの詳細の設定) を選択します。サポートされているインスタンスのリストについては、このリンクを参照してください。EFA と MPI の使用を開始する

  5. [Configure Instance Details] ページで以下の操作を実行します。

    • [インスタンス数] に、起動する EFA 対応のインスタンスの数を入力します。

    • [ネットワーク] および [サブネット] で、インスタンスを起動する VPC およびサブネットを選択します。

    • 〔オプション] プレイスメントグループ でプレイスメントグループ にインスタンスを追加 を選択します。最適なパフォーマンスを得るには、プレイスメントグループ内でインスタンスを起動します。

    • 〔オプション] プレイスメントグループ名 で、新しいプレイスメントグループ に追加 を選択し、プレイスメントグループのわかりやすい名前を入力し、プレイスメントグループ戦略 クラスター を選択します。

    • 必ず、このページで [Elastic Fabric Adapter] を有効にしてください。このオプションが無効になっている場合は、選択したインスタンスタイプに対応するサブネットに変更します。

    • [ネットワークインターフェイス] セクションの [eth0] で、[新しいネットワークインターフェイス] を選択します。必要に応じて、プライマリ IPv4 アドレスと 1 つ以上のセカンダリ IPv4 アドレスを指定できます。関連付けられている IPv6 CIDR ブロックを持つサブネットにインスタンスを起動する場合は、必要に応じて、プライマリ IPv6 アドレスと 1 つ以上のセカンダリ IPv6 アドレスを指定することができます。

    • [次の手順: ストレージの追加] を選択します。

  6. [ストレージの追加] ページで、AMI で指定されたボリュームに加えてインスタンスにアタッチするボリューム (例: ルートデバイスのボリューム) を指定し、[Next: Add Tags (次へ: タグの追加)] を選択します。

  7. [Add Tags] ページで、ユーザーフレンドリーな名前などを使ってインスタンスのタグを指定し、[Next: Configure Security Group] を選択します。

  8. セキュリティグループの設定ページで、セキュリティグループの割り当て で既存のセキュリティグループの選択 を選択し、前に作成したセキュリティグループを選択します

  9. [Review and Launch] を選択します。

  10. [インスタンス作成の確認] ページで設定を確認し、[起動] を選択してキーペアを選択し、インスタンスを起動します。

EFA 添付ファイルの確認

コンソールから

インスタンスを起動したら、 AWS コンソールでインスタンスの詳細を確認します。これを行うには、EC2 コンソールでインスタンスを選択し、ページ下のペインにある [Description (説明)] タブを確認します。[Network Interfaces: eth0 (ネットワークインターフェイス: eth0)] というパラメータを探し、eth0 をクリックするとポップアップが開きます。[Elastic Fabric Adapter] が有効になっていることを確認します。

EFA が有効になっていない場合は、次のいずれかの方法でこれを修正できます。

  • EC2 インスタンスを終了し、同じ手順で新しいインスタンスを起動します。EFA が添付されていることを確認します。

  • 既存のインスタンスに EFA を添付します。

    1. EC2 コンソールで、[Network Interfaces (ネットワークインターフェイス)] に移動します。

    2. [Create a Network Interface (ネットワークインターフェイスを作成)] をクリックします。

    3. インスタンスが入っている同じサブネットを選択します。

    4. 必ず、[Elastic Fabric Adapter] を有効にし、[Create] (作成) をクリックします。

    5. [EC2 Instances (EC2 インスタンス)] タブに戻り、インスタンスを選択します。

    6. [Actions: Instance State] (アクション: インスタンスの状態) に移動し、EFA にアタッチする前にインスタンスを停止します。

    7. [Actions (アクション)] から、[Networking: Attach Network Interface (ネットワーキング: ネットワークインタフェイスの接続)] を選択します。

    8. 先ほど作成したインターフェイスを選択し、[Attach (接続)] をクリックします。

    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 /opt/amazon/efa/test/ $ ./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

応答しなかったり完了しない場合は、セキュリティグループに正しいインバウンド/アウトバウンドルールが設定されていることを確認します。