Way To
1. 低时延FLASH替代DRAM概念的提出可能不再吸人眼球,究竟怎么落地,有没有市场空间?
2. FLASH 替换的量化实验,替换比例-性能-成本间的参考关系?
为什么需要内存扩展?
KIOXIA:低时延FLASH 卸载DRAM-Fig-1
1. 需求和场景在不断增加,用户对更高效数据访问的诉求不断涌现。
2. 计算架构自引入多核后,计算性能不断提高,但有效的计算时长受限于内存数据的传输效率,即有限的内存(缓存策略)不足以支撑多核计算体系。
内存占总服务器成本的40%-50%。
右侧图表展示了1980年至2020年期间,处理器性能增长远快于内存性能增长。
图片强调了数据中心在应对现代工作负载时,内存容量和带宽的瓶颈问题。随着技术从图像处理到人工智能/大语言模型的不断进步,对内存需求显著增加。然而,内存性能的增长未能跟上处理器性能的提升,导致了处理器核心利用率不足的问题,并且内存占据了服务器总成本的相当大部分。这进一步说明扩展内存的重要性。
KIOXIA:低时延FLASH 卸载DRAM-Fig-2
使用闪存进行内存扩展
CXL®的优势
- • 成本有效的内存容量和带宽扩展
- • 支持与DRAM的内存池化与共享
- • 抽象化内存媒介接口
CXL®技术创造的完美机会
- • 探索昂贵DRAM的替代方案
- • 闪存媒介跨越“语义墙”
在CXL出现之前,DRAM 和 FLASH 介质间的数据分层是显性的,即存在“语义墙”的概念。
“语义墙”本质上是存储层次结构中不同存储介质由于性能、访问方式、应用场景的差异而形成的技术分隔。跨越语义墙的核心是让闪存(或其他低成本存储介质)具备更高的性能和内存功能,使其能部分替代DRAM,从而降低系统成本并提升整体存储效率。
如何实现FLASH 卸载DRAM应用,跨越内存语义墙呢?
Flash Memory 的探索
KIOXIA:低时延FLASH 卸载DRAM-Fig-3
KIOXIA 推出基于CXL互联的FLASH产品:XL-FLASH 和 BiCS FLASH。
- • CXL®与BiCS FLASH™适合高容量和高带宽的读取场景。
- • CXL®与XL-FLASH适合低延迟的随机读写场景。
首先来看下 高容量/带宽的FLASH应用场景。
KIOXIA:低时延FLASH 卸载DRAM-Fig-4
AI推理场景
存储层次结构:
- 1. GPU/xPU + HBM DRAM:
- 2. DRAM:
- 3. 带CXL®接口的NAND闪存:
- • 用于卸载AI模型和训练数据(Offload AI Models & Training Data)。
随着AI模型规模扩大(如GPT-4和未来模型),内存需求迅速增长,传统的HBM和DRAM无法单独满足这种需求。
解决方案:
通过带CXL®接口的NAND闪存,可卸载模型和数据,形成一种分层内存解决方案,提供高容量存储。
右图:模型精度与内存大小间的关系
在模型的内存占用中,不同精度(FP32、INT8、INT4)模型的存储需求可以按照数值精度的比例关系近似估算。以下是不同精度占用内存的比例关系:
1. 精度和内存比例关系
- • FP32 (32-bit浮点数):
- • 每个参数占用4字节(32位 ÷ 8 = 4字节)。
- • 基准点,占用内存为100%。
- • INT8 (8-bit整数):
- • 每个参数占用1字节(8位 ÷ 8 = 1字节)。
- • 相比FP32,内存需求降低至1/4,即约25%。
- • INT4 (4-bit整数):
- • 每个参数占用0.5字节(4位 ÷ 8 = 0.5字节)。
- • 相比FP32,内存需求降低至1/8,即约12.5%。
2. 总结内存占用比例
如果FP32的模型需要的内存空间为100%,那么其他精度的占用比例大约为:
- • FP32: 100%
- • INT8: 25%(FP32的1/4)
- • INT4: 12.5%(FP32的1/8)
3. 实际内存需求的影响因素
需要注意的是,虽然数值精度直接决定了参数占用的字节数,但实际内存需求还可能受到以下因素的影响:
- 1. 存储额外开销:
- • 如元数据、模型结构和索引。
- • 这些通常与精度无关,因此对整体内存占用比例的影响可能不完全符合理想比例。
- 2. 硬件优化支持:
- • 使用低精度模型可能需要硬件支持(如张量处理单元、加速器等)来保持性能。
- 3. 动态内存使用:
- • 模型在运行时需要额外内存存储激活值、中间结果和优化器状态。
实际场景中的应用
- • FP32:主要用于模型训练,因为它具有高精度和数值稳定性,适合处理复杂梯度变化。
- • INT8/INT4:常用于模型推理,特别是在需要降低内存占用和功耗的场景下(如边缘设备或大规模推理任务)。
KIOXIA:低时延FLASH 卸载DRAM-Fig-5
低延迟Flash在GPU计算中的案例
左图:GPU+CPU 计算体系访存路径
GPU:
- • 包含多个流多处理器(SM),用于高并行处理。
- • 通过PCIe®总线连接外部内存。
CPU:
- • 提供对CXL.mem接口和PCIe®接口的支持。
- • 通过CXL®与低延迟XL-FLASH及其他存储设备(如SSD和DRAM)交互。
外部存储(External Memory for GPU):
- • DRAM:高带宽但容量有限。
- • CXL®和XL-FLASH:低延迟、高性能,用作外部内存扩展。
- • SSD:容量高但延迟较大,适合冷数据存储。
右图:BFS(广度优先搜索)性能测试
- • 当使用低延迟的CXL®和XL-FLASH(带缓存)时,运行时间几乎与DRAM性能相当(接近1.0水平)。
- • 外部延迟(2µs ~ 4.5µs)对性能影响逐步增加,但带缓存的CXL®仍保持良好性能。
低延迟XL-FLASH结合缓存能提供接近DRAM的应用性能。
Note:结合前几日整理的CXL访问时延数据,直连的CXL时延在400ns以内,以这个数据来估计的话,实现外部时延3us以内,不是太困难的问题,特定场景还需特定分析。
参考阅读:XConn:CXL内存应用的带宽和时延
FLASH 卸载DRAM,能卸载多大比例呢?
性能测试数据
KIOXIA:低时延FLASH 卸载DRAM-Fig-6
基于 SPEC CPU 的测试数据
10% DRAM卸载:
- • 闪存接管10%的内存任务。
- • 性能维持在95.5%的DRAM性能。
15% DRAM卸载:
- • 闪存接管15%的内存任务。
- • 性能维持在94.5%的DRAM性能。
- • 图表显示部分点略有波动,但总体性能稳定。
20% DRAM卸载:
- • 闪存接管20%的内存任务。
- • 性能维持在90.9%的DRAM性能。
- • 图表显示波动范围加大,特别是在部分任务(如SPEC测试编号5230和5238)上性能有所下降。
意义:
- 1. 可扩展性:
- • XL-FLASH作为低成本、高容量的存储介质,可以有效接管部分内存任务。
- • 在高性能计算和内存密集型任务中,为DRAM提供了一种可扩展的补充方案。
- 2. 性能与成本权衡:
- • 虽然性能略有下降,但基于XL-FLASH的解决方案可以显著降低成本,同时满足大多数性能要求。
- 3. 应用场景:
- • 数据密集型任务:如人工智能推理、大规模并行计算。
- • 性能敏感任务:低延迟XL-FLASH适合需要快速响应的工作负载。
KIOXIA:低时延FLASH 卸载DRAM-Fig-7
基于Redis 内存数据库的测试数据
Test C:100% 读测试
基本结论:
- • 随FLASH卸载DRAM比例的增加,性能不断下降。卸载25%,性能降至基准的94%;卸载50,降至81%。
- • 数据prefetch策略(缓存)对读取场景的性能有显著影响。
Test A:读写各50% 测试
右上角数据显示:
- • 80%的数据访问集中在30%的数据上(二八定律在内存访问上同样生效)
右下角数据显示:
总结分析
1. 低延迟闪存的应用潜力
- • Redis数据库中的作用:
- • Redis是一种高性能内存数据库,传统上依赖高带宽DRAM。
- • CXL®和低延迟XL-FLASH使部分任务卸载到闪存,同时保持高性能。
- • 性能结果:
- • 在25%卸载的情况下,性能损失极小(<5%)。
- • 适当的预取机制能够大幅改善高卸载比例下的性能。
2. 热点数据优化
- • 数据访问集中在热点部分(80%访问仅涉及30%数据)。
- • 通过DRAM和CXL® XL-FLASH存储热点数据,优化响应时间和存储效率。
3. 实际意义
- • 提供了一种高性价比的内存扩展方案:
- • 降低对昂贵的DRAM的依赖。
- • 保持接近DRAM的性能,适用于数据密集型和高并发场景(如缓存、实时分析)。
KIOXIA:低时延FLASH 卸载DRAM-Fig-8
CXL Flash 内存面临的挑战与机遇
应用程序需求并不相同(All Applications Are Not The Same)
- 1. 不适用场景:
- • 不适用于对延迟和带宽敏感的应用程序(需实践)。
- • 应用程序如果没有针对内存分层进行优化(代码/数据访问逻辑需要重新定义),难以发挥优势。
- 2. 利用行业努力(Leverage Industry Efforts):
- • 透明页面放置(Transparent Page Placement):
- • 透明内存分层解决方案:
- • 特定应用库(Application-Specific Libraries):
右图对应用场景和FLASH卸载比例,做一简要梳理:
- 1. 通用卸载(General Purpose Offload):
- • 卸载比例:25%。
- • 性能维持在95%以上。
- • 应用:操作系统层级冷页面降级,硬件层级热点页面提升。
- 2. 内存型键值数据库(In-Memory KV-Database):
- • 卸载比例:50% ~ 75%。
- • 性能维持在90% ~ 85%。
- • 应用:适用于Redis™, CacheLib™, Aerospike®等。
- 3. 关系型数据库管理系统(RDBMS, TPC-H):
- 4. 图处理与搜索:
- • 图处理(Graph Processing, CPU/GPU):
- • 大规模哈希搜索(LSH with Large-Hash):
- • 卸载比例更高(>75%)。
- • 在大规模ANN任务(如最近邻搜索)中,闪存解决方案性能可超过DRAM。
低延迟CXL®和XL-FLASH优势:
- • 在<2.5微秒延迟条件下,与DRAM配合的GPU图处理可实现接近或更优性能。
- • 适用于数据搜索、挖掘任务,特别是LLM/RAG(大语言模型/检索增强生成)场景。
KIOXIA:低时延FLASH 卸载DRAM-Fig-9
应用场景与TCO
左侧是混合测试场景的DRAM卸载比例和性能数据。
SPEC CPU + Redis
使用低延迟闪存卸载23%DRAM任务后,总体性能保持在95%左右
右图显示:DRAM卸载比例与系统对应TCO的关系
Note:结合前一张性能的数据,实际可能得卸载比例不超过75%,在此基础上使用低时延FLASH的降低系统TCO的比例应在24%以内,可能并不那么诱人。
Take Away(总结)
- 1. 使用FLASH 替换DRAM是不少NAND厂商提出的新市场(参考文末推荐阅读),比较性能和TCO之后,应指出:最困难的地方是需要在应用/系统层面做到热点数据感知和自动分层,而如何实现是学术、硬件/系统厂商需要尽快突破的,否则FLASH替换DRAM无法落地(Fig8)。
- 2. 之前对CXL的关注停留在DRAM层面,NAND厂商同样希望基于CXL来扩展市场空间,存储系统必将因CXL而快速变革(Fig3)。
- 3. 低时延FLASH卸载DRAM比例-性能关系和TCO数据,基于此明确了FLASH的可参与空间(Fig8/9)。