NPU Qwen3-next推理优化实践【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer阿里千问团队发布了 Qwen3-Next 模型使用混合注意力架构结合GatedAttention和GatedDeltaNet模块实现超长上下文长度的有效上下文建模。概述本文旨在分享 Qwen3-Next 模型在昇腾 NPU 上的推理优化实践重点介绍针对混合注意力架构设计的并行策略、高性能融合算子、MTP 投机推理及 W8A8C8 量化方案以实现长序列场景下的高性能表现。Highlights整体部署策略大EP并行方案针对GatedAttention采用TP部署策略叠加实现长序列亲和的CP并行策略兼顾时延和吞吐。使用AscendC实现的NPU RecurrentGDN融合Kernel提升decode linear attention性能。基于自研PyPTO框架实现NPU ChunkGDN融合Kernel提高融合算子编程易用性。支持Int8 W8A8C8量化MTP1的投机推理。并行策略Atlas A3推荐部署策略如下图所示Prefill使用M个节点部署Decode使用N个节点部署每个节点包含8卡。其中BF16场景下推荐根据资源数量、SLA等约束启用CP并行时推荐M1 N1部署。Prefill并行策略Qwen3-Next引入的Gated Attention结构显著增强了长序列上下文的捕捉能力但在Prefill阶段随序列长度平方级增长的激活值内存占用使得OOM风险急剧上升同时如何在超长Context下维持低TTFT是部署的关键挑战。若使用纯TP策略在处理超长序列时TP通信组内将产生巨大的All-Reduce开销。同时Qwen3-Next的Attention Head数为16这限制了纯TP并行下最大16TP的部署规模。此外单纯依赖TP切分Head维度无法从根本上解决Sequence维度带来的OOM风险。针对Gated Attention与GDN模块计算特性的差异Qwen3-Next在prefill阶段采取分层异构的并行策略Gated Attention层采用 CP TP 混合并行Gated Attention模块计算复杂度接近$O(S^2)$。我们在此处引入Context Parallel (CP) 配合 Tensor Parallel (TP)。CP将Sequence维度切分到不同Rank显著降低了单卡的激活值内存占用。GDN层采用 TP 并行 GDN模块涉及沿Sequence的卷积操作不适合对Sequence轴的切分且num_head足够TP切分因此使用纯TP并行。Prefill的并行策略可以设计为下图形式Gated Attention并行策略Gated Attention使用mCP * nTP并行CP复用SGLang框架的DP通信域。以m4n264K输入推理为例每个CP rank处理64K/cp_size16K个token每个CP rank内的qkv_proj基于TP2计算在计算完kv之后对所有CP域的kv token进行AllGather得到完整的kv结果。每个rank拿到64K/cp_size的q token和完整的kv token进行后续的Attention计算。完成Attention计算之后将输出在TP组内进行Reduce-Scatter得到MoE输入需要的Scattered排布的数据。ZigZag负载均衡Attention计算需要遵循因果注意力如果CP简单按照rank顺序进行切片可能会面临计算负载均衡问题。如第一个rank关注到的历史kv token很少计算量较小最后一个rank关注到的历史kv token较多计算量较大。为了降低负载不均带来的影响需要将Sequence切分成cp_size*2个block如下图所示在prepare_attn阶段通过All-to-All通信将因果顺序排布的blocks转换为ZigZag排布每个rank负责计算头尾对称的两个切片每层Gated Attention计算前通过Token重排将kv还原回因果顺序。Gated Attention计算结束后在prepare_mlp阶段再次通过All-to-All通信将ZigZag排布的blocks转换为因果顺序排布Decode并行策略Decode阶段使用SGLang框架原生提供的并行能力在Gated Attention和GDN使用TP并行MoE使用EP并行。Gated Attention/GDN在prepare_attn阶段通过All-Gather通信将上一层MoE输出的Scattered形式排布的数据拼接为完整hidden state。MoE在prepare_mlp阶段对Gated Attention/GDN输出的hidden state进行Reduce-Scatter通信得到MoE输入需要的Scattered排布的数据。Multi-Token Prediction(MTP)MTP机制允许在一次主模型推理过程中同时推理多个Token在相似的数据搬运下进行更多的计算来充分利用芯片的算力提升模型等效时延和吞吐。需注意在主模型进行target_verify推理后需要根据接收情况来更新linear attention结构中的mamba_cache为下一轮计算提供正确的状态矩阵conv_state和ssm_state。融合Kernel使能recurrent_gated_delta_rule融合算子替换decode阶段的GDN模块等计算其中包含Sigmoid、L2Norm以及计算注意力分数和计算并更新ssm_state操作。 融合算子计算流程如下使能mambav2_rmsnormgated融合算子将 RMSNorm Silu Mul 融合计算。量化策略相对于BF16推理Int8量化可以有效降低端到端时延提升系统吞吐。目前本实践已经支持W8A8C8量化。量化架构如下Gated DeltaNet: 除conv外采用W8A8量化Gated Attention: 采用W8A8量化KVCache使用C8量化。MoE: 路由专家使用W8A8量化LM_Head: 暂不量化。注: W8A8: W8指权重使用静态Per-Channel Int8量化A8指数据使用动态Per-Token Int8量化 KVCache C8: 表示KVCache 使用动态Per-Tensor Int8量化量化模型精度表现模型MMLUGPQADROPMGSMBF1689.973.688.992.4W8A8C889.87488.492Future Planconv1d_update融合算子AscendC支持MegaKernelDecode阶段仍然存在较多融合算子并行空间可通过PyPTO实现更大范围的MegaKernel完成多核MPMD并行调度提升计算效率线性Attention的序列并行支持Prefill阶段在256K-1M长序列场景下TTFT耗时较长但linear attention的TP并行存在上限num_kv_head因此进一步并行加速需要支持linear attention层的序列并行减少TTFT耗时【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
CANN Qwen3-next推理优化
NPU Qwen3-next推理优化实践【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer阿里千问团队发布了 Qwen3-Next 模型使用混合注意力架构结合GatedAttention和GatedDeltaNet模块实现超长上下文长度的有效上下文建模。概述本文旨在分享 Qwen3-Next 模型在昇腾 NPU 上的推理优化实践重点介绍针对混合注意力架构设计的并行策略、高性能融合算子、MTP 投机推理及 W8A8C8 量化方案以实现长序列场景下的高性能表现。Highlights整体部署策略大EP并行方案针对GatedAttention采用TP部署策略叠加实现长序列亲和的CP并行策略兼顾时延和吞吐。使用AscendC实现的NPU RecurrentGDN融合Kernel提升decode linear attention性能。基于自研PyPTO框架实现NPU ChunkGDN融合Kernel提高融合算子编程易用性。支持Int8 W8A8C8量化MTP1的投机推理。并行策略Atlas A3推荐部署策略如下图所示Prefill使用M个节点部署Decode使用N个节点部署每个节点包含8卡。其中BF16场景下推荐根据资源数量、SLA等约束启用CP并行时推荐M1 N1部署。Prefill并行策略Qwen3-Next引入的Gated Attention结构显著增强了长序列上下文的捕捉能力但在Prefill阶段随序列长度平方级增长的激活值内存占用使得OOM风险急剧上升同时如何在超长Context下维持低TTFT是部署的关键挑战。若使用纯TP策略在处理超长序列时TP通信组内将产生巨大的All-Reduce开销。同时Qwen3-Next的Attention Head数为16这限制了纯TP并行下最大16TP的部署规模。此外单纯依赖TP切分Head维度无法从根本上解决Sequence维度带来的OOM风险。针对Gated Attention与GDN模块计算特性的差异Qwen3-Next在prefill阶段采取分层异构的并行策略Gated Attention层采用 CP TP 混合并行Gated Attention模块计算复杂度接近$O(S^2)$。我们在此处引入Context Parallel (CP) 配合 Tensor Parallel (TP)。CP将Sequence维度切分到不同Rank显著降低了单卡的激活值内存占用。GDN层采用 TP 并行 GDN模块涉及沿Sequence的卷积操作不适合对Sequence轴的切分且num_head足够TP切分因此使用纯TP并行。Prefill的并行策略可以设计为下图形式Gated Attention并行策略Gated Attention使用mCP * nTP并行CP复用SGLang框架的DP通信域。以m4n264K输入推理为例每个CP rank处理64K/cp_size16K个token每个CP rank内的qkv_proj基于TP2计算在计算完kv之后对所有CP域的kv token进行AllGather得到完整的kv结果。每个rank拿到64K/cp_size的q token和完整的kv token进行后续的Attention计算。完成Attention计算之后将输出在TP组内进行Reduce-Scatter得到MoE输入需要的Scattered排布的数据。ZigZag负载均衡Attention计算需要遵循因果注意力如果CP简单按照rank顺序进行切片可能会面临计算负载均衡问题。如第一个rank关注到的历史kv token很少计算量较小最后一个rank关注到的历史kv token较多计算量较大。为了降低负载不均带来的影响需要将Sequence切分成cp_size*2个block如下图所示在prepare_attn阶段通过All-to-All通信将因果顺序排布的blocks转换为ZigZag排布每个rank负责计算头尾对称的两个切片每层Gated Attention计算前通过Token重排将kv还原回因果顺序。Gated Attention计算结束后在prepare_mlp阶段再次通过All-to-All通信将ZigZag排布的blocks转换为因果顺序排布Decode并行策略Decode阶段使用SGLang框架原生提供的并行能力在Gated Attention和GDN使用TP并行MoE使用EP并行。Gated Attention/GDN在prepare_attn阶段通过All-Gather通信将上一层MoE输出的Scattered形式排布的数据拼接为完整hidden state。MoE在prepare_mlp阶段对Gated Attention/GDN输出的hidden state进行Reduce-Scatter通信得到MoE输入需要的Scattered排布的数据。Multi-Token Prediction(MTP)MTP机制允许在一次主模型推理过程中同时推理多个Token在相似的数据搬运下进行更多的计算来充分利用芯片的算力提升模型等效时延和吞吐。需注意在主模型进行target_verify推理后需要根据接收情况来更新linear attention结构中的mamba_cache为下一轮计算提供正确的状态矩阵conv_state和ssm_state。融合Kernel使能recurrent_gated_delta_rule融合算子替换decode阶段的GDN模块等计算其中包含Sigmoid、L2Norm以及计算注意力分数和计算并更新ssm_state操作。 融合算子计算流程如下使能mambav2_rmsnormgated融合算子将 RMSNorm Silu Mul 融合计算。量化策略相对于BF16推理Int8量化可以有效降低端到端时延提升系统吞吐。目前本实践已经支持W8A8C8量化。量化架构如下Gated DeltaNet: 除conv外采用W8A8量化Gated Attention: 采用W8A8量化KVCache使用C8量化。MoE: 路由专家使用W8A8量化LM_Head: 暂不量化。注: W8A8: W8指权重使用静态Per-Channel Int8量化A8指数据使用动态Per-Token Int8量化 KVCache C8: 表示KVCache 使用动态Per-Tensor Int8量化量化模型精度表现模型MMLUGPQADROPMGSMBF1689.973.688.992.4W8A8C889.87488.492Future Planconv1d_update融合算子AscendC支持MegaKernelDecode阶段仍然存在较多融合算子并行空间可通过PyPTO实现更大范围的MegaKernel完成多核MPMD并行调度提升计算效率线性Attention的序列并行支持Prefill阶段在256K-1M长序列场景下TTFT耗时较长但linear attention的TP并行存在上限num_kv_head因此进一步并行加速需要支持linear attention层的序列并行减少TTFT耗时【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考