《Glake:效透明的大模型显存管理和优化-赵军平.pdf》由会员分享,可在线阅读,更多相关《Glake:效透明的大模型显存管理和优化-赵军平.pdf(31页珍藏版)》请在三个皮匠报告上搜索。
1、GLake:大模型时代显:大模型时代显存存+传传输输 管理与优化管理与优化蚂蚁集团-基础智能-AI Infra赵军平2024.5提纲提纲 背景与技术挑战 显存墙、传输墙 GLake介绍:显存与传输优化 训练场景 推理场景 其他:混部、serverless 总结:开源自我介绍自我介绍 赵军平,赵军平,蚂蚁异异构构计计算算与与推推理理引引擎擎负责人 CCF HPC和存储专委委员,200 中/美技术专利 异构加速,虚拟化,K8S,推理优化,文件系统,企业级存储-保护等“数据密集型应用系统设计”译者 20072019:EMC、Dell EMC,Start-upLLM技技术术挑挑战战1:显存显存墙墙 显
2、存容量容量、访存带带宽宽(特别是推理小batch场景)模型参数量 vs.单卡显存容量单卡算力 vs.访存带宽Llama2-70B推推理为理为例例 权重与KV cache的显存消耗分析(假定FP16 未优化)A10*8L40/20*4 A100*2A100*32机机 A1004机机 L40/202机机 A1002机机 L40/20A100*82机机 L40/20L40/20*6A100*4A10*8L40/20*4KV cache显存占用=H#*H_dim*L#*2*2B*seq#*b#LLM技技术术挑挑战战2:传输传输墙墙 访存、卡-卡传输、PCIe传输等发展 多任务、弹性服务(例如共享混部、
3、serverless)系统层、全局的管理与优化;模型透明 GLake蚂蚁集蚂蚁集团团-GLake总体总体架架构构 显存、传输一体系统优化 全局池化:跨卡、跨进程、跨容器 模型基本透明 开源、开放、共建训练场景:训练场景:显存显存碎碎片问片问题题 例子400MB显存碎片原显存碎片原因分因分析析CUDA不支持释放部分(空闲)显存区域访存特征的动态变化,LLM更加复杂 数据集长短不一、训练-评估、cu DNN workspace等 大模型:Recompute 多卡/stream并发 FSDP/Deep Speed offloading Lo RA不同优化策略 GB不同卡数Memory Utiliza
4、tion=原始pattern激活recompute后如何显存碎如何显存碎片优片优化化挑战释放部分使用释放部分使用的block?CUDA没有直接提供该能力API”碎片整理”的性性能能影响?搬移-拷贝数据需同步计算,影响性能复杂性复杂性?对用户/模型透明,尽量无感知减少碎片产生减少碎片产生 Tensor及时释放-工具BFC(first-best-match-sz)-least frag impact结合Tensor类型:同类型(权重/中间值/ws)临近分配提取tensor访问特征:生命周期相近的临近分配优化解决碎片优化解决碎片 基于细粒细粒度度chunk分配和释放,异步异步分配、释放:减少性能影响
5、 无数据搬移无数据搬移:对应用透明,降低复杂度思路基本思路基本思路2层指针与动态remapping(基于CUDA VMM)-虚拟虚拟:对用户可见,保证连续-物理物理:CHUNK_SIZE(2MB)粒度分配,不要求连续-Remapping:动态回收chunk与重映射虚拟内存addr对齐到chunk(2MB*N)addrhandles 98MB98MBRemap例子例子Sub-blockB1B3H3H4dataH1B1-1B3-2对齐到chunk,split blockB1B3H1H3H4释放空闲chunks:H1,35新分block(驱动内部对物理 显存进行整理)物理地址GLake:优化优化大大
6、模模型训型训练练显存显存碎碎片片 PyTorch caching allocator,pluggable;对模型透明 重点:映射元数据管理(无数据copy),策略控制GMLake:Efficient and Transparent GPU Memory Defragmentation for Large-scale DNN Training withVirtual Memory Stitching,ASPLOS24,蚂蚁集团、上海交大等Case StudyGMLake分分配配策策略设略设计计效果评测效果评测硬件环境硬件环境16 NVIDIA A100 SXM(80GB)训练框架训练框架FSDP
7、,DeepSpeed ZeRO,Colossal-AI Gemini模型模型8 LLMs includingOPT,Vicuna,GPT-2,GPT-NeoX and so on不同对比不同对比Batch-size,Strategies,Distributed TrainingDevices and Different Training Engines负载负载76 fine-tune workloads其他其他 与PyTorch ExpandSegment对比 相同:都借助VMM接口 不同:GLake的分配、粘合策略不同。内部实测效果优于Expand Segment。二者可互补(实现中)扩展成
8、为PyTorch pluggable allocator,方便lib替换方式使用 扩展支持跨stream:机会复用 开源、复用策略可灵活配置GLake:推理场景推理场景 case1:单模型多进程实多进程实例例(python)挑战:跨进程的权重、中间结果的显存如何复用 case2:LLM推理KV cache显存管理显存管理 长短不一动态生成,reserve低效;动态分配容易碎片 vLLM:PagedAttention,额外做特殊管理,修改kernel GLake思路:坚持系统坚持系统层面全层面全局局优化入手,优化入手,对对模型模型、kernel透明透明case1:多:多进程进程推推理理“显显存存
9、dedup”权重权重(RO):全局、细粒度、透全局、细粒度、透明明共享,类似存储“重删”全局全局:支持跨线程、跨进程、跨容器共跨进程、跨容器共享 透明透明:无需用户参与、无需配置无需配置 细粒度细粒度:层或者block级共享,基于hash和字节比对 中间结果中间结果:多模型(DAG)、跨进程中间结果的时分复用时分复用权重显存块进程1进程2进程3vP1vP2vP3M1M2M3不同于不同于 Triton Server/ONNXRT:-粒度粒度:模型所有W完全相同 vs.显存块级(通常比tensor粒度更小)-范范围围:单进程-使使用用:手工配置vs.跨进程、跨容器vs.自动发现,透明使用多模型DA
10、G设计:跨进设计:跨进程、程、跨跨模模型型 核心:虚拟-显存指针的动态管理与映射 跨进程export、引用计数等效果评测效果评测 6个进程总显存13.2-4.6GB(-65%)-权重优化:-中间结果优化:-3.3GB,25%-5.3GB,40%精度精度 不影响不影响 性性能能 不下降不下降 模型模型 不感知不感知 用户用户 不用配不用配Case2:LLM KV cache管理管理 问题:动态生成,*GB:与模型Hd#、Layer#以及运行时Batch#、Seq#成正比 现有方案:PagedAttention(vLLM):显式管理block index,显著降低碎片&提高batch 不足不足1:
11、现有attention kernel需要改造,比如FlashAtt,FlashDecoding 不足不足2:10%20+%kernel性能开销 GLake:继续系统层优化思路。模型看到大而连大而连续续的虚地的虚地址址,物理显存动态映射 好处好处1:所有atten kernel几乎不不需需改改造造,虚拟地址连续 好处好处2:特定场景下,20%350%的kernel性能优势(特别是GQA decoder)GLake+FlashAtten/FlashDecoding/FlashInfervs.v LLM Paged Atten kernel 其他:业界最新类似的思路,vAttention(未开源)V
12、MM不足不足 部分API调用耗时波动严重 cuMemSetAccess:10100+X 已反馈至NVIDIA:确认问题并初步分析了原因(lock attention)部分硬件上kernel有影响 A100:10%其他如A10、L40s、L20、H*等可持平 其他:API优化建议反馈至NV其他场景:其他场景:混部混部、serverless多任务共享、混部-显存动态切分显存动态切分-算力动态压制Serverless-显存显存(persistent)自动自动卸卸载载 按需加载按需加载在线批量研发GPU 多卡多卡显存显存+DRAM流量波动、性能SLA需求差异显存+传输的全局、动态管理全局、动态管理 提
13、高GPU利用率、降低成本GPU 多卡多卡显存显存+DRAM显存卸载容器容器/进程保活下进程保活下,显存自动保存和恢复显存加载总结总结 显存-传输的巨大挑战 硬件、互联演进:HBM4,NVLinkSwitch,CXL 软件的深层优化 GLake:系统层全局、动态管理与优化,对模型、用户尽量透明 进行中:混部+Serverless显存动态管理 推理显存全局统一管理、精细分配 KV cache Smart Rebuild L2 cache,DSM,参考参考 1 GMLake:Efficient and Transparent GPU Memor y Defragmentation for Large
14、-scale DNN Training with Vir tual Memor y Stitching,https:/ar xiv.org/abs/2401.08156 2 Efficient memor y management for large language model ser ving with pagedattention,https:/ar xiv.org/abs/2309.0618 0 3 v Attention:Dynamic Memor y Management for Ser ving LLMs without Paged Attention,https:/ar xiv
15、.org/abs/2405.0443 7 4 LLM Inference Unveiled:Sur vey and Roofline Model Insights,https:/ar xiv.org/abs/2402.16363 5 SKVQ:Sliding-window Key and Value Cache Quantization for Large Language Models,https:/ar xiv.org/abs/2405.0621 9 6 Attention Store:Cost-effective Attention Reuse across Multi-turn Con
16、versations in Large Language Model Ser v ing,https:/ar xiv.org/abs/2403.19708 7 You Only Cache Once:Decoder-Decoder Architectures for Language Models,https:/ar xiv.org/abs/2405.05254 8 Deep Seek-V2:A Strong,Economical,and Efficient Mixture-of-Exper ts Language Model,https:/ar xiv.org/abs/2405.04434 9 Loong Ser ve:Efficiently Ser v ing Long-context Large Language Models with Elastic Sequence Parallelism,https:/ar xiv.org/abs/2404.09526 10 QSer ve:W 4 A 8 KV 4 Quantization and System Co-design for Efficient LLM Ser v ing,https:/ar xiv.org/abs/2405.04532谢谢!谢谢!开源:开源:https:/