1. AI在数据中心的能耗问题:提高Ai计算效率的关键是优化数据在内存中的查询效率。
2. 数据压缩对超大规模系统的重要性:分析压缩算法在降低存储需求和CPU负载中的关键作用。
3. 未来内存压缩创新方向:聚焦于片上缓存压缩和HBM压缩在提升内存效率上的潜力。
随着AI负载的增加,推理任务的比例和耗电量将显著增加。2023年AI耗电量占数据中心总耗电量的8%,而到2028年这一比例可能升至15-20%。
ChatGPT的单次查询耗电量是Google单次搜索的10倍,随着AI应用的不断落地,电力能效将迎来挑战。
随着Nvidia GPU从Volta到Blackwell的进化,其处理GPT-1.8T模型的推理能耗显著降低。新一代GPU(如A100)的浮点性能和能效均有所提升,但也伴随着更高的功耗需求(400W)。整体而言,虽然GPU在算力方面不断提升,但Transformer模型推理的低算术密度使得性能受内存限制,表明解决AI能耗问题仍面临挑战。
自2017年以来AI算法在计算需求和内存需求方面的演变趋势。
Transformer模型在2017年引入后,占据了较高的计算需求,之后随着新算法的推出,计算需求逐渐下降并多样化。
到2024年,AI模型中不仅有基于Transformer的算法,还有非Transformer和计算优化的算法,其中一些算法显著降低了计算和内存需求。
Note:大模型算法优化方兴未艾,随着数据在当前阶段被不断“炼化”,不难想象,未来出现资源节约型算法/计算框架,可能性极大。
这些技术旨在通过在内存或靠近内存处直接处理数据来减少数据移动,从而提升能效。
图示CIM 内存计算的架构模型。将计算阵列和内存封装在一起,两者通过高速的物理接口连接,内存介质可以使用DRAM或SRAM,其中DRAM的计算可以采取数字信号和模拟信号。
DRAM 中计算特点:
如何理解 有限的 op/s ?
1. 架构限制 DRAM的原始设计主要是为了存储数据,而不是用于计算。其内部架构并未优化为计算操作,因此在执行计算时效率较低。DRAM的操作是基于访问特定的行和列以读取或写入数据,每次数据操作都需要完成这些行/列访问,而这种存取方式相对慢,不能有效支持快速计算。 2. 串行计算 在DRAM中执行计算通常是“位串行”的,这意味着每次计算只能在少量数据位上完成,而非并行处理。这种串行处理方式导致了计算速度的降低,使每秒的操作数量(OP/s)受限。与之相比,专用的计算单元(如CPU或GPU)可以进行大规模的并行运算,从而提供更高的每秒操作次数。
SRAM 中计算特点:
左图显示内存Die和逻辑Die的封装位置。
CIM(内存中计算)和PIM(内存中处理) 差异是什么?
在“内存中计算”(Compute-In-Memory,CIM)和“内存中的处理”(Process-In-Memory,PIM)这两种技术中,计算发生在内存单元中和计算发生在内存封装中的差异主要体现在计算位置的不同,以及它们对内存架构和封装的需求。 1. 计算发生在内存单元中(Computation happens in the memory cells) 在这种情况下,计算直接在内存单元级别进行。这意味着存储单元本身执行计算操作,通常是基本的逻辑运算(例如“与”操作、“或”操作等)。这种方法的特点包括: - 微观级别的计算:计算在每个存储单元(或非常接近存储单元的电路)中发生,数据无需离开内存单元。 - 并行性:大量内存单元可以同时执行简单计算操作,支持大规模并行计算。 - 低延迟:由于计算在存储单元中完成,数据移动最小化,从而减少了延迟。 - 适合简单操作:通常适合处理简单的、低复杂度的运算,因为内存单元的设计并不复杂,无法处理高级计算逻辑。 这种设计可以减少数据传输的能耗和延迟,但一般不适合复杂的计算需求,只适合简单、重复性高的操作。 2. 计算发生在内存封装中(Computation happens in the memory package) 在这种情况下,计算并不直接在内存单元内发生,而是在内存封装中的独立处理单元中进行。这里的“封装”指的是包含内存芯片和计算芯片(如逻辑芯片或计算核心)的整体封装。例如,在高带宽内存(HBM)中处理(如PIM技术),多个DRAM芯片和逻辑芯片被封装在一起,但计算发生在封装内的独立逻辑单元中。这种方法的特点包括: - 宏观级别的计算:计算在内存封装内的独立处理单元(例如逻辑芯片)中完成,而不是在单个存储单元中。 - 更复杂的计算:逻辑单元可以进行更复杂的操作,例如矩阵乘法、卷积等深度学习所需的计算。 - 封装内通信:由于处理单元和内存芯片在同一封装内,它们之间的数据传输速度快,延迟小,但比直接在存储单元中计算略高。 - 3D封装和混合键合:通常使用3D封装技术,将计算单元和内存单元垂直堆叠在一起,通过短距离连接进行高效通信。 这种设计适合需要更高计算能力的应用,例如深度学习中的矩阵运算,同时也能避免传统内存与CPU之间频繁的数据传输带来的延迟。 总结:两者的核心差异
- 复杂性:CIM适合简单、并行性高的操作;PIM适合更复杂的计算需求。 - 数据移动:CIM几乎没有数据移动,而PIM在封装内进行较短距离的数据传输。 通过这两种不同的方法,CIM和PIM各自适应不同类型的计算需求,CIM适合能效要求高、计算简单的场景,而PIM则能支持更复杂的计算任务。
计算内存系统的架构,其中多个内存模块通过物理层(PHY)与计算单元连接,再通过CXL接口与主机通信。此架构的主要目的是提升带宽并支持数据(解)压缩和模型训练计算等操作。这种设计将计算单元集成在内存系统中,旨在减少数据传输的延迟并提升处理性能。
压缩消耗的CPU周期(CPU cycles used for compression):
为了优化性能并降低开销,超大规模公司认为硬件加速的压缩功能是必需的。为此,Open Compute Project (OCP)发布了“超大规模CXL分层内存扩展规范”,旨在为超大规模数据中心提供硬件加速的压缩支持。
左侧柱状图,比较了不同压缩算法效率;
右侧显示,压缩算法与延迟和压缩比的关系图,表示不同算法在不同延迟范围的压缩效率。
现存压缩算法主要集中在SSD介质中,但计算时延和CPU占用都比较高,需要进一步探索低时延域内的压缩算法,如缓存中压缩的BDI和ZID。
图展示了两种未来的内存压缩趋势:片上SRAM缓存压缩和HBM压缩。在SRAM缓存压缩方案中,通过CacheMX实现缓存数据的压缩和解压,以减少数据占用的空间。在HBM压缩方案中,通过HMComp控制器在混合内存架构中实现压缩,从而扩展近内存的容量。这两种技术为未来高效数据存储和传输提供了新的机会和解决方案。
1. 存储和内存压缩创新对于超大规模计算至关重要。
2. GPU并不能解决能源问题,需要更高效的解决方案。
3. 计算机算法的发展推动了计算机能耗的需求变化。
4. 新型存储器技术如ReRAM、MRAM等可用于计算加速。
5. 加速压缩技术的应用可以降低超大规模计算的成本。