이 문서는 2019년 10월 HPC AI Innovation Lab에서 Rakshith Vasudev와 John Lockman이 작성했습니다.
NGC 컨테이너 nvcr.io/nvidia/tensorflow:19.06-py3 |
Conda env 버전 |
|
프레임워크 |
TensorFlow 1.13.1 |
TensorFlow 1.12.0 |
Horovod |
0.15.1 |
0.16.1 |
MPI |
OpenMPI 3.1.3 |
OpenMPI 4.0.0 |
CUDA |
10.2 |
10.1 |
CUDA 드라이버 |
430.26 |
418.40.04 |
NCCL |
2.4.7 |
2.4.7 |
CUDNN |
7.6.0 |
7.6.0 |
Python |
3.5.2 |
3.6.8 |
운영 체제 |
Ubuntu 16.04.6 |
RHEL 7.4 |
GCC |
5.4.0 |
7.2.0 |
표 1
앞서 소개된 바와 같이 CheXNet은 DenseNet을 사용하여 제공된 흉부 X선 이미지에서 최대 14개의 병변을 식별하는 AI 방사선 기사 보조 모델입니다. 확장성과 교육 정확도(긍정적인 AUROC) 향상이라는 두 가지 가능성을 보여주는 ResNet-50을 사용하여 원래의 CheXNet-121과 성능이 비슷하거나 더 우수한 모델의 교육을 확장하기 위해 여러 가지 접근 방식이 연구되었습니다. 작성자는 CPU 시스템의 확장성을 입증했지만, GPU의 병렬화를 활용하여 학습 프로세스를 가속화하고자 합니다. Dell EMC PowerEdge C4140은 SXM2 구성의 Nvidia V100 GPU 4개를 통해 밀도와 성능을 모두 제공합니다.
베어 메탈 시스템 |
Kubernetes 시스템 |
|
플랫폼 |
PowerEdge C4140 |
PowerEdge C4140 |
CPU |
인텔® 제온® 골드 6148 @2.4Ghz, 2개 |
인텔® 제온® 골드 6148 @2.4Ghz, 2개 |
Memory |
384GB DDR4 @ 2666MHz |
384GB DDR4 @ 2666MHz |
스토리지 |
Lustre |
NFS |
GPU |
V100-SXM2 32GB |
V100-SXM2 32GB |
운영 체제 |
RHEL 7.4 x86_64 |
CentOS 7.6 |
Linux 커널 |
3.10.0-693.x86_64 |
3.10.0-957.21.3.el7.x86_64 |
네트워크 |
Mellanox EDR InfiniBand |
Mellanox EDR InfiniBand (IP over IB) |
CheXNet을 학습시킬 때 초당 이미지 수로 측정한 이미지 처리량은 표 2에 설명된 두 시스템의 C4140 노드 2개에 대해 1, 2, 3, 4 및 8개의 GPU를 사용하여 측정했습니다. 모델 아키텍처, 입력 데이터 등을 포함한 실행 사양은 이 문서에 자세히 설명되어 있습니다. 그림 1은 Kubernetes 시스템과 베어 메탈 시스템에서 측정된 성능 비교를 보여줍니다.
그림 1: k8s와 베어 메탈에서 CheXNet 학습 실행
베어 메탈 시스템은 8개의 GPU로 확장됨에 따라 성능이 8% 향상되었음을 보여줍니다. 그러나, 시스템 아키텍처 설계의 차이로 인해 컨테이너 대 베어 메탈 논쟁 외에도 성능 차이가 발생할 수 있습니다. 베어 메탈 시스템은 원시 InfiniBand 연결의 전체 대역폭과 레이턴시를 활용할 수 있으며 Flannel 같은 SDN(Software Defined Network)으로 인해 발생하는 오버헤드를 처리할 필요가 없습니다. 또한 k8s 시스템에서 사용 가능한 대역폭을 줄일 수 있는 IP over InfiniBand를 사용하는 경우도 있습니다.
이러한 수치는 실행되는 애플리케이션 종류에 따라 정의된 워크로드 및 통신 패턴에 따라 달라질 수 있습니다. 이미지 분류 문제의 경우 GPU 간에 통신이 발생하는 비율이 높기 때문에 교환 비율이 높습니다. 그러나 한 가지 접근 방식을 다른 접근 방식보다 더 많이 사용할지 여부는 워크로드의 요구 사항에 따라 달라집니다. Kubernetes 기반 시스템은 성능 저하가 약간 있지만(이 경우 ~8%), 사용자와 관리자가 라이브러리, 구성, 환경 및 기타 종속성을 설정하지 않아도 됩니다. 이러한 접근 방식을 통해 데이터 과학자는 생산성을 높이고 데이터 랭글링 및 모델 구축과 같은 핵심 비즈니스 문제를 해결하는 데 집중할 수 있습니다.