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