eGPU 能否一战?- Tensorflow GPU 基准测试

前言


开始学习 Tensorflow,但是又不想投资一台专用的 GPU 工作站。我现在使用的主力电脑是:Thinkpad X1 Carbon,计划购置 eGPU 来加速 Tensorflow。

购置之前做了一些功课,发现对 eGPU 的游戏性能测试很多,但是缺乏准确的 Tensorflow Benchmarks 数据。只能摸着石头过河,根据网上资料进行推断,最终购买了 Gigabyte AORUS RTX 2070 Gaming Box。

安装好 Tensorflow-gpu 1.12 后,做了一个比较完整的 Tensorflow Benchmarks,看看 eGPU 在深度学习加速中,能否和内置 GPU 一战。

硬件环境


Thinkpad X1 Carbon 6th (2018) + Gigabyte AORUS RTX 2070 Gaming Box

CPU:Intel(R) Core(TM) i7-8550U CPU @ 1.80GHz (4核8线程)
Memory:16.0 GB @ 2133MHz
Storage:Samsung 512GB SSD
GPU 0:Intel(R) UHD Graphics 620
GPU 1:NVIDIA GeForce RTX 2070 @ 8GB(AORUS RTX 2070 Gaming Box @ H2D)
OS:Windows 10 Version 1809

Tips:

  • RTX 2070 Gaming Box 官方提供了两个版本的 firmware。出厂为:F1.0 标准版;为提高计算能力,更新为:H2D 高性能版。

Tensorflow 版本


采用了 Anaconda 编译版本,运行在 Anaconda 工作环境中。

Tensorflow GPU 版本及 CUDA、cuDNN 版本:

(base) C:\Users\administrator>conda list "tensorflow-gpu|CUDA|cuDNN" --name tf-gpu
# packages in environment at C:\Users\administrator\Anaconda3\envs\tf-gpu:
#
# Name                    Version                   Build  Channel
cudatoolkit               9.0                           1
cudnn                     7.3.1                 cuda9.0_0
tensorflow-gpu            1.12.0               h0d30ee6_0

基准测试脚本


注意!

  • 测试脚本的 master branch 对应 Tensorflow latest nightly version,与 release version 并不兼容。因此,需要 clone 对应版本的 branch。例如:我 clone 的是 cnn_tf_v1.12_compatible
  • Anaconda 包含了 git 软件包,用指令:conda install git 来安装。
  • 使用 git 命令,直接从 Github 上将 benchmarks 脚本 clone 回来。
git clone --single-branch --branch cnn_tf_v1.12_compatible https://github.com/tensorflow/benchmarks.git

基准数据来源


我没有其它的 GPU/TPU 用于性能对比,因此采用了网上的数据,引用了以下基准测试结果:

测试方法


  • 所有模型都在合成数据集上进行训练,这能将GPU性能与CPU预处理性能有效隔离开来。
  • 对每个模型进行3次训练实验。测量每秒处理的图像数量,然后在3次实验中取平均值。
  • 测试命令:
python tf_cnn_benchmarks.py --num_gpus=1 --variable_update=parameter_server --model=<model_name> --batch_size=<batch_size>

实验中使用的 model_name 和 batch_size:

Model NameBatch Size
resnet5064
resnet15232
inception364
vgg1664
alexnet512

测试结果


模型 / GPU2070 eGPU1080-Ti20802080-TiVega 64V100
ResNet-50176.93203.99 (86.7%)209.89 (84.3%)286.05 (61.9%)190.58 (92.8%)386.63 (45.8%)
ResNet-15262.2282.83 (75.1%)82.78 (75.2%)110.24 (56.4%)68.71 (90.6%)131.69 (47.2%)
Inception v3113.24130.2 (87.0%)141.9 (79.8%)189.31 (59.8%)103.82 (109.1%)242.7 (46.7%)
VGG16110.23133.16 (82.8%)123.01 (89.6%)169.28 (65.1%)101.95 (108.1%)233 (47.3%)
AlexNet2258.942720.59 (83.0%)2567.38 (88.0%)3550.11 (63.6%)1573.01 (143.6%)4707.67 (48.0%)

单位:image/sec;百分比:2070 性能 / 当前 GPU 性能。

从测试结果来看:

  • AORUS RTX 2070 Gaming Box 大约是 2080/1080-Ti 的 83% 性能,2080-Ti 的 61.5% 性能,V100 的 47% 性能,比 Vega 64 略好。
  • userbenchmark.com 的测试来看,RTX 2070 的游戏性能大约是 GTX 1080-Ti 的 86%。也就是说,eGPU 由于 Thunderbolt 3 的带宽限制,引起的性能下降约为 4%,完全在可接受的范围。
  • 由于 eGPU 的价格远远高于同型号内置 GPU(约高出¥2000 左右),因此性价比无法与内置 GPU 相比。
  • 但从另一方面看,内置 GPU 需购置一整套系统来维持运作。一套 RTX 2070 的主机约 ¥9500,这个价格又远远超过 eGPU 的价格了。

结论


  • eGPU 在性能上和内置 GPU 相当,损失约 4% 的性能。
  • 价格可以接受,性价比远超 GPU 主机。
  • 兼顾了性能和可移动性。
  • 通常 eGPU 扩展坞自带了 PD 充电功能,可直接给笔记本供电。
  • 噪声远小于 GPU 主机(办公室的 GPU 工作站实在是太吵,只好搬到机房去,在家不可能使用这么吵的主机)。
  • 用于深度学习入门及应用研究,同时又不打算购置一台 GPU 主机的用户,eGPU 是最佳选择!

Tips:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值