Breaking Barriers: Expanding GPU Memory with Sub-Two Digit Nanosecond Latency CXL Controller——论文泛读

HotStorage 2024 Paper CXL论文阅读笔记整理

问题

大规模深度学习模型,包括大型语言模型和专家混合模型,已经出现在各种计算领域,但这些模型的内存占用和要求大大超过了加速器的可用内存容量,尤其是GPU。例如,加载和训练具有10亿个参数的模型需要16~24GB的GPU内存,但使用超过1000亿个参数模型的系统越来越常见[1-6]。

现有方法据局限性

为了应对这个挑战,已经设计了利用存储解决方案[7-10]或外部存储器[11-14]的策略。

GPU直接存储(GPUDirect[15]),通过修改存储堆栈将GPU的PCIe基址寄存器(BAR)直接映射到目标SSD,利用SSD的存储容量来管理大规模模型参数。它将SSD视为块设备,需要对文件系统进行细致的管理,并且内存和块访问之间的I/O粒度存在差异。此外,GPUDirect需要手动处理存储/内存操作(例如cuFileWrite),使复制-执行编程模型复杂化,并阻碍了其采用。

统一虚拟内存(UVM[16]),允许CPU和GPU通过包括GPU和主机内存的共享虚拟内存空间访问数据。该系统根据需要自动分配和迁移内存,使UVM成为TensorFlow[17]和DGL[18]等深度学习应用程序中管理大型数据集的更常用方法。

CXL延迟

CXL的延迟涵盖了所有相关层之间的完整往返路径。图3展示了从主机到EP的硬件层堆栈。来自主机CPU的内存请求在事务层转换为CXL flit,该flit支持每个子协议所需的功能和接口。flit将进入链路层,该层负责监督通信流,包括缓冲和确认。然后,flit被传递到Flex Bus物理层(1),该层根据链路速度和通道配置等因素将其发送到目标EP(2)。为了准确管理CXL子协议,EP还必须集成这些层。在经过EP的堆栈后,flit返回到系统总线(3),到达内存控制器或SSD控制器。然后,从存储介质(4)检索数据,并将其发送回主机CPU的系统总线,再次遍历硬件层(5)。

PCIe事务层和链路层是关键组件,因为它们在设备枚举、配置和数据管理中起着重要作用。该硬件层堆栈的结构和功能在确定往返延迟方面起着关键作用。尽管市场产品尚未发布,但三星[25]和Meta[26]等组织进行的研究已经检查了他们的原型,报告延迟为250ns。

本文方法

本文介绍了利用CXL的GPU存储扩展方案,该方案具有多个CXL根端口,用于集成各种存储介质(DRAM和SSD)。

  • 由于GPU中缺乏能够支持DRAM/SSD EP作为内存扩展设备的CXL逻辑结构和子系统,因此集成CXL进行GPU存储扩展构是一个挑战。为了克服这个问题,本文开发了一个CXL硬件层堆栈,开发并硅化了一个在硬件RTL级(数字电路,寄存器传输级)集成的定制CXL控制器。随后提出了一种GPU架构,该架构具有配备这些CXL控制器的多个CXL根端口,每个端口都能够通过主桥支持DRAM/SSD EP,实现了两位数纳秒的往返延迟,约80ns。

  • 为了克服本地内存和EP的存储介质的延迟差异,从GPU与EP交互的角度引入了两种策略:推测读取(SR)和确定性存储(DS)。

    • SR是CXL 2.0的一项功能,它通过与DRAM/SSD EP共享来预测目标地址,使EP能够预取目标页面,从而降低了存储介质的延迟影响。考虑到SR请求可能对EP造成的过多负载,通过CXL服务质量(QoS)遥测功能监控EP状态,对SR请求流量进行精确管理,平衡性能和系统负载。

    • DS机制是为较慢EP介质(如NVM SSD)量身定制的。它执行对GPU内存和SSD EP的并发写入,立即完成来自计算资源的存储请求。考虑到GPU操作主要是读取,这种“即发即弃”策略对大多数现实应用程序都非常有效。当写密集或SSD写入延迟过高时,DS机制将SSD EP识别为瓶颈,控制器会将即将到来的数据临时存储在GPU内存中,随后将其传输到SSD EP。

本文使用尖端硅技术制造了CXL控制器,通过Vortex[29]实现了与GPU的集成,Vortex是一种基于RISC-V的通用GPU。使用定制设计的附加卡(AIC)设备对GPU存储扩展方法的有效性进行了严格测试。通过硬件的RTL级仿真,使用各种存储介质和GPU存储扩展技术进行了全面的测试。测试的结果表明,本文的GPU存储扩展方法明显优于UVM策略和用于GPU存储集成的商用EP原型控制器[25],性能分别提高了2.36倍和1.36倍。

总结

本文针对扩展GPU内存的问题,提出基于CXL的扩展方案。定制化设计了CXL控制器,运行GPU通过该控制器连接DRAM/SSD,实现约80ns的往返延迟。提出推测读取(在CXL控制器检测目标地址实现预取,监控流量避免预取引起过多负载)和确定性存储(当写密集或CXL内存成为瓶颈,在GPU内存临时存储数据随后写入CXL内存)策略。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值