人工智能、机器学习、深度学习应用的强烈需求对数据中心的性能、可靠性和可扩展性提出了挑战,尤其是当架构师模仿公共云的设计以简化向混合云和内部部署的过渡时。
GPU(图形处理单元)服务器如今很常见,围绕GPU计算的生态系统正在迅速发展,以提高GPU工作负载的效率和可扩展性。然而在避免存储和网络中潜在的瓶颈的同时,也有一些技巧可以很大限度地提高GPU的利用率。
Excelero公司首席技术官Sven Breuner和首席架构师Kirill Shoikhet提供了9个为人工智能、机器学习和深度学习做好准备的更好实践。
数据点1:了解目标系统性能、投资回报率和可扩展性计划。
这样,他们就可以与数据中心目标相吻合。随着人工智能成为核心业务的重要组成部分,大多数组织都从最初的少量预算和少量培训数据集入手,并为无缝和快速的系统增长在基础设施方面做好准备。需要构建所选的硬件和软件基础设施,以实现灵活的横向扩展,以避免在每个新的增长阶段产生破坏性的变化。数据科学家与系统管理员之间的紧密协作对于了解性能要求,并了解基础设施可能需要随着时间的推移而发展而至关重要。
数据点2:评估集群多个GPU系统。
在拥有多个GPU的服务器中可以在系统内部实现高效的数据共享和通信,并具有成本效益,而参考设计假定将来会在集群中使用,并且在单个服务器中最多支持16个GPU。多GPU服务器需要准备好以非常高的速率读取传入的数据,以保持GPU满载运行,这意味着它需要一个超高速网络连接,一直到培训数据库的存储系统。但是在某个时候,单台服务器将不足以在合理的时间内通过不断增长的培训数据库进行工作,因此,在设计中构建共享存储基础设施将使得随着人工智能、机器学习、深度学习用途的扩展,并更容易添加GPU服务器。
数据点3:评估人工智能工作流程各个阶段的瓶颈。
数据中心基础设施需要能够同时处理人工智能工作流程的所有阶段。对于具有成本效益的数据中心来说,拥有可靠的资源调度和共享概念是至关重要的,因此,当一组数据科学家获得需要摄取和准备的新数据时,其他人将对其可用数据进行培训,而在其他地方,先前生成的模型将用于生产。Kubernetes已经成为解决这一问题的主要解决方案,它使云计算技术在内部部署很容易获得,并使混合部署变得可行。
数据点4:查看用于优化GPU利用率和性能的策略。
许多人工智能、机器学习、深度学习应用程序的计算密集型性质使基于GPU的服务器成为常见选择。但是,尽管GPU可以有效地从内存加载数据,但是训练数据集通常远远超过内存的容量,并且涉及的大量文件变得更加难以摄取。在GPU服务器之间以及与存储基础设施之间、实现GPU数量与可用CPU功率、内存和网络带宽之间的最佳平衡至关重要。
数据点5:支持训练和推理阶段的需求。
在训练系统“看猫”的一个经典示例中,计算机执行数字游戏(或更确切地说是GPU)需要看到很多颜色各不相同的猫。由于包含大量并行文件读取的访问的性质,NVMe闪存通过提供超低的访问延迟和每秒的大量读取操作很好地满足了这些要求。在推理阶段,其挑战是相似的,因为对象识别通常实时进行,这是NVMe闪存还具有延迟优势的另一个用例。
数据点6:考虑并行文件系统和替代方案。
诸如IBM公司的SpectrumScale或BeeGFS之类的并行文件系统可以帮助有效地处理大量小文件的元数据,并通过在网络上每秒交付数万个小文件,从而使机器学习数据集的分析速度提高3到4倍。鉴于训练数据具有只读性,因此在将数据量直接提供给GPU服务器并通过Kubernetes之类的框架以共享方式共享数据时,也可以完全避免使用并行文件系统。
数据点7:选择正确的网络主干。
人工智能、机器学习、深度学习通常是一种新的工作负载,将其重新安装到现有的网络基础设施中,通常无法支持复杂计算和快速高效数据传输所需的低延迟、高带宽、高消息速率和智能卸载。基于RDMA的网络传输RoCE(融合以太网上的RDMA)和InfiniBand已成为满足这些新需求的标准。
数据点8:考虑四个存储系统的性价比杠杆。
(1)高读取吞吐量与低延迟结合在一起,这不会限制混合部署,并且可以在云平台或内部部署资源上运行。
(2)数据保护。人工智能、机器学习、深度学习存储系统通常比数据中心中的其他系统要快得多,因此在完全故障后从备份中恢复可能会花费很长时间,并且会中断正在进行的操作。深度学习训练的只读特性使它非常适合分布式擦除编码,在这种存储中,最高容错能力已经内置在主存储系统中,原始容量和可用容量之间的差异很小。
(3)容量弹性可适应任何大小或类型的驱动器,以便随着闪存介质的发展和闪存驱动器特性的扩展,数据中心可以在最重要的情况下最大程度地实现规模化的性价比。
(4)性能弹性。由于人工智能数据集需要随着时间的推移而增长,以进一步提高模型的准确性,因此存储基础设施应实现接近线性的缩放系数,在这种情况下,每增加一次存储都会带来同等的增量性能。这使得组织可以从小规模开始,并根据业务需要无中断地增长。
数据点9:设置基准和性能指标以帮助实现可扩展性。
例如,对于深度学习存储,一种度量标准可能是每个GPU每秒处理X个文件(通常为数千或数万个),其中每个文件的平均大小为Y(从几十个到数千个)KB。预先建立适当的度量标准有助于从一开始就确定架构方法和解决方案,并指导后续扩展。