打造自己的深度学习环境
打造深度学习计算环境是一个系统化的过程,涉及到硬件的采购、组装、系统的选择、软件的安装与配置等多个方面。本文将详细介绍在有限预算下,如何构建一个性能接近NVIDIA DIGITS DEVBOX的专业深度学习计算环境。 关于硬件采购部分,构建深度学习环境需要高性能的硬件组件。NVIDIA DIGITS DEVBOX是一个参考设计,其特点包括高并行处理能力和快速的数据存取。本文推荐使用两台搭载ASUS X99-E WS主板的主机,该主板支持多达四张PCIe 3.0 x16显卡,具备良好的扩展性。对于CPU,选择了Intel Core i7-5930K,其六核心能够提供强劲的多线程处理能力。此外,还推荐了两个GeForce GTX TITAN X 12GB的GPU,它们基于Maxwell架构,省电同时提供良好的性能,单卡功耗约250瓦。每台电脑配置一个,以后根据需要可增购。 内存方面,推荐使用32GB(每台),以DDR4-2133标准运行的Micron内存。需要注意的是,内存采购需要参考主板厂商的QVL(Qualified Vendors List)清单,以确保良好的兼容性。对于存储设备,使用EZLINK CV-6 512G SATA3 SSD作为系统盘,而M.2接口的Kingston HyperX Predator PCIe HPM2280P2/240G用作SSD Cache,能提供高达1400MB/s的读取速度。为了提供更大的可用空间和数据冗余,使用三个3TB的Seagate企业级NAS硬盘组建RAID 5阵列,这样的配置能保证即使有一个硬盘损坏,数据也不会丢失。 在机箱选择上,推荐使用Thermaltake Core X9平躺式机箱,其设计能够避免硬盘受到GPU散发的高热量影响,并为未来增加GPU提供足够的散热空间。机箱内部配备了200mm超大静音风扇和120mm标准风扇,同时支持多组风扇支架,提高散热性能。 对于电源供应器,推荐使用振华Leadex 850W电源,因为它通过了80PLUS认证,在不同负载下都有约90%的高效率。虽然原本预算有考虑1600W电源,但850W仍有足够的空间在将来增加一张GPU卡。由于预算限制,原计划考虑的Infiniband网络最终没有纳入。ASUS X99-E WS主板内建双端口1000Mb Ethernet网络接口,能满足基本的网络需求。 硬件组装时需要注意,因为系统主要提供多人远程使用,因此选择安装的是没有图形界面的Ubuntu 14.04.4 Server版。安装完系统首次开机可能没有显示画面,原因是开源的nvidia驱动支持的GPU卡有限,需要在GRUB配置中加入nomodeset参数,以解决兼容性问题。 在存储系统规划方面,底层使用三个硬盘组成RAID 5磁盘阵列,可以保证单个硬盘损坏时数据不丢失。但需要注意的是,这种配置会损失大约一个硬盘的空间来存储校验数据,因此实际可用空间是6TB(3TB+3TB)。这里使用了ext4文件系统、逻辑卷管理(LVM)和软件RAID(mdadm)来满足数据卷的管理、磁盘阵列的容错以及文件夹的快照备份等功能。 在操作系统的选择上,之所以选定Ubuntu,是因为其操作环境熟悉的人多,且NVIDIA DIGITS DEVBOX使用的也是Ubuntu。虽然曾考虑过使用Ubuntu 16.04版本,但当时NVIDIA的CUDA尚未正式支持16.04,为了防止潜在的bug影响系统稳定性,最终还是选择了14.04版本。在14.04上,如果未来确定CUDA支持16.04,再进行升级。16.04版本有许多新功能,如ZFS文件系统的支持,它能同时满足数据卷管理、磁盘阵列的容错和数据夹快照备份等需求,但这些都将在14.04版本上使用ext4、LVM和mdadm来实现。 打造一个深度学习计算环境需要充分考虑硬件的性能、兼容性、扩展性以及散热问题,并结合成本预算合理规划。通过上述的介绍,读者可以了解到在有限预算下,如何自行组装出一台性能优越、适合深度学习研究的计算环境。