文章作者:Rakshith Vasudev 和 John Lockman - HPC AI Innovation Lab,2019 年 10 月
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 種病理特性。我們探索了多種方法,以水平式擴充訓練可執行等同或優於原始 ChexNet-121 的模型,其中 ResNet-50 證明了強大的擴充能力和更高的訓練準確度 (陽性 AUROC)。作者在 CPU 系統上示範了擴充能力,但我們也對透過並行 GPU 加速訓練程式十分有興趣。Dell EMC PowerEdge C4140 具備採用 SXM2 組態的四個 NVIDIA V100 GPU,可提供優異的密度和效能。
金屬裸面系統 |
Kubernetes 系統 |
|
平台 |
PowerEdge C4140 |
PowerEdge C4140 |
CPU |
2 x Intel® Xeon® Gold 6148 @2.4GHz |
2 x Intel® Xeon® Gold 6148 @2.4GHz |
記憶體 |
384 GB DDR4 @ 2666MHz |
384 GB 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) |
在表 2 所述的兩個系統上,在 2 個 C4140 節點上使用 1、2、3、4 和 8 GPU 測量訓練 CheXNet 時,映像輸送量會以每秒映像為單位測量。本文會詳述執行的規格,包括型號架構、輸入資料等。圖 1 顯示 Kubernetes 系統和金屬裸面系統的測量效能比較。
圖 1:在 K8 與金屬裸面上執行 CheXNet 訓練
金屬裸面系統顯示當我們擴充至 8 GPU 時,效能提升了 8%。然而,除了容器與金屬裸面辯論之外,系統架構設計上的差異可能會導致此微幅效能差異。金屬裸面系統可充分利用原始 InfiniBand 連線的完整頻寬和延遲,且不必處理使用軟體定義網路所產生的負荷,例如 flannel。此外,K8 系統會使用 IP over InfiniBand,使得可用頻寬減少。
這些數字可能會因工作負荷和所執行應用程式類型定義的通訊模式而有所不同。在映像分類問題方面,GPU 之間的通訊發生率很高,因此交換率很高。然而,是否使用其中一種方法,取決於工作負荷的需求。雖然我們以 Kubernetes 為基礎的系統效能處罰微小,在這種情況下約 8%,但使用者和系統管理員則不必設定程式庫、組態、環境和其他相依性。此方法可讓資料科學家提高生產力,並專注於解決核心業務問題,例如資料整頓和模型建立。