《2024龙蜥大会技术实践分论坛:PyTorchCompile模型优化和应用-朱宏林.pdf》由会员分享,可在线阅读,更多相关《2024龙蜥大会技术实践分论坛:PyTorchCompile模型优化和应用-朱宏林.pdf(15页珍藏版)》请在三个皮匠报告上搜索。
1、Compile 技术概览、性能优化实践和应用PyTorch Compile 优化和应用阿里云程序语言与编译器团队演讲人 朱宏林程序语言与编译器 我们是阿里云编程语言与编译器团队,负责编程语言(C&C+、Java 等)、运行时(PyTorch 等)的研发与产品化,从而支持上层云和 AI 基础设施并且通过软硬件结合的方式对系统进行性能优化 我们目前已有产品与核心技术:AJDK(AlibabaJDK),Alibaba GCC/LLVM,AI 优化软件栈 等。我们的成果也被等操作系统、软件工程、计算机领域顶会收录。团队介绍概览PyTorch compile 技术介绍参考资料Compile 流程http
2、s:/pytorch.org/docs/stable/piler_dynamo_overview.html.pyBytecodeCPythonCallbackOriginalModifiedObject Code1.替换默认的 frame evaluation2.第一次执行时进入 callback 触发编译3.修改 bytecode 后返回给默认的 frame evaluation 执行Compile 流程经过 Dynamo,AOT Autograd,Inductor 后,生成目标代码Triton(GPU)C+(CPU)Aten op,cutlass.三种 IRTorch IRAten/Pri
3、m IRLoop-level IR参考资料https:/ IRAten IRLoop-level IRPyTorch compile 实际应用中遇到的问题和解决方案Compile 应用参考资料https:/pytorch.org/tutorials/intermediate/scaled_dot_product_attention_tutorial.htmlFused Attention替换成SDPA基于 transformer 结构的模型原始 self-attention 实现优化实现,调用 SDPA,flash-attn 等SDPAFlashAttentionMemory-Efficien
4、t AttentionPyTorch implementationPattern Matching参考资料Attention with Linear Biases paper:https:/arxiv.org/pdf/2108.12409没有使用 SDPA使用 SDPA,但进入了较慢的 backend性能限制:Q K.T*+*ALiBimask+softmax()V合并 opSDPA(,mask,)memory efficient attn原始论文图Constant Folding性能限制:没有使用 SDPA使用 SDPA,但进入了较慢的 backendA0+AAA复杂图=0+AAQ K.T*
5、mask+softmax()VSDPAMemory-EfficientFlashwith maskpattern matchingmask 矩阵全0Constant Folding说明:测试 GPU A10,数据类型 bfloat16,吞吐表示每秒执行多少次 self-attention 计算vanilla,memory efficient 和 flash attention 的性能差别Llama2-7B(1,2048,32,128)XLM-RoBERTa(1,8192,16,64)优化场景 确保 dynamic shape 下能够进行sdpa 的匹配。增强 constant folding 能力,去除不需要的 mask,从而使得 sdpa 进入更快的 flash 路径。XLM-RoBERTa(1,8192,16,64)PyTorch:编译优化、算子优化、运行时优化 三方库:deepspeed、vllm、triton、oneDNN/ACL 等 CPython:GC 优化应用输出研发范围AC2(Alibaba Cloud AI Containers)镜像 产品文档:https:/ ac2-