Jalankan Pelatihan dengan EFA - Amazon SageMaker

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

Jalankan Pelatihan dengan EFA

SageMaker menyediakan integrasi dengan perangkat EFA untuk mempercepat High Performance Computing (HPC) dan aplikasi 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. SageMaker Informasi berikut menguraikan cara mengonfigurasi kontainer Anda sendiri untuk menggunakan perangkat EFA untuk pekerjaan pelatihan terdistribusi Anda.

Prasyarat

Wadah Anda harus memenuhi spesifikasi wadah SageMaker Pelatihan

Instal EFA dan paket yang diperlukan

Wadah Anda harus mengunduh dan menginstal perangkat lunak EFA. Ini memungkinkan penampung Anda mengenali perangkat EFA, dan menyediakan versi Libfabric dan Open MPI yang kompatibel.

Alat apa pun seperti MPI dan NCCL harus diinstal dan dikelola di dalam wadah untuk digunakan sebagai bagian dari pekerjaan pelatihan yang mendukung EFA Anda. Untuk daftar semua versi EFA yang tersedia, lihat Verifikasi penginstal EFA menggunakan checksum. Contoh berikut menunjukkan cara memodifikasi Dockerfile dari wadah berkemampuan EFA Anda untuk menginstal EFA, MPI, OFI, NCCL, dan NCCL-TEST.

catatan

Saat menggunakan PyTorch dengan EFA pada penampung 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

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

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

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

Outputnya 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

Setelah Anda membuat wadah berkemampuan EFA, Anda dapat menjalankan pekerjaan pelatihan dengan EFA menggunakan SageMaker 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.