-
CXL 技术概述
- CXL(Compute Express Link)通过硬件和软件创新改变数据中心内存架构,提升异构计算利用率,实现内存虚拟化、内存快照服务、内存分层等高级功能。
- 核心优势包括提高内存总量和类型、增强内存带宽、促进跨应用程序数据共享,尤其对 HPC 和 AI/ML 工作负载效益显著。
-
CXL 应用场景
- 主要用例包括媒体娱乐(模拟/渲染)、基因组学(测序/组装)、EDA/CAE(仿真建模)、HPC(仿真/建模)、内存中数据库、云环境(KVM 快照)、FSI(分析/决策支持)、AI/ML(深度学习)等。
-
CXL 面临的挑战
- 许多 HPC 和 AI/ML 应用程序具有“宠物”特性,内存访问模式复杂,需要针对性优化。
- 内存分层需解决透明性、自动化和性能问题,确保应用程序无需修改即可受益。
-
HPC 应用程序计算配置文件分析
- 以 MetaSpades 应用为例,展示计算、内存和 IO 绑定交替的特点,需通过 CXL 优化内存访问模式。
-
CXL 内存分层目标与实现
- 目标:实现应用程序透明性,提升 HPC 和 AI/ML 性能、效率和成本效益。
- 方法:通过 CXL 1.1 扩展内存,实现 DRAM 和 PMEM 之间、本地和远程 NUMA DRAM 之间的分层,降低延迟至 NUMA 跳变级别。
-
基于 DRAM 模拟的内存分层实验
- 使用 384GB DDR4 内存(8 x 16GB 慢层 + 16 x 16GB 快层)测试分层效果,基准应用程序在快速层上运行延迟降低至 108ns,验证分层可行性。
- 通过 IBS(Intel IBS)辅助内存分析器检测热点虚拟内存地址,使用更快 DRAM 支持,合成内存负载生成器模拟高斯分布访问模式,带宽提升 77.7%。
-
内存分层优化挑战
- 现有内存热图查看器不适用于分层优化,需更精准的内存访问分析工具。
-
内存机器部署方案
- 支持裸机、Kubernetes 和 KVM 部署,通过 DaemonSet 方式灵活部署内存服务,优化应用程序级内存分层效果。
-
总结
- CXL 通过软件定义内存和硬件级内存池化,彻底改变数据中心架构,提升异构计算效率,加速 HPC 和 AI/ML 工作流程,实现更快的洞察时间。