Artykuł został napisany przez Rakshitha Vasudeva i Johna Lockmana z HPC AI Innovation Lab w październiku 2019 r.
Kontener NGC nvcr.io/nvidia/tensorflow:19.06- py3 |
Wersje Conda env |
|
Zakres |
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 |
Sterownik 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 |
System operacyjny |
Ubuntu 16.04.6 |
RHEL 7.4 |
GCC |
5.4.0 |
7.2.0 |
Tabela 1
Jak wspomniano wcześniej, CheXNet jest modelem opartego na sztucznej inteligencji asystenta radiologicznego, który z użyciem DenseNet identyfikuje do 14 zmian patologicznych w danym obrazie rentgenowskim klatki piersiowej. Zbadano kilka podejść w celu skalowania szkoleń modelu, który może działać równie dobrze lub lepiej niż oryginalny CheXNet-121 z ResNet-50, spełniając obietnice zarówno skalowalności, jak i większej dokładności szkoleń (pozytywne AUROC). Autorzy wykazali skalowalność w systemach procesorów, jednak chcemy wykorzystać równoległość procesorów graficznych w celu przyspieszenia procesu szkoleniowego. Serwer Dell EMC PowerEdge C4140 zapewnia gęstość i wydajność dzięki czterem kartom graficznym Nvidia V100 w konfiguracji SXM2.
System na urządzeniu fizycznym |
System Kubernetes |
|
Platforma |
PowerEdge C4140 |
PowerEdge C4140 |
Procesor |
2 × Intel® Xeon® Gold 6148, 2,4 GHz |
2 × Intel® Xeon® Gold 6148, 2,4 GHz |
Pamięć |
384 GB pamięci DDR4, 2666 MHz |
384 GB pamięci DDR4, 2666 MHz |
Pamięć masowa |
Lustre |
NFS |
GPU |
V100-SXM2 32 GB |
V100-SXM2 32 GB |
System operacyjny |
RHEL 7.4 x86_64 |
CentOS 7.6 |
Jądro systemu Linux |
3.10.0-693.x86_64 |
3.10.0-957.21.3.el7.x86_64 |
Sieć |
Mellanox EDR InfiniBand |
Mellanox EDR InfiniBand (protokół IPoIB) |
Przepustowość obrazu, mierzona w ilości obrazów przesyłanych na sekundę, podczas szkolenia algorytmu CheXNet została zmierzona przy użyciu 1, 2, 3, 4 i 8 procesorów graficznych w 2 węzłach C4140 w obu systemach opisanych w tabeli 2. Specyfikacja testu, w tym architektura modelu, dane wejściowe itp., zostały opisane w tym artykule. Rysunek 1 przedstawia porównanie zmierzonej wydajności w systemie Kubernetes i systemie na urządzeniach fizycznych.
Rysunek 1: Szkolenie CheXNet na systemach K8s i fizycznych
Wydajność systemu na urządzeniach fizycznych wykazuje wzrost wydajności o 8% wraz z dodawaniem kolejnych procesorów graficznych (maks. 8). Jednak ta niewielka różnica wydajności mogła być spowodowana różnicami w konstrukcji architektury systemu, wychodząc poza argument dotyczący różnic między kontenerem a urządzeniami fizycznymi. System na urządzeniach fizycznych może wykorzystać pełną przepustowość i czas reakcji czystego połączenia InfiniBand i nie musi obsługiwać narzutu utworzonego przez sieci definiowane programowo, takie jak Flannel. Warto również zauważyć, że system K8s używa protokołu IPoIB, co może ograniczyć dostępną przepustowość.
Wyniki mogą się różnić w zależności od obciążenia i wzorców komunikacji zdefiniowanych przez rodzaj uruchomionych aplikacji. W przypadku problemu z klasyfikacją obrazu szybkość komunikacji między procesorami graficznymi jest wysoka, więc częstotliwość wymiany jest wysoka. Zastosowanie odpowiedniego rozwiązania zależy od wymagań obciążenia. Mimo że system oparty na rozwiązaniu Kubernetes jest nieco mniej wydajny — w tym przypadku różnica wynosi ok. 8% — zwalnia on użytkowników i administratorów z obowiązku konfigurowania bibliotek, plików konfiguracyjnych, środowisk i innych zależności. Takie podejście zwiększa produktywność naukowców zajmujących się danymi i pozwala im skupić się na rozwiązywaniu podstawowych problemów biznesowych, takich jak przygotowywanie danych do przetwarzania i tworzenie modelu.