CCGrid 2023 Paper CXL论文阅读笔记整理
问题
随着网络结构的发展,消息传递集群已成为大规模图处理的解决方案。为了克服节点间通信的成本,还引入了共享内存模型,以避免图数据的冗余副本和额外存储空间。然而,对于商品网络结构,这种共享内存集群仍然存在一些缺点:
-
显式启动。使用基于DMA的方法,图形引擎必须明确地启动特定线程或附加硬件单元的节点间数据移动,阻塞顶点或边缘处理阶段
-
成本无效。网络结构中的粗粒度会导致大量交换的顶点数据。此外,由于一些顶点可能是不活动的或无用的,因此存在很大一部分冗余数据移动。
与传统的网络结构相比,凭借细粒度、字节可寻址的远程内存访问能力,新兴的内存语义互连和结构,计算快速链路(CXL),更适合在共享内存集群中采用。概念性的内存语义结构,称为结构上的CXL(CXL-oF),将为构建高效的共享内存图处理集群提供新的机会,其中一个节点将直接向其他节点发起字节可寻址远程内存访问(RMA)请求,并在接收回读数据后进行原位计算。然而,利用内存语义结构的共享内存图处理仍然具有挑战性。
-
延迟差距。与本地DRAM访问相比,CXL-oF上的细粒度RMA会引入严重的延迟开销。需要描述这种延迟差距的影响,并探索适当的计算范式,以消除图算法的性能下降。
-
不可用的硬件和平台。尽管CXL-oF显示出巨大的潜力,但它还没有投入生产。需要研究如何在没有真正的CXL-of硬件的情况下,通过硬件-软件代码设计方法来模拟CXL-of的行为,并优化基于CXL of-的集群。
-
图形引擎的分歧。为了保证系统性能,除了传统的通用CPU外,大量异构计算资源(即GPU[5]、[21]、基于FPGA的领域专用加速器[8]、[10]、[14]、[16]和ASIC[22]、[23])也用于图处理集群的构建。需要检查CXL-of的适应性和效率,以支持各种图处理引擎。
-
原子操作中的语义限制。在当前的CXL协议中,只有当获得对一个远程内存区域的独占所有权并且从远程节点显式加载该区域中的数据块时,才允许启动对该区域的原子写入操作。由于顶点和边的空间局部性有限,这种语义将导致分布式图处理中集群间数据的大量移动,以同时进行属性更新。
本文方法
本文研究了基于共享内存模型的图顶点传播的内存访问特性,并提出了GraCXL,包括一系列设计范式,用于解决基于CXL的集群中可能出现的远程内存访问的高频率和长延迟问题。为了系统的适应性,分别针对通用CPU集群和特定领域的FPGA加速器阵列阐述了GraCXL。
-
通过共享内存模型定性地研究了顶点传播的拉和推模式下的RMA特征。基于观察结果,提出了系统级方法,分别用于(1)降低访问频率和(2)重叠RMA和计算,以克服CXL-oF集群中的RMA延迟开销。
-
基于标准CXL.mem协议设计了CXL-oF的自定义硬件堆栈,并对自定义节点间原子操作进行了轻量级扩展。支持通过商品网络基础设施传递CXL命令,并方便地适应现有的图形引擎和内存控制器。在FPGA上合成并实现了定制的CXL-oF,为GraCXL的近似真实世界评估提供了一个基本组件。
-
为了更好地理解GraCXL的有效性,采用了GraCXL范式分别评估了具有代表性的von Neumann架构(即通用CPU(GraCXL CPU))和特定领域架构(即FPGA上的自定义加速器(GraCXL-FPGA))上集群的性能。
实验结果表明,GraCXL在CPU和FPGA集群的性能分别提高了1.33x-8.92x和2.48x-5.01x。
总结
如何在图处理系统中利用CXL优化性能。本文基于对共享内存模型的分析,设计了降低访问频率和将计算与RMA重叠的方法。随后在FPGA上实现了CXL-oF,并与现有图处理系统结合,实现性能提升。