从事机器学习,一个好的硬件环境是必不可少的。
在硬件环境的选择上,并不是一定选择最贵的就会有最好的效果,很多时候可能付出了 2 倍的成本,但是性能的提升却只有 10%。深度学习的计算环境对不同部件的要求不同,因此这里先简要讨论一下硬件的合理搭配。如果您不差钱,则可以跳过本文。另外,虽然目前有一些云服务供应商提供 GPU 计算能力,并且一键部署,听起来不错,但是基于云计算的 GPU 实例受到两个限制。
首先,
普通的廉价 GPU 实例内存稍小,比如 AWS 的 G2 实例目前只支持单GPU 4GB 的显存;
其次,
支持较大显存的实例费用比较高,性价比不高。比如 AWS 的P2 实例使用支持每 GPU 12GB 内存的 K80 GPU,每小时费用高达 0.9 美元。但是 K80GPU 属于 Kepler 架构,是两代前的技术。
另外,
在实际使用中需要开启其他服务以使用 GPU 实例,各种成本加起来每月的开支还是很可观的,很可能 6 个月的总开支够买一台配置较新 GPU 的全新电脑了。
在搭配深度学习机器而选择硬件的时候,通常要考虑以下几个因素。
(1) 预算。
这个非常重要。如果预算足够,当然可以秉承最贵的就是最好的理念来选择。但是当预算有一定限制的时候,如何搭配部件来最大化性能,尽量减少瓶颈就是很重要的考量了。
(2) 空间。
这里特指机箱的空间。大部分新的 GPU 都是双风扇的,因此对机箱尺寸要求很高。如果你已经有一个机箱了,那么选择合适尺寸的 GPU 就成为最优先的考虑;如果新配机箱,那么全尺寸的大机箱是最好的选择。这是因为大机箱通风好,同时可以为以后添加多个 GPU 进行升级留有余地;另外,大机箱通常有多个 PCIe 的背板插槽可以放置多个 PCIe 设备。一般现在的 GPU 卡都会占据两个 PCIe 的插槽空间,因此背板插槽越多越好。
(3) 能耗。
性能越好的 GPU 对能源的要求越高,而且很可能是整个系统里能耗最高的部件。如果已经有一台机器了,只是要添加一个 GPU 来做学习用,那么选择性能一般但是能耗低的 GPU 卡是比较明智的;如果需要高密度计算,搭配多个 GPU 并行处理,那么对电源的要求非常高,一般来说,搭配 4GPU 卡的系统至少需要 1600W 的电源。
(4) 主板。
对主板的选择非常重要,因为涉及跟 GPU 的接口选择。一般来说,至少需要一块支持 PCIe 3.0 接口的主板。如果以后要升级系统到多个 GPU,那么还需要支持 8+16 芯 PCIe 电源接口的主板,这样可以连接最多 4 个 GPU 进行 SLI 并联。对于 4个 GPU 这个限制,是因为目前最好的主板也只支持最多 40 条 PCIe 通道(16x, 8x, 8x,8x 的配置)。多个 GPU 并行加速比并不能达到完美,毕竟还是有些额外开销的。比如系统需要决定在哪个 GPU 上进行这个数据块对应的计算任务。我们后面会提到, CNTK计算引擎的并行加速性很好,在使用多个 GPU 时值得考虑。