Deep Learning 性能测试
为了让用户快速了解深度学习平台的性能指标以便于选择,我们使用 TensorFlow 性能测试代码中的 CNN Benchmark ,对常用硬件配置组合进行了测试。 我们选择 ResNet-50 模型,调用 Python 3.6 + TensorFlow 1.7.0 环境,使用合成数据进行测试。
山河深度学习平台性能测试表
运行环境 | CPU | Memory | GPU | BatchSize | 项目 | Images/Sec (step time) |
---|---|---|---|---|---|---|
CUDA 9.1 |
8核(默认) |
32G |
1 |
64 |
训练 |
199.09 (5.02ms) |
CUDA 9.1 |
8核(默认) |
32G |
1 |
64 |
推理 |
632.51 (1.58ms) |
CUDA 9.1 |
8核(默认) |
32G |
2 |
64 |
训练 |
382.38 (2.62ms) |
CUDA 9.1 |
8核(默认) |
32G |
2 |
64 |
推理 |
1102.66 (0.91ms) |
CPU (无优化) |
8核(默认) |
32G |
0 |
32 |
训练 |
1.91 (523.56ms) |
CPU (无优化) |
8核(默认) |
32G |
0 |
32 |
推理 |
8.36 (119.62ms) |
CPU (无优化) |
16核(默认) |
32G |
0 |
32 |
训练 |
2.62 (381.68ms) |
CPU (无优化) |
16核(默认) |
32G |
0 |
32 |
推理 |
11.44 (87.41ms) |
CPU (MKL优化) |
8核(Broadwell) |
32G |
0 |
32 |
训练 |
12.55 (79.68ms) |
CPU (MKL优化) |
8核(Broadwell) |
32G |
0 |
32 |
推理 |
37.78 (26.47ms) |
CPU (MKL优化) |
16核(Broadwell) |
32G |
0 |
32 |
训练 |
16.15 (61.92ms) |
CPU (MKL优化) |
16核(Broadwell) |
32G |
0 |
32 |
推理 |
48.65 (20.55ms) |
为了便于用户对比,我们选择和官方各项测试接近的硬件配置和相同的 BatchSize 。
因为 CPU 无优化版本仅支持 NHWC 数据格式,所以除了 CPU (无优化版)测试,其他测试中使用的数据格式均为 NCHW 。
CPU 版本测试中,使用常用优化方式,设置 intra_op 等于物理核个数, inter_op 为 1, kmp_blocktime 为 30(对本测试用例的 ResNet-50 模型和 BatchSize 32,适用该值,其他任务需要依据实际情况调整)。