Turing 体系结构是 NVIDIA 在 Volta 体系结构之后的最新 GPU 体系结构,新的 T4 基于 Turing 体系结构。它专为高性能计算 (HPC)、深度学习训练和推理、机器学习、数据分析和图形而设计。此博客将使用 MLPerf 基准套件量化 Dell EMC PowerEdge R740 服务器上 T4 GPU 的深度学习训练性能。并将 T4 上的 MLPerf 性能与具有相同软件的相同服务器上的 V100-PCIe 进行比较。
Dell EMC PowerEdge R740 是一款双路 2U 机架式服务器。该系统在 x16 PCIe 3.0 插槽中配备英特尔 Skylake 处理器、多达 24 个 DIMM 和多达 3 个双宽 V100-PCIe 或 4 个单宽 T4 GPU。T4 是使用 NVIDIA 最新 Turing 体系结构的 GPU。表 1 中列出了 T4 和 V100-PCIe GPU 的规格差异。我们选择了 MLPerf 来评估 T4 在深度学习训练中的性能。MLPerf 是一个基准测试工具,由来自学术界和业界的不同群体共同创建(包括 Google、百度、英特尔、AMD、哈佛和斯坦福等),用于衡量机器学习软件和硬件的速度和性能。初始发布的版本是 v0.5,它涵盖了不同机器学习领域的模型实现,包括图像分类、对象检测和分割、机器翻译和强化学习。表 2 中显示了用于此评估的 MLPerf 基准测试的摘要。使用了 Google 提交的 ResNet-50 TensorFlow 实现,并使用了 NVIDIA 提交的所有其他模型实现。所有基准均在裸机上运行,不使用容器。表 3 列出了用于评估的硬件和软件。使用 MLPerf 基准进行测试的 T4 性能将与 V100-PCIe 进行比较。
Tesla V100-PCIe | Tesla T4 | |
---|---|---|
体系结构 | Volta | Turing |
CUDA 核心 | 5120 | 2560 |
Tensor 核心 | 640 | 320 |
计算能力 | 7.0 | 7.5 |
GPU 核心频率 | 1245 MHz | 585 MHz |
动态提升频率 | 1380 MHz | 1590 MHz |
内存类型 | HBM2 | GDDR6 |
内存大小 | 16GB/32GB | 16GB |
带宽 | 900 GB/s | 320 GB/s |
插槽宽度 | 双插槽 | 单插槽 |
单精度 (FP32) | 14 TFLOPS | 8.1 TFLOPS |
混合精度 (FP16/FP32) | 112 TFLOPS | 65 TFLOPS |
双精度 (FP64) | 7 TFLOPS | 254.4 GFLOPS |
TDP | 250 W | 70 W |
表 1:T4 与 V100-PCIe 之间的比较
图像分类 | 对象分类 | 对象实例分割 | 翻译(循环) | 翻译(非循环) | 建议 | |
---|---|---|---|---|---|---|
数据 | ImageNet | COCO | COCO | WMT E-G | WMT E-G | MovieLens-20M |
数据大小 | 144GB | 20GB | 20GB | 37GB | 1.3GB | 306MB |
型号 | ResNet-50 v1.5 | 单级检测器 (SSD) | Mask-R-CNN | GNMT | Transformer | NCF |
框架 | TensorFlow | PyTorch | PyTorch | PyTorch | PyTorch | PyTorch |
表 2:评估中使用的 MLF Perf 基准
平台 | PowerEdge R740 |
---|---|
CPU | 2 个英特尔至强 Gold 6136 @3.0GHz (SkyLake) |
内存 | 384 GB DDR4 @ 2666MHz |
存储 | 782 TB Lustre |
GPU | T4、V100-PCIe |
操作系统和固件 | |
操作系统 | Red Hat® Enterprise Linux® 7.5 x86_64 |
Linux 内核 | 3.10.0-693.el7.x86_64 |
(BIOS) | 1.6.12 |
深度学习相关 | |
CUDA 编译器和 GPU 驱动程序 | CUDA 10.0.130 (410.66) |
CUDNN | 7.4.1 |
NCCL | 2.3.7 |
TensorFlow | nightly-gpu-dev20190130 |
PyTorch | 1.0.0 |
MLPerf | V0.5 |
表 3:硬件配置和软件详细信息
图 1 显示了 MLPerf 在 PowerEdge R740 服务器上的 T4 和 V100-PCIe 上的性能结果。包括了 MLPerf 的六个基准。对于每个基准,执行了端到端的模型训练以达到 MLPerf 委员会定义的目标模型精度。对于每个基准都记录了训练时间(以分钟为单位)。可以根据这些结果得出以下结论:
ResNet-50 v1.5、SSD 和 Mask-R-CNN 模型可随着 GPU 数量的增加很好地扩展。对于 ResNet-50 v1.5,V100-PCIe 的速度是 T4 的 3.6 倍。对于 SSD,V100-PCI 的速度是 T4 的 3.3 倍至 3.4 倍。对于 Mask-R-CNN,V100-PCIe 的速度是 T4 的 2.2 倍至 2.7 倍。使用相同数量的 GPU 时,对于 T4 和 V100-PCIe,每个模型几乎需要相同数量的时期来收敛。
对于 GNMT 模型,当使用更多 T4 GPU 时,观察到超线性加速。与一个 T4 相比,使用两个 T4 时的加速为 3.1 倍,使用四个 T4 时的加速为 10.4 倍。这是因为模型收敛受随机种子的影响,随机种子用于训练数据随机排列和神经网络权重初始化。无论使用多少个 GPU,使用不同的随机种子时,模型可能需要不同数量的时期来收敛。在此实验中,在使用 1、2、3 和 4 个 T4 时,模型分别需要 12、7、5 和 4 个时期来收敛。在使用 1、2 和 3 个 V100-PCIe 时,模型分别需要 16、12 和 9 个时期来收敛。由于即使 T4 和 V100 GPU 数量相同,时期的数量也明显不同,因此无法直接比较性能。在这种情况下,吞吐量指标是一个公平的比较,因为它不依赖于随机种子。 图 2 显示了 T4 和 V100-PCIe 的吞吐量对比。在具有相同数量 GPU 的情况下,V100-PCIe 的速度是 T4 的 2.5 倍至 3.6 倍。
NCF 模型和 Transformer 模型具有与 GNMT 相同的问题。对于 NCF 模型,数据集大小较小,并且该模型的收敛时间不长;因此,此问题在结果图表中不明显。当使用一个 GPU 时,Transformer 模型具有相同的问题,因为使用一个 T4 时,模型需要 12 个时期来收敛,但使用一个 V100-PCIe 时,只需要 8 个时期来收敛。当使用两个或更多 GPU 时,无论使用多少个 GPU 或使用哪种 GPU 类型,模型均需要 4 个时期来收敛。在这些情况下,V100-PCIe 的速度是 T4 的 2.6 倍至 2.8 倍。
图 1:T4 和 V100-PCIe 上的 MLPerf 结果
图 2:GNMT 模型的吞吐量比较
在此博客中,我们使用各种 MLPerf 基准评估了 Dell EMC PowerEdge R740 服务器上的 T4 GPU 的性能。并将 T4 的性能与使用相同服务器和软件的 V100-PCIe 进行了比较。总体而言,V100-PCIe 的速度是 T4 的 2.2 倍至 3.6 倍,具体取决于每个基准的特征。一个观察结果是,无论使用什么随机种子值,某些模型都是稳定的,但其他模型(包括 GNMT、NCF 和 Transformer)受到随机种子的严重影响。在将来的工作中,我们将对超参数进行微调,使不稳定的模型需要更少的时期完成收敛。我们还将在更多 GPU 和更多节点上运行 MLPerf,以评估这些模型在 PowerEdge 服务器上的可扩展性。
*免责声明:为了进行基准测试,对 Dell EMC PowerEdge R740 中的四个 T4 GPU 进行了评估。当前,根据官方声明,PowerEdge R740 在 x16 PCIe 插槽中最多支持三个 T4。