

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Jalankan Pelatihan dengan EFA
<a name="your-algorithms-training-efa"></a>

 SageMaker AI menyediakan integrasi dengan perangkat [EFA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html) untuk mempercepat aplikasi High Performance Computing (HPC) dan pembelajaran mesin. Integrasi ini memungkinkan Anda untuk memanfaatkan perangkat EFA saat menjalankan pekerjaan pelatihan terdistribusi Anda. Anda dapat menambahkan integrasi EFA ke wadah Docker yang ada yang Anda bawa ke SageMaker AI. Informasi berikut menguraikan cara mengonfigurasi kontainer Anda sendiri untuk menggunakan perangkat EFA untuk pekerjaan pelatihan terdistribusi Anda. 

## Prasyarat
<a name="your-algorithms-training-efa-prereq"></a>

 Wadah Anda harus memenuhi [spesifikasi wadah SageMaker Pelatihan](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-dockerfile.html).  

## Instal EFA dan paket yang diperlukan
<a name="your-algorithms-training-efa-install"></a>

Wadah Anda harus mengunduh dan menginstal [perangkat lunak EFA](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html). Ini memungkinkan penampung Anda mengenali perangkat EFA, dan menyediakan versi Libfabric dan Open MPI yang kompatibel. 

Alat apa pun seperti MPI dan NCCL harus dipasang dan dikelola di dalam wadah untuk digunakan sebagai bagian dari pekerjaan pelatihan Anda EFA-enabled . Untuk daftar semua versi EFA yang tersedia, lihat [Verifikasi penginstal EFA menggunakan](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-verify.html) checksum. Contoh berikut menunjukkan cara memodifikasi Dockerfile EFA-enabled wadah Anda untuk menginstal EFA, MPI, OFI, NCCL, dan. NCCL-TEST

**catatan**  
Saat menggunakan PyTorch dengan EFA pada wadah Anda, versi NCCL wadah Anda harus cocok dengan versi NCCL instalasi Anda. PyTorch Untuk memverifikasi versi PyTorch NCCL, gunakan perintah berikut:  

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

## Pertimbangan saat membuat wadah Anda
<a name="your-algorithms-training-efa-considerations"></a>

Perangkat EFA dipasang ke wadah seperti `/dev/infiniband/uverbs0` di bawah daftar perangkat yang dapat diakses ke wadah. Pada instance P4d, wadah memiliki akses ke 4 perangkat EFA. Perangkat EFA dapat ditemukan dalam daftar perangkat yang dapat diakses ke wadah sebagai: 
+  `/dev/infiniband/uverbs0` 
+  `/dev/infiniband/uverbs1` 
+  `/dev/infiniband/uverbs2` 
+  `/dev/infiniband/uverbs3` 

 [Untuk mendapatkan informasi tentang nama host, nama host peer, dan antarmuka jaringan (untuk MPI) dari `resourceconfig.json` file yang disediakan untuk setiap instance kontainer, lihat Konfigurasi Pelatihan Terdistribusi.](https://docs.aws.amazon.com/sagemaker/latest/dg/your-algorithms-training-algo-running-container.html#your-algorithms-training-algo-running-container-dist-training) Container Anda menangani lalu lintas TCP reguler antar rekan melalui Elastic Network Interfaces (ENI) default, sambil menangani lalu lintas OFI (kernel bypass) melalui perangkat EFA. 

## Verifikasi bahwa perangkat EFA Anda dikenali
<a name="your-algorithms-training-efa-verify"></a>

  Untuk memverifikasi bahwa perangkat EFA dikenali, jalankan perintah berikut dari dalam container Anda. 

```
/opt/amazon/efa/bin/fi_info -p efa
```

Output-nya semestinya mirip dengan yang berikut.

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

## Menjalankan pekerjaan pelatihan dengan EFA
<a name="your-algorithms-training-efa-run"></a>

 Setelah Anda membuat EFA-enabled wadah, Anda dapat menjalankan pekerjaan pelatihan dengan EFA menggunakan SageMaker AI Estimator dengan cara yang sama seperti yang Anda lakukan dengan gambar Docker lainnya. Untuk informasi lebih lanjut tentang mendaftarkan kontainer Anda dan menggunakannya untuk pelatihan, lihat [Mengadaptasi Wadah Pelatihan Anda Sendiri](https://docs.aws.amazon.com/sagemaker/latest/dg/adapt-training-container.html#byoc-training-step5).