机器学习有两个主要阶段:训练和推理。训练神经网络涉及设置纪元数、批量大小、学习速率以及优化其他超参数。 对神经网络进行数小时的训练后,将会生成可在任何地方部署的静态模型。在下一阶段(即,推理阶段),真实世界的数据被输入到经过训练的模型中,以生成预测。训练的目标是构建具有高准确性的神经网络;推理的目标是快速检测/识别,即注重延迟方面的表现。目前,在推理方面,有许多选项可用。在此博客中,我们介绍 NVIDIA® T4 GPU,并将其与上一代 NVIDIA Pascal™ P4 专注于推理的 GPU 进行性能比较。此外,我们还与 NVIDIA Volta™ V100 进行比较,后者对于此训练阶段来说也是很好的选项。这些测试在 Dell EMC PowerEdge R740 服务器上进行。
NVIDIA 基于 Turing™ 微体系结构的最新 GPU 是 Tesla® T4。此卡专为深度学习训练和推理而设计。NVIDIA T4 是 x16 PCIe Gen3 薄型卡。小巧的外形使其更容易安装到 Power Edge 服务器中。对于推理 FP32、FP16、INT8 和 INT4,Tesla T4 支持全范围的精度。
图 1:NVIDIA T4 卡 [来源:NVIDIA 网站]
下表比较不同 NVIDIA GPU 卡的性能。
GPU | Tesla V100-PCIe | Tesla T4 | Tesla P4 | Tesla T4 与 P4 |
---|---|---|---|---|
体系结构 | Volta | Turing | Pascal | |
NVIDIA CUDA 核心 | 5120 | 2560 | 2560 | 相同数量的核心 |
GPU 核心频率 | 1245MHz | 585MHz | 885MHz | |
动态提升频率 | 1380MHz | 1590MHz | 1531MHz | |
单精度性能 (FP 32) | 14 TFLOPS | 8.1 TFLOPS | 5.5 TFLOPS | 大约 1.48 倍 |
半精度性能 (FP 16) | 112 TFLOPS | 65 TFLOPS | 不适用 | *在 T4 中引入 |
整数运算 (INT 8) | 224 TOPS | 130 TOPS | 22 TOPS | 6.5 倍 |
整数运算 (INT 4) | 不适用 | 260 TOPS | 不适用 | *在 T4 中引入 |
GPU 内存 | 16GB | 16GB | 8GB | 2 倍 |
内存带宽 | 900 GB/s | 320 GB/s | 192GB/s | 1.6 倍 |
电源 | 250W | 70W | 50W/75W |
表 1:NVIDIA GPU 卡比较
Dell EMC™ PowerEdge™ R740 是一个 2U 双插槽平台,可支持两个 Intel® Xeon® 可扩展处理器,具有密集存储选项、高速互连和各种 GPU。PowerEdge R740 在 x16 插槽中可支持多达三个 NVIDIA T4 或 NVIDIA P4 或 NVIDIA V100 PCIe 卡。
下表介绍用于推理研究的硬件和软件配置。
服务器 | Dell EMC PowerEdge R740 |
---|---|
处理器 | 双 Intel Xeon Gold 6136 CPU @ 3.00 GHz,12 核 |
内存 | 384 GB @ 2667 MT/s |
GPU | NVIDIA T4 / NVIDIA P4 / NVIDIA V100 |
电源设备 | 双 1600 W |
(BIOS) | 1.4.5 |
操作系统 | RHEL 7.4 |
内核 | 3.10.0-693.el7.x86_64 |
系统配置文件 | 性能已优化 |
CUDA 驱动程序 | 410.66 |
CUDA 工具包 | 10.0 |
TensorRT | 5.0.2.6 |
图像分类模型 | AlexNet GoogleNet ResNet 50 VGG_19 |
表 2:试验台信息
TensorRT 是用于深度学习推理的软件平台,其中包含推理优化器,可为深度学习应用程序提供低延迟和高吞吐量。它可用于从不同的深度学习框架(如 Pytorch、TensorFlow、mxnet 等)导入经过训练的模型。TensorRT 版本 5 支持 Turing GPU,在博客发布时,所使用的 TensorRT 版本不支持 INT4 精度,因此此博客中不会讨论 INT4 的性能。
图 2 绘制了在三个不同的 GPU(NVIDIA T4、P4 和 V100)上预先训练的图像识别模型 AlexNet、GoogLeNet、ResNet 和 VGG 的推理性能。每个测试都在每种类型的单个 GPU 上运行。性能指标是每秒图像数,这些显卡每秒绘制上千个图像。这些图像识别模型使用 TensorRT 软件针对不同的精度方法 INT8、FP16 和 FP32 进行了测试。NVIDIA P4 不支持半精度,因此下面的图形不显示数据点。数值越高表示性能越好。这些测试案例使用的批量大小为 128。由于 NVIDIA T4 卡具有 16 GB 内存,因此我们选择了具有 16 GB 内存的 V100 GPU,以便对性能进行公平比较。
图 2 不同图像分类模型上的推理性能
除了带来低延迟之外,系统中的多个 GPU 将能够同时处理多个推理作业,从而提供高吞吐量。 由于启动多个推理进程时 GPU 之间没有通信,因此预计会出现线性加速。此测试在 NVIDIA P40s 上进行,我们预计 T4 的多推理性能也会线性扩展。多 T4 推理测试计划作为此项目的未来工作进行开展。
此部分比较了包括 INT8、FP16 和 FP32 在内的不同精度方法的精度。从图 2 中使用 TensorRT 的推理测试来看,在不同的图像识别模型中,INT8 比 FP32 快 4.5 到 9.5 倍。 目标是验证这种更快的性能不会以牺牲精度为代价。
我们的基准测试中使用了几个预先训练的模型,包括 AlexNet、GoogLeNet、ResNet-50、ResNet-101。用于此测试的二进制文件是 TensorRT 的一部分。所有模型都使用相同的验证数据集,这类数据集包含 50000 个图像,并划分为 2000 个批次,每批 25 个图像。前 50 批用于校准目的,其余用于精度测量。
第 1 名的精度是模型正确分类图像的概率。前 5 名的精度是模型将图像分类为前 5 个最高概率类别之一的概率。表 3 显示精度测试的结果。在 INT8 和 FP32 之间测得的精度损失在 0.5% 以内,而使用 INT8 精度可实现高达 9 倍的性能提升。
表 3 显示在不同图像分类模型上的精度测试:
FP32 | INT8 | FP32 和 INT8 精度之间的差异 | ||||
---|---|---|---|---|---|---|
网络 | 第 1 名 | 前 5 名 | 第 1 名 | 前 5 名 | 第 1 名 | 前 5 名 |
AlexNet | 56.82% | 79.99% | 56.76% | 79.97% | 0.07% | 0.02% |
GoogLeNet | 68.95% | 89.12% | 68.75% | 88.99% | 0.2% | 0.13% |
Resnet_101 | 74.33% | 91.95% | 74.34% | 91.85% | -0.02% | 0.1% |
Resnet_50 | 72.9% | 91.14% | 72.77% | 91.06% | 0.13% | 0.08% |
表 3:在不同图像分类模型上的精度测试
此博客介绍 NVIDIA T4 推理卡,并描述在使用 T4、P4 和 V100 GPU 的情况下不同图像识别模型的推理性能。T4 卡的 PCIe 外形尺寸小巧且功耗低,使得其很容易用在 Dell EMC PowerEdge 系统中。比较新款 T4 和以前的 P4 的 INT8 精度,在 T4 上测得性能提高了 1.5 倍至 2.7 倍。精度测试表明 FP32、FP16 和 INT8 之间的差异很小,使用 INT8 精度时速度最多提高 9.5 倍。
免责声明:为了进行基准测试,对 Dell PowerEdge R740 中的四个 T4 GPU 进行了评估。当前,根据官方声明,PowerEdge R740 在 x16 PCIe 插槽中最多支持三个 T4