選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

透過 EFA 執行訓練

焦點模式
透過 EFA 執行訓練 - Amazon SageMaker AI

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

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

SageMaker AI 提供與 EFA 裝置的整合,以加速高效能運算 (HPC) 和機器學習應用程式。此整合可讓您在執行分散式訓練工作時利用 EFA 裝置。您可以將 EFA 整合新增至您帶至 SageMaker AI 的現有 Docker 容器。下列資訊概述如何將您自有的容器設定為使用 EFA 裝置進行分散式訓練工作。

先決條件

您的容器必須符合 SageMaker 訓練容器規格。 

安裝 EFA 和必要套件

您的容器必須下載並安裝 EFA 軟體。這可讓您的容器辨識 EFA 裝置,並提供相容的 Libfabric 和 Open MPI 版本。

任何如 MPI 和 NCCL 等工具都必須在容器內安裝和管理,才能作為啟用 EFA 的訓練工作的一部分使用。如需所有可用 EFA 版本的清單,請參閱使用檢查總和驗證 EFA 安裝程式。下列範例會示範如何修改啟用 EFA 的容器的 Dockerfile,以安裝 EFA、MPI、OFI、NCCL 和 NCCL-TEST。

注意

在容器上透過 EFA 使用 PyTorch 時,容器的 NCCL 版本應與 PyTorch 安裝的 NCCL 版本相符。若要確認 PyTorch NCCL 版本,請使用下列命令:

torch.cuda.nccl.version()
ARG OPEN_MPI_PATH=/opt/amazon/openmpi/ ENV NCCL_VERSION=2.7.8 ENV EFA_VERSION=1.30.0 ENV BRANCH_OFI=1.1.1 ################################################# ## EFA and MPI SETUP RUN cd $HOME \ && curl -O https://s3-us-west-2.amazonaws.com/aws-efa-installer/aws-efa-installer-${EFA_VERSION}.tar.gz \ && tar -xf aws-efa-installer-${EFA_VERSION}.tar.gz \ && cd aws-efa-installer \ && ./efa_installer.sh -y --skip-kmod -g \ ENV PATH="$OPEN_MPI_PATH/bin:$PATH" ENV LD_LIBRARY_PATH="$OPEN_MPI_PATH/lib/:$LD_LIBRARY_PATH" ################################################# ## NCCL, OFI, NCCL-TEST SETUP RUN cd $HOME \ && git clone https://github.com/NVIDIA/nccl.git -b v${NCCL_VERSION}-1 \ && cd nccl \ && make -j64 src.build BUILDDIR=/usr/local RUN apt-get update && apt-get install -y autoconf RUN cd $HOME \ && git clone https://github.com/aws/aws-ofi-nccl.git -b v${BRANCH_OFI} \ && cd aws-ofi-nccl \ && ./autogen.sh \ && ./configure --with-libfabric=/opt/amazon/efa \ --with-mpi=/opt/amazon/openmpi \ --with-cuda=/usr/local/cuda \ --with-nccl=/usr/local --prefix=/usr/local \ && make && make install RUN cd $HOME \ && git clone https://github.com/NVIDIA/nccl-tests \ && cd nccl-tests \ && make MPI=1 MPI_HOME=/opt/amazon/openmpi CUDA_HOME=/usr/local/cuda NCCL_HOME=/usr/local

建立容器時的考量

EFA 裝置在可供容器存取的裝置清單下,以 /dev/infiniband/uverbs0 掛載至容器。在 P4d 執行個體上,容器可以存取 4 個 EFA 裝置。您可以在可供容器存取的裝置清單中找到 EFA 裝置,如下所示:

  • /dev/infiniband/uverbs0

  • /dev/infiniband/uverbs1

  • /dev/infiniband/uverbs2

  • /dev/infiniband/uverbs3

若要從提供給每個容器執行個體的 resourceconfig.json 檔案中取得主機名稱、對等主機名稱和網路介面 (適用於 MPI) 的相關資訊,請參閱分散式訓練組態。您的容器會透過預設彈性網路介面 (ENI) 處理對等之間的一般 TCP 流量,同時透過 EFA 裝置處理 OFI (核心繞過) 流量。

確認已辨識您的 EFA 裝置

 若要確認是否已識別 EFA 裝置,請從容器內執行以下命令。

/opt/amazon/efa/bin/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

透過 EFA 執行訓練工作

建立已啟用 EFA 的容器後,您可以使用 SageMaker AI 估算器執行 EFA 的訓練任務,方法與使用任何其他 Docker 映像相同。如需註冊容器並將其用於訓練的詳細資訊,請參閱調整您自有的訓練容器

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。