EMS弹性内存存储技术白皮书 ElasticMemoryServiceWhitepaper 文档版本01 发布日期2024-06-21 华为云计算技术有限公司 版权所有©华为云计算技术有限公司2024。保留一切权利。 非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。 商标声明 和其他华为商标均为华为技术有限公司的商标。 本文档提及的其他所有商标或注册商标,由各自的所有人拥有。 注意 您购买的产品、服务或特性等应受华为云计算技术有限公司商业合同和条款的约束,本文档中描述的全部或部分产品、服务或特性可能不在您的购买或使用范围之内。除非合同另有约定,华为云计算技术有限公司对本文档内容不做任何明示或暗示的声明或保证。 由于产品版本升级或其他原因,本文档内容会不定期进行更新。除非另有约定,本文档仅作为使用指导,本文档中的所有陈述、信息和建议不构成任何明示或暗示的担保。 华为云计算技术有限公司 地址:贵州省贵安新区黔中大道交兴功路华为云数据中心邮编:550029网址:https://www.huaweicloud.com/ 目录 1概述3 2背景和动机4 2.1AI技术的发展4 2.2AI场景中的存力痛点5 2.2.1持久化存储性能不足5 2.2.2DRAM利用率低6 2.2.3HBM内存墙6 2.3EMS的构建动机8 3产品架构和关键技术10 3.1软件架构10 3.2内存解耦池化11 3.2.1内存池融合部署架构11 3.2.2内存池分离部署架构12 3.2.3分级存储12 3.2.4数据冗余12 3.3面向AI推理的加速技术13 3.3.1以存代算14 3.3.2显存扩展15 3.3.3计算卸载16 3.4面向AI训练的加速技术16 3.4.1并行训练拓扑感知的检查点保存17 3.4.2基于NPU通信的检查点恢复18 3.4.3选择性检查点持久化18 3.5面向推荐模型的加速技术19 3.5.1Embedding池化存储20 3.5.2Embedding均衡打散20 3.5.3增量检查点21 4总结22 5缩略语23 1概述 基于大模型的生成式AI技术的重大突破推动了人工智能的应用范围从传统的分类任务扩展至广泛的生成任务,引发了AI应用的爆发性增长,并引领IT产业迈入全新的“AI时代”。随着AI产业的迅猛发展,云计算基础设施也在从以通用算力为核心向以智能算力为核心转变。在这种新型云计算基础设施中,数据的“算力”和“存力”是相辅相成的。尽管云数据中心在智能算力方面取得了显著进步,但是在存力方面的不足已成为制约效率的关键瓶颈。存力问题主要表现在三个方面:持久化存储性能不足、DRAM利用率低、以及HBM内存墙问题。 为解决这些存力问题,华为云推出了全球首创的弹性内存存储服务EMS(ElasticMemoryService),一种以内存为主要存储介质的云基础设施服务。通过EMS,华为云将传统的“计算-存储”分离的两层云架构升级为“计算-内存-存储”分离的三层云架构,其中新增的“内存层”即为EMS。这种新型的三层云架构能有效解决上述存力痛点,从而具有高资源弹性、高资源利用率和高性能等优势。具体来说,EMS通过以下方式解决三大存力问题:1)作为计算与存储之间的高性能缓存层,使用DRAM介质缓存来自HDD和SSD的数据,显著提升数据访问速度,解决“持久化存储性能不足”问题;2)将AI服务器中的DRAM资源解耦并池化,形成EMS内存池,实现DRAM资源的按需分配和高效利用,解决“DRAM利用率低”问题;3)扩展AI加速器中的HBM内存,通过DRAM内存容量和带宽的补充,大幅提升AI训练和推理的性能,解决“HBM内存墙”问题。 EMS的软件架构主要由分布式内存池、领域专用服务SDK和管理控制面三部分组成,具备易用性、弹性扩展和高可用性。分布式内存池提供跨节点的内存管理、数据负载均衡和数据恢复等功能,确保内存数据存储的低成本、高扩展性和高可用性。领域专用服务SDK提供针对不同AI场景的内存加速技术,如在AI推理场景中,通过以存代算、显存扩展和计算卸载技术降低首token时延,提升解码吞吐量,并支持更长的序列长度。在AI训练场景中,通过并行训练拓扑感知的检查点读写技术,实现极低的检查点操作时延。在推荐模型场景中,通过Embedding存取优化技术,实现高性能访问。 2背景和动机 2.1AI技术的发展 近年来,随着基于大模型的生成式AI技术的显著进步,人工智能的应用领域已从传统的分类任务扩展至包括文本对话、图片生成、视频生成、代码生成、Copilot、数字人等在内的生成类任务。这一变革推动了IT产业进入了一个全新的时代——“AI时代”,也预示着整个世界正迈向一个更加智能、高效、互联的未来。据Gartner预测,到2026年,超过80%的企业将采用生成式AI模型或在生产环境中部署支持此类技术的应用;到2028年,75%的企业软件工程师将依赖AI编码助手1。此外,AI技术的广泛应用预计将创造巨大的经济价值,根据Mckinsey的预测,生成式AI有望为全球经济贡献约7万亿美元,其中中国预计将贡献约2万亿美元2。 随着AI产业的快速发展,云计算基础设施正从以通用算力为核心转向以智能算力为核心。OpenAI的统计数据显示,自2012年以来,最大规模的人工智能训练任务所需的计算量每3.4个月翻一番,至2018年该指标已增长了30万倍3。大模型的性能通常遵循规模法则(ScalingLaw)4,即模型参数、训练数据量和训练计算量的增加会带来模型性能的相应提升。这意味着,为了提高大模型的性能,训练和推理所需的算力将持续大幅增长。在未来,智能算力规模将远超通用算力规模。IDC预测,2022至2027年间,中国智能算力规模的年复合增长率将达到33.9%,而同期通用算力规模的年复合增长率为16.6%,到2027年,智能算力(FP16)规模将达到1117.4EFLOPS,而通用算力(FP64)规模是117.3EFLOPS5。华为预测,到2030年,全球AI计算(FP16)总量将达到105ZFLOPS,较2020年增长500倍,而通用算力 (FP32)总量是3.3ZFLOPS6。 在以智能算力为中心的新型云计算基础设施中,数据的“算力”和“存力”是相辅相成的。一方面,强大的数据算力(包括GPU、NPU等算力单元)需要充足的数据存力(如HBM、DRAM、SSD等存储单 1“TopStrategicTechnologyTrendsfor2024”,Gartner,October2023. 2《生成式AI在中国:2万亿美元的经济价值》,麦肯锡,2023年9月. 3“AIandCompute”,OpenAI,May2018. 4Kaplanetal."ScalingLawsforNeuralLanguageModels."arXivpreprintarXiv:2001.08361(2020). 5《中国人工智能计算力发展评估报告,2023-2024》,IDC,2023年12月. 6《智能世界2030》,华为,2021年9月. 元)来保证数据处理的连续性和稳定性。另一方面,高效的数据存力也需要数据算力的支持,以便对存储的数据进行有效处理和利用。数据的算力和存力之间存在着紧密的联系和相互依赖。 2.2AI场景中的存力痛点 尽管云数据中心中的AI算力持续增强,数据存力的不足已成为制约其效率的关键瓶颈。存力的痛点主要表现在三个方面:持久化存储性能不足、DRAM利用率低、以及HBM内存墙问题。 2.2.1持久化存储性能不足 随着AI大模型和AI系统技术的迅速发展,传统的持久化存储介质已难以满足大模型训练和推理的高性能需求。近年来,大模型的参数数量呈指数级增长,导致模型大小急剧增加。例如,GPT-3的参数数量为1750亿,而据推测GPT-4的参数数量将达到1.76万亿。若使用FP16格式存储模型参数,GPT-3的模型大小约为350GB,GPT-4则约为3.52TB。在模型训练过程中,除了模型参数外,还需存储如优化器状态等其它信息,使得模型的Checkpoint大小通常是模型参数大小的6倍左右。在云环境中,这些大模型的参数和Checkpoint通常存储在持久化存储服务(如对象存储服务OBS)中,而云厂商提供的对象存储服务中单个租户桶的访问带宽一般在几十Gbps。因此,从对象存储服务中读取或写入一个模型往往需要几十分钟到数小时,这种长时间的读写延迟是不可接受的,会导致AI集群的计算资源等待,从而大幅增加AI集群的使用成本。 图2-1:持久化存储的模型读取耗时与推理和训练的时延需求对比 在模型推理过程中,AI加速器需要将模型参数加载到其HBM内存中进行推理。在Serverless推理场景中,AI加速器还需频繁切换不同的模型以满足不同用户的推理任务需求,这种模型切换的时延需求通常在秒级别。在模型训练过程中,AI集群的故障是不可避免的。当故障发生时,AI集群需要读取模型Checkpoint来恢复训练,此时所有参与训练的AI加速器(通常在几千到上万卡级别)都需要等待 Checkpoint的读取,这种读取时延需求也在秒级别。此外,在训练过程中,AI集群还需周期性地保存Checkpoint,Checkpoint的保存频率越高,故障发生时的训练时间损失越小。在保存Checkpoint的过程中,通常会造成AI加速器的阻塞,因此对Checkpoint写入的性能要求更高,写入时延需求在毫秒级别。如图 2-1所示,AI推理和训练对大模型参数的读写时延需求与当前持久化存储的实际读写耗时之间存在2至4 个数量级的差距。 2.2.2DRAM利用率低 当前的AI集群不仅包含AI加速器,还配备了大量的DRAM内存资源。例如,一台昇腾910服务器配置了8张NPU卡和1.5TB的DRAM,而NVIDIAGH200服务器中每张GPU卡则配备了512GB的DRAM。然而,在运行流行的大语言模型训练和推理任务时,这些DRAM资源的利用率却非常低。一项研究论文分析了两个较大规模的GPU集群的资源利用率情况,结果显示其中一个集群在90%的使用时间内DRAM利用率低于25%,另一个集群在76%的使用时间内DRAM利用率同样低于25%,且在几乎整个使用过程中,两个集群的DRAM利用率均未超过50%7。 AI集群中DRAM利用率低的主要原因在于,AI服务器上的DRAM资源通常是按照各种负载场景的最大需求进行配置的,以确保能够运行所有类型的负载。这种配置策略导致在某些特定负载下DRAM利用率较高,而在大多数其它负载下DRAM利用率则较低。例如,在华为云的一个GPU服务器集群上,运行推荐模型训练时DRAM利用率接近100%,运行CV模型训练时DRAM利用率可达70%,但在运行大语言模型(LLM)训练时,DRAM利用率则低于35%。由于目前AI集群主要由LLM负载主导,因此DRAM的整体利用率普遍偏低。 2.2.3HBM内存墙 AI加速器(如GPU、NPU、TPU等)面临的HBM内存墙问题,已成为限制AI算力充分发挥的关键障碍。HBM内存墙主要包括内存容量墙和内存带宽墙两个方面。 在内存容量墙方面,AI加速器的HBM内存容量增长速度远远落后于大模型存储需求的增长速度。如图2-2所示,典型的Transformer大模型的参数量每两年以240倍的速度增长,而业界典型的商用AI加速器的内存容量仅每两年翻两倍。这种大模型参数量与AI加速器HBM内存容量增长速度之间的巨大差距,意味着训练和推理一个模型需要更多的AI加速器,这将显著增加AI训练和推理的成本。此外,增加AI加速器数量的主要目的是为了让大模型能够存储在AI加速器的HBM内存中,这通常会导致AI算力的利用率低下。 7Hu,etal."Characterizationoflargelanguagemodeldevelopmentinthedatacenter."In21