
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文分析了昇腾NPU在Llama2-7B模型推理过程中算子融合的优化效果。通过将Transformer层的11个独立kernel融合为2-3个主要kernel(QKV+RotaryEmbedding融合、FlashAttention融合、FFN融合),显著减少了68%的显存读写量(从121.6GB降至38.4GB)。文章详细拆解了单层Transformer的算子调用链,对比了融合前后的计算流程差异

大模型推理的显存大头不是权重,是 KV Cache。Llama2-70B 的权重约 140GB,但 32 个并发请求、序列长度 4096 的 KV Cache 就要 80GB。ATB 的 KV Cache 管理模块决定了你的推理服务能同时服务多少个请求。

摘要:昇腾NPU的ATB图优化器通过模式匹配将PyTorch计算图中的多个独立算子融合为更高效的组合算子。主要优化包括:1) 将QKV+RoPE融合为MergedMatMul+RotaryEmbedding;2) 将SDPA替换为FlashAttention;3) 融合Gate+Up+SiLU操作;4) 合并Add+LayerNorm。在Llama2-7B模型中,单层kernel数量从11个降至3

本文介绍了多模态模型(如LLaVA、Qwen-VL)在昇腾NPU上的部署策略。重点分析了Vision Encoder和Language Model的计算特点,推荐单卡部署7B模型(显存占用约16GB),多卡并行处理更大模型。文章提出了三项优化:1)使用NPU加速图像预处理,速度提升3-5倍;2)为图像token预分配KV Cache,避免显存碎片化;3)开启ViT的FlashAttention,使

本文介绍了动态批处理(dynamic batching)技术在昇腾NPU上的应用。相比静态批处理,动态批处理能将不同长度的请求拼接成batch处理,显著提升NPU利用率。文章详细阐述了动态批处理的原理、ATB框架的实现方式、padding策略选择,以及其与KV Cache的配合使用。实验数据显示,动态批处理可将Llama2-7B模型的吞吐量从150 tokens/s提升至3200 tokens/s

本文介绍了昇腾NPU上PyTorch代码转换为NPU指令的过程,重点解析了GE(Graph Engine)图引擎的工作流程。主要内容包括:1)GE将PyTorch FX Graph转换为GE计算图;2)通过优化Pass进行算子融合、常量折叠等优化;3)编译生成NPU可执行文件(.om);4)执行阶段加载om文件运行。文章还探讨了算子映射机制、动态Shape处理策略以及调试方法,帮助开发者理解性能瓶

摘要:CANN的torch_npu适配层让PyTorch代码无需修改即可在昇腾NPU上运行。安装需注意版本匹配,基本用法只需将tensor和模型.to("npu:0")。通过PyTorch的dispatch机制自动映射标准API到CANN算子实现,部分API支持自动融合。使用torch.compile可触发GE图优化,但需代码可trace。性能优化要点包括:减少CPU-NPU数据搬运、保持tens

摘要:昇腾NPU上激活函数的性能差异主要取决于算子融合能力而非计算速度。ReLU指令最少、融合友好度最高,但SiLU(Swish)因计算简单(3条指令)和多重融合路径成为大模型标配,比GELU快12%。ops-nn算子族通过预留融合接口实现性能优化,如Linear+SiLU融合比单独执行更快。虽然ReLU的稀疏性在CV模型中仍有价值,但SiLU在Transformer架构中展现出更好的工程优化潜力









