为什么自建深度学习机器?
本文选自Medium,作者:Jeff Chen,机器之心编译,参与:王淑婷、李亚洲、思源。
如果你用过或者正在考虑将 AWS/Azure/Google Cloud 用于机器学习,你就会知道 GPU 使用成本有多高。此外,开、关机器对自己的工作流也有极大的破坏。更好的选择是,自己搭建机器。今天这篇文章,主要是为了告诉大家,自己搭建机器要比租赁机器便宜 10 倍,也更容易使用。
建立一个可扩展的深度学习计算机 W/1 高档 GPU 只需要花费 3000 美元
我建的机器只花费了 3000 美元,下面是花费清单,包括一块 1080Ti(你可以多加 500 美元使用全新的 2080Ti 做机器学习,但注意要加上增压风机设计)、一个 12 核 CPU、64GB 的 RAM 和 1TB 的 M.2 SSD。你还可以在这台机器上多加 3 块 GPU。
税前 3000 美元的计算机零件,如果替换为更便宜的部件,你可以把总价压缩到 2000 美元
自建机器要比在 AWS/EC2 上租机器便宜 10 倍,而且同样高性能
假设自建的机器(带有一块 GPU)三年内贬值到 0(非常保守了),下表显示,如果使用超过 1 年,即使包括电费,它也要比租赁机器便宜 10 倍。如果你有多年租约,亚马逊会打折。即便这样,折算下来自建还是要比亚马逊价便宜 4 倍~6 倍。
如果你一次签订多年租赁合约,支付几千美元至上万美元,那不妨考虑自建机器。如果自建的机器包含 4 块 GPU,1 年内成本要低 21 倍,更为可观。
以自建机器与 AWS 租赁机器的成本作对比。
根据使用程度,一块 GPU 的机器要便宜 4 倍~10 倍,4 块 GPU 的机器要便宜 9 倍~21 倍。AWS 有租赁一年和租三年的折扣(分别便宜 35% 和 60%)。电力消耗假定为 0.2 美元/kWh,一块 GPU 的机器消耗 1kW/h,4 块 GPU 机器消耗 2kW/h,且保守估计三年线性折旧整个自建机器。每多加一块 GPU,成本增加 700 美元(税前)。
自建机器有一些缺点,例如较慢的下载速度,因为并不是主干网,静态 IP 需要远程接入。一两年后,可能需要更新 GPU,但因为搭建时节约的成本非常可观,所以仍然很值。
如果你正准备使用 2080Ti 作为深度学习计器的计算引擎,那么它要多花 500 多美元,但对于单块 GPU 的机器来说,仍然要便宜 4 倍~9 倍。云 GPU 机器价格大约为 3 美元/小时,即使不使用机器进行计算也要付费。
这种巨大的成本差异主要是因为 Amazon Web Services EC2(或者谷歌云与微软 Azure)的 GPU 费用太高,即 3 美元/小时或约为 2100 美元/月。在斯坦福,我使用云机器实现语义分割项目,账单需要 1000 美元。我也尝试使用谷歌云来做项目,账单高达到 1800 美元。这主要是因为我没仔细监控使用情况并按时关闭机器。
此外即使我们关闭了机器,同样还需要以每月 0.10 美元/GB 的价格支付储存费用,所以我每月需要支付 100 美元的费用来储存数据。
几个月内就回收成本
对于花 3000 美元搭建的单块 GPU 机器(1 kW/h),如果经常使用,我们在两月内就能达到不赚不赔。这并不表示我们仍拥有完整的计算机器,不会产生一点折旧,但搭建个人机器还是一个很明智的选择。
此外,分析表明搭建 4 块 GPU 的机器能获利更多,因为常用的话我们可以在一个月内达到收支平衡(假定电费为 0.20/kWh)。
我们的 GPU 性能与 AWS 相当
与云 Nvidia V100 GPU(使用新一代 Volta 技术)相比,我们价值 700 美元的 Nvidia 1080 Ti 以 90% 的速度运行。这是因为云 GPU 在实例和 GPU 之间的 IO 速度很慢。
所以尽管理论上来说,V100 可能要快个 1.5 倍~2 倍,但实际上 IO 会拖慢其速度。因为我们采用的是 M.2 SSD,所以 IO 在我们的电脑上运行速度非常快。
V100 的显存也更大,有 16 个 G,不过如果你把批大小设置得小一点,模型效率提高一点,那么显存只有 11 个 G 也没什么关系。
跟在线租赁上一代 Nvidia K80(更便宜,1 美元/每小时)相比,我们的 1080 Ti 比它强多了,训练速度就提高了 4 倍。在基准测试中,我发现它快了 3 倍~4 倍(我将在随后的帖子中说明如何进行基准测试)。每块 K80 GPU 的显存有 12 个 G,这是相比于 11GB 1080 Ti 的一个小优势。
AWS 价格昂贵,因为亚马逊只能使用更贵的 GPU
数据中心比较昂贵的一个原因是:他们使用的不是 Geforce 1080 Ti。根据合同,英伟达禁止在数据中心使用 GeForce 和 Titan 卡。所以亚马逊和其他供应商不得不使用 8500 多美元的数据中心版 GPU,因此他们给出的租赁价格也高。
自己搭建比购买强
首先,我们得决定是买一台机器还是自己搭建比较好,但是自己搭建要便宜个 40%~50% 呢。自己搭建的话,预制的计算机器至少需要花费 5000 美元,推荐的两个产品是 MITXPC Deep Learning DevBox 和 The MITXPC MWS-X299MDL CUDA Workstation。
实际上我们并不必要买成品的服务站。自己搭建电脑比较难的一步是找到适合机器学习的部件,并确保它们能好好工作。关于这个我接下来会说明。构建计算机机身并不难,第一次上手的人 6 小时之内可以完成,而专业人员则一小时不到。
自己搭建可以利用大降价来购买零件!
每年新一代硬件出来之后,旧的硬件就会降价。比如,当 AMD 出了 Threadripper 2 CPU,它的 1920X 处理器价格从 800 美元降到了 400 美元。因此,降价的时候你可以立马采取行动,这会省下不少钱。
自行搭建允许我们选择零部件
因为能选择零部件,我们可以扩展到 4 块 GPU,或者使用其它方法优化计算系统。我查看了一些现成的搭建方法,有的并不能扩展到 4 块 GPU,或者并不能进一步提升系统性能。
这些方法存在一些问题,例如一块 CPU 不会有 36+的 PCIe 线程、主板在物理上插不了 4 块 GPU、电源功率低于 1400W 且 CPU 的核心数少于 8 等。
我个人认为普通的机箱看起来非常丑陋,因此我们同样要确保零附件具有设计美感。例如确保噪声低和附件对机器学习有帮助,因为 SATA3 SSD 的读写速度为 600MB/sec,而 M.2 PCIe SSD 快了 5 倍,并达到了 3.4GB/sec。
如何开始搭建
在下一篇博客中,我将讨论怎么选择组件来搭建自己的电脑。如果你想抢先开始搭建,可以查看我公开的零件清单和价格,然后着手定制。
零件清单:https://pcpartpicker.com/b/B6LJ7P