View a markdown version of this page

Jalankan Pelatihan dengan EFA - Amazon SageMaker AI

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 AI menyediakan integrasi dengan perangkat EFA untuk mempercepat High Performance Computing (HPC) dan aplikasi pembelajaran mesin. Integrasi ini memungkinkan Anda 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 wadah Anda sendiri untuk menggunakan perangkat EFA untuk pekerjaan pelatihan terdistribusi Anda.

Prasyarat

Wadah Anda harus memenuhi spesifikasi wadah Pel SageMaker atihan

Instal EFA dan paket yang diperlukan

Wadah Anda harus mengunduh dan menginstal perangkat lunak https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa-start.html EFA. Ini memungkinkan wadah 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 EFA-enabled pelatihan Anda. Untuk daftar semua versi EFA yang tersedia, lihat Verifikasi penginstal EFA menggunakan 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 sesuai 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 di /dev/infiniband/uverbs0 bawah daftar perangkat yang dapat diakses ke wadah. Pada instans 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 rekan, dan antarmuka jaringan (untuk MPI) dari resourceconfig.json file yang disediakan untuk setiap instance kontainer, lihat Konfigurasi Pelatihan Ter distribusi. Kontainer Anda menangani lalu lintas TCP reguler di antara 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 wadah 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

Setelah Anda membuat EFA-enabled wadah, Anda dapat menjalankan pekerjaan pelatihan dengan EFA menggunakan SageMaker AI dengan cara yang ModelTrainer sama seperti yang Anda lakukan dengan gambar Docker lainnya. Untuk informasi selengkapnya tentang mendaftarkan wadah Anda dan menggunakannya untuk pelatihan, lihat Meng adaptasi Wadah Pelatihan Anda Sendiri.