Elastic Horovod를 위한 분산학습은 아래와 같은 조건들을 요구합니다.
HOROVOD_WITH_GLOO=1 to ensure it is installed)NVIDIA GPU Cloud (NGC) 에서는 분산학습을 위한 환경을 도커 컨테이너로 구성하여 배포하고 있습니다. 로컬에서 환경을 구성해야 하는 상황이 아니라면, 도커 컨테이너를 이용하는 것이 편리합니다.
docker pull nvcr.io/nvidia/tensorflow:<version>-<tf1/tf2>-py3 명령을 통해 Horovod ≥ 0.20.0 가 설치되어 있는 20.10 버전 이상의 컨테이너를 pull 합니다. keras에서의 elastic run에 대한 수정이 이루어진 Horovod ≥ 0.20.1 이 설치되어 있는 20.11 버전 이상의 컨테이너를 pull 합니다.
docker run --gpus <num_gpus> --network=host -it nvcr.io/nvidia/tensorflow:<version>-<tf1/tf2>-py3 bash 명령을 통해 컨테이너의 bash를 실행합니다.
<aside> 💡 도커 컨테이너 내부에서 GPU를 사용하기 위해서는 NVIDIA Container Toolkit이 설치되어 있어야 합니다. 설치되어 있지 않다면, 아래 링크를 참고하여 설치해 주십시오.
</aside>
https://github.com/NVIDIA/nvidia-docker
컨테이너 내의 중요한 경로들은 아래와 같습니다.
/opt/tensorflow/horovod-source : Horovod의 소스가 위치한 경로입니다./opt/tensorflow/tensorflow-source : TensorFlow의 소스가 위치한 경로입니다./workspace/nvidia-examples : NVIDIA가 제공하는 학습 모델들입니다.