CXL 内存使用模式及配置
CXL 1.1 的主要使用模式包括:
- PGAS NIC:用于网络接口卡,支持原子操作。
- HBM 用法:扩展内存带宽和容量。
- 2LM 用法:适用于 GPU 和 FPGA 等密集计算场景。
- CXL.io:包括缓存协议(CXL.io Cache)和内存协议(CXL.io Memory)。
CXL 内存配置(Linux)
在 Linux 系统中,CXL 内存配置涉及以下组件:
- 应用程序托管记忆:通过
libndctl 和 sysfs 枚举 HMEM/DAX 设备,使用 mmap 映射内存。
- 堆管理器:使用
memkind 库创建和管理特定内存分区,支持 malloc 和 free 等操作。
- 持久性内存:通过
pmem2 库(如 libpmem2 和 libpemobj)实现持久性内存映射和操作。
- 内核托管记忆:通过
numa 命令和内核内存管理器控制内存分配和迁移,支持热页和冷页管理。
CXL 内存基准测试
使用 CacheBench 对 SDM CXL 内存进行基准测试,验证内存分层支持缓存应用程序的性能。测试涉及 CacheLib 库,支持 DRAM 和块缓存,并通过 numactl 或内核分层管理 DRAM 高速缓存。
演示与平台支持
- Linux 操作系统:英特尔预生产 CXLFPGA 内存缓冲区。
- 英特尔蓝宝石急流预生产平台:展示英特尔至强蓝宝石急流/CXL 启用固件支持包(英特尔 FSP)。
- OCP 平台:英特尔至强蓝宝石急流预生产 OCP 平台和 FPGA 内存缓冲区互操作演示。
总结
- SDM 计划:重点协助采用分层/混合内存解决方案,关键组件包括新型内存技术(如 SCM、HBM)和行业标准互连(如 CXL)。
- 底层资源抽象:内核分层和应用程序库(如 CacheLib)提供基本内存和存储资源抽象。
- 全行业努力:推动 SDM 从概念到现实需要全行业的协作。