使用 EFA 啟動 AWS Deep Learning AMI 執行個體 - 深度學習 AMI

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 EFA 啟動 AWS Deep Learning AMI 執行個體

最新的基礎 DLAMI 已準備好與 EFA 搭配使用,並隨附適用於 GPU 執行個體的必要驅動程式、核心模組、libFabric、openmpi 和 N CCL OFI 外掛程式。

您可以在發行說明中找到支援的基礎 DLAMI 的 CUDA 版本。

請注意:

  • mpirun在 EFA 上使用執行 NCCL 應用程式時,您必須將 EFA 支援安裝的完整路徑指定為:

    /opt/amazon/openmpi/bin/mpirun <command>
  • 若要讓您的應用程式能夠使用 EFA,請新增 FI_PROVIDER="efa"mpirun 命令,如 使用全民福利局於全面 DLAMI 中所示。

準備已啟用 EFA 的安全性群組

EFA 需要一個安全性群組,允許進出安全性群組本身的所有輸入和輸出流量。如需詳細資訊,請參閱 EFA 文件

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon 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 貼到欄位中。

    • 選擇儲存

  6. 參照 授權 Linux 執行個體的傳入流量來啟用傳入流量。如果跳過此步驟,將無法與 DLAMI 執行個體進行通訊。

啟動您的執行個體

上的 EFA 目前支援下列執行個體類型和作業系統: AWS Deep Learning AMI

  • 全天候:Amazon Linux 2

  • 大型:Amazon Linux 2

  • 大:Amazon Linux 2,

下一節說明如何啟動已啟用 EFA 的 DLAMI 執行個體。如需啟動 EFA 啟用執行個體的詳細資訊,請參閱將啟用 EFA 的執行個體啟動至叢集置放群組。

  1. https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 選擇 Launch Instance (啟動執行個體)

  3. 在「選擇 AMI」頁面上,選取 DLAMI 版本說明頁面上支援的 DLAM I

  4. 在 [選擇執行個體類型] 頁面上,選取下列其中一個支援的執行個體類型,然後選擇下一步:設定執行個體詳細資訊 如需支援的執行個體清單,請參閱此連結:開始使用 EFA 和 MPI

  5. Configure Instance Details (設定執行個體詳細資訊) 頁面上,執行下列操作:

    • 對於 Number of instances (執行個體的數目),輸入要啟動的具備 EFA 功能的執行個體數。

    • 對於 Network (網路)Subnet (子網),選取要在其中啟動執行個體的 VPC 和子網。

    • [選擇性] 對於「放置」群組,選取「將例證新增至放置群組」。為獲得最佳效能,請在置放群組內啟動執行個體。

    • [選擇性] 在「放置群組名稱」中,選取「新增至新的放置群組」,輸入放置群組的描述性名稱,然後針對「放置群組策略」選取叢集

    • 確保在此頁面上啟用 「彈性織物適配器」。如果停用此選項,請將子網路變更為支援您所選執行個體類型的子網路。

    • Network Interfaces (網路介面) 區段中,針對裝置 eth0,選擇 New network interface (新網路介面)。您可以選擇性指定一個主要 IPv4 地址,以及一或多個次要 IPv4 地址。如果您在有相關聯 IPv6 CIDR 區塊的子網中啟動執行個體,您可以選擇性指定一個主要 IPv6 地址,以及一或多個次要 IPv6 地址。

    • 選擇 Next: Add Storage (下一步:新增儲存體)

  6. Add Storage (新增儲存體) 頁面上,除了 AMI 指定的磁碟區 (例如根設備磁碟區),指定要連接到執行個體的磁碟區,然後選擇 Next: Add Tags (下一步:新增標籤)

  7. Add Tags (新增標籤) 頁面上,為執行個體指定標籤 (例如使用者易記的名稱),然後選擇 Next: Configure Security Group (下一步:設定安全群組)

  8. 在 [設定安全性群組] 頁面上,對於 [指派安全性群組],選取 [選取現有的安全性群組],然後選取先前建立的安全性群組

  9. 選擇 Review and Launch (檢閱和啟動)。

  10. Review Instance Launch (檢閱執行個體啟動) 頁面上,檢閱設定,然後選擇 Launch (啟動),以選擇金鑰對並啟動執行個體。

驗證 EFA 附件

從主控台

啟動執行個體之後,請在 AWS 主控台中檢查執行個體詳細資料。若要執行此操作,在 EC2 主控台中選取執行個體,然後查看頁面下方窗格中的 [Description (描述)] 索引標籤。尋找參數 “網路界面:eth0”,然後按一下 eth0 開啟一個彈出式畫面。確保「彈性織物適配器」已啟用。

如果未啟用 EFA,您可以透過以下任一方式修正此問題:

  • 終止 EC2 執行個體並按照相同的步驟啟動新的執行個體。請確定已連接 EFA。

  • 將 EFA 連接至現有的執行個體。

    1. 在 EC2 主控台中,移至 [Network Interfaces (網路界面)]。

    2. 按一下 [Create a Network Interface (建立網路界面)]。

    3. 選取您的執行個體所在的相同子網路。

    4. 確保啟用「彈性織物適配器」,然後單擊創建。

    5. 返回 [EC2 Instances (EC2 執行個體)] 索引標籤並選取您的執行個體。

    6. 移至「動作:執行個體狀態」,並在連接 EFA 之前停止執行個體。

    7. 從 [Actions (動作)] 中,選取 [Networking: Attach Network Interface (聯網:連接網路界面)]。

    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 /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

如果它停止回應或未完成,請確定您的安全性群組具有正確的入站/輸出規則。