ICPP 2022 Paper CXL论文阅读笔记整理
问题
深度学习(DL)正被广泛用于解决不同领域的科学应用中的复杂问题。DL应用程序使用大规模高性能计算(HPC)系统来训练给定的模型,需要消耗大量数据。这些工作负载具有很大的内存和存储需求,通常超出HPC服务器上可用的有限主内存量。导致在训练过程中,输入训练数据和模型参数经常被交换到较慢的存储层,显著增加了总体训练时间。
挑战
针对基于TensorFlow的DL模型,分析了TensorFlow[7]平台中的数据暂存和放置,发现数据流路径中有以下限制:
-
TensorFlow不知道底层内存和存储子系统的异构性[22]。
-
TensorFlow不利用额外的内存和存储层来优化数据输入管道[8]。
-
TensorFlow的默认缓存和预取机制不足以在内存和存储资源有限的服务器上处理大型数据集[29]。
本文方法
本文利用计算快速链路(CXL),提出了DeepMemoryDL框架,为DL工作负载提供额外的内存和快速暂存空间,以减少总体训练时间。
关键思想是使TensorFlow能够识别和利用各种可用的内存和存储设备层,并开发主动预取和缓存技术,利用DL工作负载的I/O访问模式来避免I/O停滞。管理额外的基于CXL的内存的分配,根据不同的可用内存和存储设备的配置文件将其分类到不同的层中,在每个工作节点的适当层中预取和缓存所需的数据。
【资源收集+负载分析+数据预取,核心是预取】
本文将DeepMemoryDL与TensorFlow集成,以表明提出的方法减少了读写延迟,提高了整体I/O吞吐量,并减少了训练时间。评估显示,与默认的TensorFlow平台和基于CXL的内存扩展方法相比,性能分别提高了34%和27%。
实验
实验环境:八台运行Ubuntu 20.04 LTS服务器操作系统的服务器,每台服务器有两个2.40 GHz Intel Xeon Gold 6240R处理器,192 GB内存,其中96 GB内存用于模拟CXL内存和CXL存储设备,服务器之间通过10 Gbps以太网连接。通过从远程NUMA域分配内存来模拟CXL内存,通过在远程NUMA上创建RAMDisk[16]来模拟CXL存储设备。
实验对比:执行时间
实验参数:数据集,CXL内存大小,批量大小
总结
基于CXL内存扩展内存时,如何优化DL模型训练,本文提出DeepMemoryDL框架,通过资源收集+负载分析+数据预取,优化模型训练时间,避免数据读取导致的I/O停滞。核心是数据预取,并没有利用很多CXL的特性。