
信不少混迹 Kaggle、天池 的同学都有算力不足的困扰,如果你还在靠薅资本主义羊毛(指 colab,kaggle kernel)勉强度日,这篇文章应该会对你有所帮助(末尾有福利)。
自己搭建一个适合打竞赛的深度学习主机到底要花多少钱?如果在某宝直接搜索「深度学习」后一定会劝退不少有这种想法的同学。

试验
下面是各个显卡的实战评测,实战项目选用 Kaggle TGS ,参赛选手依次为:
- 矿卡科代表 P106-100
- 游戏卡科代表 RTX 1080 ti
- 特斯拉科代表 P80(Colab)
- 没有卡科代表 CPU: Intel(R) Core(TM) i3-9100F CPU @ 3.60GHz
注意,这不是严格的基准测试,只是用我之前做过的一个比赛来看看就实际问题各个 GPU 的表现如何,代码都是同一套,但其他硬件配置会稍有不同。
测试都使用了同一套代码,核心逻辑为使用 Unet + ResNet34,对 TGS 官方数据集 的训练集训练一轮后停止,为尽可能测试到 GPU 速度,忽略掉了模型的存储、图片增强等逻辑。
4 个试验的笔记本都已公开分享,可以在笔记本中找到更详细的结论、机器配置以及整个训练代码,下面是各个训练的结果:
CPU ONLY:

CPU 训练截图
总共用时:301s 平均每秒迭代:1.21次
公开笔记本地址:https://featurize.cn/notebooks/61fa4116
专业卡 K80(Colab)

K80 训练截图
总共用时:108s 平均每秒迭代:2.3次
公开笔记本地址:https://colab.research.google.com/drive/18XsWJUrBOeKQ3Kl8EffmEhzpIByPtxc2?usp=sharing
游戏卡 RTX 1080 ti

RTX 1080 ti 训练截图
总共用时:21s 平均每秒迭代:12次
公开笔记本地址:https://featurize.cn/notebooks/d0e14ae3
矿卡 P106-100

矿卡 P106-100 训练截图
总共用时:48s 平均每秒迭代:5.2次
公开笔记本地址:https://featurize.cn/notebooks/61fa4116
结论
每秒可执行的 iterations 对比:

获胜者当然是用 jio 都能想到的 1080ti,不过 K80 比某宝500块一张的矿卡慢一倍这是我没想到的。当然这里有很多其他影响因素,Google Colab 的 CPU 只有两核,但代码里都使用了 4 个进程的数据加载器,并且 1080 ti 以及 P106 都是运行在独立的物理机上的。
下面是 P 106 跟其他 GPU 的参数对比,

参考:
https://en.wikipedia.org/wiki/Nvidia_Tesla
https://en.wikipedia.org/wiki/List_of_Nvidia_graphics_processing_units
https://www.techpowerup.com/gpu-specs/p106-100.c2980