《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顯存卸載容器容器/進程?;钕逻M程?;钕?,顯存自動保存和恢復顯存加載總結總結 顯存-傳輸的巨大挑戰 硬件、互聯演進: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:/