ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Qwen3-Next 混合注意力模型在 CANN 昇腾 NPU 上的 SGLang 推理优化与部署实践

2026/9/18 8:24:16 拓冰建站 浏览量
Qwen3-Next 混合注意力模型在 CANN 昇腾 NPU 上的 SGLang 推理优化与部署实践 Qwen3-Next 混合注意力模型在 CANN 昇腾 NPU 上的 SGLang 推理优化与部署实践【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer导读Qwen3-Next 是 2025 年 9 月发布的混合注意力开源大语言模型通过 GatedAttention 与 GatedDeltaNet 的组合实现超长上下文建模。本文基于 cann-recipes-infer 仓库中的 Qwen3-Next SGLang 集成样例完整介绍该模型在 Atlas A3 系列昇腾 NPU 上的推理优化实践从 Docker 环境构建、patch 加载、模型权重转换到 PD 混部/PD 分离部署、MTP 投机推理、AscendC 融合算子与 W8A8C8 量化的使能方法并给出测试验证与性能采集的完整操作指南。读者读完本文后可以独立完成 Qwen3-Next 在昇腾 NPU 上的端到端部署与调优。该样例的详细优化设计与原理可进一步阅读 Qwen3-Next 推理优化实践设计文档样例工程位于 integration/sglang/qwen3-next。一、优化特性总览本样例针对 Qwen3-Next 模型基于 SGLang 开源框架完成了 NPU 推理部署的适配与优化主要包含以下特性支持 MTP1 部署Multi-Token Prediction 投机推理一次主模型推理同时产出多个 token支持 AscendC 大融合算子recurrent_gated_delta_rule融合算子与mambav2_rmsnormgated融合算子支持 PyPTO 融合算子基于自研 PyPTO 框架实现 ChunkGDN 融合 Kernel支持序列并行Sequence Parallel针对线性 Attention/GatedAttention 的 SP 并行部署策略支持 W8A8C8 量化权重静态 Per-Channel Int8、激活动态 Per-Token Int8、KVCache 动态 Per-Tensor Int8 量化。优化设计文档中概括的核心亮点包括整体部署采用大 EP 并行 GatedAttention TP 部署 长序列亲和的 CP 并行策略兼顾时延与吞吐使用 AscendC 实现 NPU RecurrentGDN 融合 Kernel 提升 decode 阶段 linear attention 性能基于 PyPTO 实现 ChunkGDN 融合 Kernel 提升编程易用性支持 W8A8C8 量化与 MTP1 投机推理。二、并行策略设计2.1 整体部署PD 分离与分层异构并行Atlas A3 推荐部署策略为Prefill 使用 M 个节点部署Decode 使用 N 个节点部署每个节点包含 8 卡。在 BF16 场景下推荐根据资源数量、SLA 等约束选择部署规模启用 CP 并行时推荐 M1、N1 部署。2.2 Prefill 并行CP TP 混合并行Qwen3-Next 引入的 Gated Attention 结构显著增强了长序列上下文捕捉能力但 Prefill 阶段随序列长度平方级增长的激活值内存占用会带来 OOM 风险同时如何在超长 Context 下维持低 TTFT 是部署的关键挑战。若使用纯 TP 策略超长序列下 TP 通信组内会产生巨大的 All-Reduce 开销且 Qwen3-Next 的 Attention Head 数为 16限制了纯 TP 下最大 16TP 的部署规模单纯依赖 TP 切分 Head 维度也无法从根本解决 Sequence 维度的 OOM 风险。因此Prefill 阶段针对两种模块的计算特性差异采取分层异构并行策略Gated Attention 层采用 CP TP 混合并行Gated Attention 模块计算复杂度接近 O(S²)引入 Context ParallelCP配合 Tensor ParallelTPCP 将 Sequence 维度切分到不同 Rank显著降低单卡激活值内存占用GDN 层采用纯 TP 并行GDN 模块涉及沿 Sequence 的卷积操作不适合对 Sequence 轴切分且 num_head 足够 TP 切分因此使用纯 TP 并行。以 mCP × nTP如 m4、n2与 64K 输入推理为例每个 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 排布数据。2.3 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 转换为因果顺序排布。2.4 Decode 并行TP EPDecode 阶段使用 SGLang 框架原生并行能力Gated Attention 和 GDN 使用 TP 并行MoE 使用 EP 并行。其中 prepare_attn 阶段通过 All-Gather 将上一层 MoE 输出的 Scattered 排布数据拼接为完整 hidden stateprepare_mlp 阶段对 Gated Attention/GDN 输出的 hidden state 进行 Reduce-Scatter得到 MoE 输入所需的 Scattered 排布数据。三、融合算子与 MTP 投机推理3.1 recurrent_gated_delta_rule 融合算子使能recurrent_gated_delta_rule融合算子可替换 decode 阶段的 GDN 模块计算融合了 Sigmoid、L2Norm、注意力分数计算以及 ssm_state 的计算与更新操作。该算子源码位于 ops/gated_delta_net/recurrent_gated_delta_rule包含算子宿主侧实现recurrent_gated_delta_rule.cpp与 kernel 侧实现op_kernel/recurrent_gated_delta_rule.h。3.2 mambav2_rmsnormgated 融合算子使能mambav2_rmsnormgated融合算子将 RMSNorm Silu Mul 融合计算实现源码位于 ops/gated_delta_net/rmsnormgated。3.3 MTP 机制MTPMulti-Token Prediction机制允许在一次主模型推理过程中同时推理多个 token在相似的数据搬运量下进行更多计算充分利用芯片算力提升模型等效时延与吞吐。需注意主模型 target_verify 推理后需要根据接收情况更新 linear attention 结构中的mamba_cache为下一轮计算提供正确的状态矩阵conv_state与ssm_state。四、量化策略W8A8C8相对于 BF16 推理Int8 量化可有效降低端到端时延、提升系统吞吐。本实践支持 W8A8C8 量化各模块量化范围如下Gated DeltaNet除 conv 外采用 W8A8 量化Gated Attention采用 W8A8 量化KVCache 使用 C8 量化MoE路由专家使用 W8A8 量化LM_Head暂不量化。其中术语含义W8A8指权重使用静态 Per-Channel Int8 量化W8激活使用动态 Per-Token Int8 量化A8KVCache C8指 KVCache 使用动态 Per-Tensor Int8 量化。设计文档给出了量化模型的精度表现设计文档实测数据模型MMLUGPQADROPMGSMBF1689.973.688.992.4W8A8C889.87488.492五、环境搭建基于 Docker 构建5.1 硬件与软件要求项目要求产品型号Atlas A3 系列操作系统Linux ARM镜像版本sglang:main-cann8.3.rc2-a3驱动版本Ascend HDK 25.2.0可通过npu-smi info检查 Ascend NPU 固件和驱动是否正确安装并确认版本是否为 25.2.0。若未安装或版本不符请先下载固件和驱动包并自行安装。5.2 创建容器# 镜像下载 docker pull quay.io/ascend/sglang:main-cann8.3.rc2-a3 # 执行以下脚本创建容器请传入容器名称如 your_docker_name docker run -u root -itd --name your_docker_name --ulimit nproc65535:65535 --ipchost \ --device/dev/davinci0 --device/dev/davinci1 --device/dev/davinci2 --device/dev/davinci3 \ --device/dev/davinci4 --device/dev/davinci5 --device/dev/davinci6 --device/dev/davinci7 \ --device/dev/davinci8 --device/dev/davinci9 --device/dev/davinci10 --device/dev/davinci11 \ --device/dev/davinci12 --device/dev/davinci13 --device/dev/davinci14 --device/dev/davinci15 \ --device/dev/davinci_manager --device/dev/devmm_svm --device/dev/hisi_hdc \ -v /etc/localtime:/etc/localtime -v /home/:/home/ -v /data/:/data/ \ -v /usr/local/Ascend/driver:/usr/local/Ascend/driver \ -v /etc/ascend_install.info:/etc/ascend_install.info -v /var/log/npu:/usr/slog \ -v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /usr/local/dcmi:/usr/local/dcmi -v /etc/hccn.conf:/etc/hccn.conf \ -v /root/.pip/pip.conf:/root/.pip/pip.conf -v /etc/hosts:/etc/hosts \ --nethost --shm-size128g --privileged \ quay.io/ascend/sglang:main-cann8.3.rc2-a3 /bin/bash # 执行docker exec命令进入容器 docker exec -it -u root your_docker_name bash5.3 安装 CANN 与 torch_npu为使能 GDN 融合算子需要先将镜像中的 CANN 版本更新到 8.5.0# 清理旧版 CANN cd /usr/local/Ascend rm -rf 8.5.0/ ascend-toolkit/ latest/ nnal/然后从昇腾社区 CANN 下载页面下载如下软件包并参考官方 CANN 安装文档安装软件包文件名中${version}表示 CANN 包版本号${arch}表示 CPU 架构如 aarch64、x86_64开发套件包Ascend-cann-toolkit_${version}_linux-${arch}.run二进制算子包Ascend-cann-A3-ops_${version}_linux-${arch}.runNNAL 加速包Ascend-cann-nnal_${version}_linux-${arch}.run请参考官方版本兼容性说明确认 HDK 版本为兼容 PD 分离特性推荐版本为 25.2.x。安装完成后创建 latest 软连接ln -s /usr/local/Ascend/cann /usr/local/Ascend/latest本样例支持的Ascend Extension for PyTorchtorch_npu版本为 7.3.0PyTorch 版本为 2.6.0请参考官方 Ascend Extension for PyTorch 安装文档安装相应版本的 torch_npu 插件。5.4 下载项目源码并安装依赖# 下载项目源码以 master 分支为例 git clone https://gitcode.com/cann/cann-recipes-infer.git5.5 下载 SGLang 源码并加载 patch为了让使用者和开发者直观了解基于开源代码的修改本样例只包含 patch 代码框架代码需要自行拉取。返回 cann-recipes-infer 项目代码的上级目录即执行 git clone 时所在目录并执行如下命令需确保环境能够正常连通网络# 返回cann-recipes-infer项目代码上级目录 # 下载sglang源码官方开源仓库v0.5.6 分支 git clone sglang官方仓库 -b v0.5.6patches 目录下按 stage 分组对应不同特性更改对应关系如下Stage内容stage1基础功能适配和 MoE 多流优化stage2W8A8C8 动态量化stage3GDN 和 MTP 适配stage4CP 并行stage5rmsnormgated、GDN 大融合算子适配以及问题修复stage6CP support for GDN按顺序加载 patches 目录下的各 patch 组apply_patches.sh 脚本会依次执行git am加载 stage1~stage6 全部 patchcd sglang bash ../cann-recipes-infer/integration/sglang/qwen3-next/apply_patches.sh安装 sglangpip install -e python --no-deps --no-build-isolation5.6 编译安装 sgl-kernel-npu# 下载sgl-kernel-npu源码官方开源仓库2026.03.01 分支 git clone sgl-kernel-npu官方仓库 -b 2026.03.01在 sgl_kernel_npu 目录下加载sgl_kernel_npu_support_gdn_cp.patchgit apply ../cann-recipes-infer/integration/sglang/qwen3-next/patches/sgl_kernel_npu_support_gdn_cp.patch然后参考 sgl-kernel-npu 官方安装文档编译安装 sgl-kernel-npu。5.7 安装 Triton-Ascend 与其他依赖Triton-Ascend 是 CANN 生态对 Triton 的支持库安装最新版本pip install triton-ascend --force-reinstall安装其他依赖pip install torchvision0.21.0 pip install torchao0.9.05.8 编译安装自定义算子# 进入算子编译目录 cd ../cann-recipes-infer/integration/sglang/qwen3-next/ops/npu_ops_transformer_ext参考 npu_ops_transformer_ext 编译文档 编译安装自定义算子工程包含setup.py、CMakeLists.txt与requirements.txt。六、模型权重准备本样例使用的 Qwen3-Next 模型权重准备方法如下# 从魔搭社区下载Qwen3-Next完整BF16权重至指定目录例如 your_bf16_weights pip install modelscope modelscope download --model Qwen/Qwen3-Next-80B-A3B-Instruct --local_dir your_bf16_weights # 将BF16权重转换为W8A8权重可选 python python/sglang/srt/utils/convert_model_qwen3_next.py \ --input_bf16_hf_path your_bf16_weights \ --output_hf_path your_w8a8_weights # 将BF16权重转换为W8A8C8权重可选 # 下载quant_param到指定路径比如 your_param_path wget --no-check-certificate -P your_param_path cann-quantization/attn_c8_scale.zip 下载地址 # 解压quant_param到指定路径比如 your_param_path apt update apt install unzip unzip -o your_param_path/attn_c8_scale.zip -d your_param_path # 转换权重 python python/sglang/srt/utils/convert_model_qwen3_next.py \ --input_bf16_hf_path your_bf16_weights \ --output_hf_path your_w8a8c8_weights \ --c8 --quant_param_path your_param_path/attn_c8_scale七、推理执行7.1 前置环境配置修改 set_env.sh 中的推理执行相关配置修改点修改描述SOCKET_IFNAME各部署节点网卡MODEL_PATH模型权重存储路径PYTHONPATHPYTHONPATH 中增加打完 patch 后的 sglang 路径IP_NODE_P0Prefill 主节点 ipIP_NODE_D0Decode 主节点 ipset_env.sh中还包含一系列特性开关与调优项例如SGLANG_ENABLE_OVERLAP_PLAN_STREAM/SGLANG_ENABLE_SPEC_V2MTP 相关、ENABLE_ASCENDC_FUSION_GDNtrueGDN 融合算子、USE_CUSTOM_NORM_KERNELtruermsnormgated 融合算子、ENABLE_NPU_DEEPEP_MOE_MULTI_STREAM1MoE 多流、SGLANG_DEEPEP_BF16_DISPATCH1/DEEP_NORMAL_MODE_USE_INT8_QUANT1deepep 下 BF16/int8 权重分发、ASCEND_USE_C81C8 量化、PYTORCH_NPU_ALLOC_CONFexpandable_segments:True内存碎片优化等。7.2 PD 混部命令使用 infer.sh 启动 SGLang 服务PD 混部场景主要服务拉起参数说明如下配置项说明--tp 16TP 并行数若开启 DP实际 TP 并行数为此配置参数/DP 配置参数--enable-dp-attention --dp-size 8DP 并行数配置若需禁用 DP 请删除这两项配置--moe-a2a-backend deepep --deepep-mode auto启用 deepep若需禁用 deepep 请删除这两项配置--cuda-graph-bs 16计算图 batch size使用单算子模式请替换为--disable-cuda-graphinfer.sh中还包含--attention-backend ascend、--mamba-ssm-dtype bfloat16、--context-length 262144、--chunked-prefill-size 71680、--max-prefill-tokens 262144、--skip-server-warmup、--disable-radix-cache等参数可直接参考仓库脚本按需调整。7.3 PD 分离命令PD 分离部署需要分别启动 Prefill、Decode、Router 节点修改各个节点set_env.sh中的参数# 修改prefill节点和decode节点的主节点ip IP_NODE_P0x.x.x.x # 修改为prefill主节点ip IP_NODE_D0y.y.y.y # 修改为decode主节点ip # prefill节点和decode节点分别设置各自的nnodes和node_rank, 比如 2prefill 2decode # p0 export nnodes2 export node_rank0 # p1 export nnodes2 export node_rank1 # d0 export nnodes2 export node_rank0 # d1 export nnodes2 export node_rank1在 Prefill 节点运行 infer_prefill.sh包含--disaggregation-mode prefill --disaggregation-transfer-backend ascend --dist-init-addr ${p0}:10000等配置在 Decode 节点运行 infer_decode.sh包含--disaggregation-mode decode --dist-init-addr ${d0}:10000等配置在 Prefill 节点启动 Routersource set_env.sh python3 -m sglang_router.launch_router --decode http://${d0}:30001 --prefill http://${p0}:30001 --pd-disaggregation --mini-lb --host 0.0.0.0 --port 300027.4 新增特性使能特性使能方式说明ACLGraph服务拉起参数中配置--cuda-graph-bsMoE 多流set_env.sh中增加环境变量export ENABLE_NPU_DEEPEP_MOE_MULTI_STREAM1GDNGated Delta Net融合算子set_env.sh中增加环境变量export ENABLE_ASCENDC_FUSION_GDNtruermsnormgated 融合算子1.set_env.sh中增加环境变量export USE_CUSTOM_NORM_KERNELtrue2. 指定核心数默认 1建议默认export RMSNORMGATED_BLOCK_DIMS2MTP(多Token预测)1.set_env.sh中增加环境变量export SGLANG_ENABLE_OVERLAP_PLAN_STREAM1、export SGLANG_ENABLE_SPEC_V212. 增加服务拉起配置项--speculative-algorithm NEXTN --speculative-num-steps 1 --speculative-eagle-topk 1 --speculative-num-draft-tokens 23. 确保set_env.sh中使能 GDN 融合算子export ENABLE_ASCENDC_FUSION_GDNtrueA8W8 量化1.set_env.sh中将export SGLANG_DEEPEP_BF16_DISPATCH1替换为export DEEP_NORMAL_MODE_USE_INT8_QUANT12. 增加服务拉起配置项--quantization w8a8_int83.set_env.sh中配置 A8W8 权重路径A8W8C8 量化1.set_env.sh中将export SGLANG_DEEPEP_BF16_DISPATCH1替换为export DEEP_NORMAL_MODE_USE_INT8_QUANT12.set_env.sh中增加环境变量export ASCEND_USE_C813. 增加服务拉起配置项--quantization w8a8_int84.set_env.sh中配置 A8W8C8 权重路径序列并行1. 本样例支持 PD 分离场景下 Prefill 节点 Gated Attention 的 CP 和 TP 混合并行与 CP 负载均衡启用方式在infer_prefill.sh中将 DP 配置--enable-dp-attention --dp-size 8替换为--cp-size 82.set_env.sh中增加环境变量开启 CP 负载均衡export CP_USE_ZIGZAG1面向长序列单 batch 场景3. 在set_env.sh中增加环境变量使能 GatedDeltaNet attention 的 CP/TP 混合并行export ENABLE_CONTEXT_PARALLEL_GDN17.5 规格约束说明PD 分离场景 P 和 D 部署策略需相同SGLang 框架暂未支持 MHA 不同策略部署MTP 暂不支持和图模式同时开启MTP 暂不支持和 C8 同时开启暂不支持 PD 分离下开启 MTPCP 仅支持 PD 分离场景开启启用时 P 和 D 部署策略可不同P 可增加 cp_size 配置需满足 cp_size tp_size且 PD 卡数需相同SGLang 框架 kv 传输逻辑限制CP 不支持与 DP 同时开启CP 复用了 DP 通信域请确保 chunk prefill size ≤ 71680triton 算子的规格约束GDN 切分头数存在限制tp_size 需不大于 32当前框架存在精度问题当内部索引mamba_cache_indices0时会产生错误结果该索引会在 Mamba cache 容量范围内循环使用max-mamba-cache-size用于控制 Mamba cache 容量默认值较小通常为 2索引循环时频繁回到 0 会导致精度下降。将max-mamba-cache-size调大可设置为 512有效平衡精度与性能可显著降低该问题触发概率但会带来一定性能开销。八、测试与验证8.1 单请求精度验证普通长度序列可通过curl直接发送验证curl --location http://127.0.0.1:30002/generate -H Content-Type: application/json --data {text: [1 1 ?], sampling_params: { temperature: 0, max_new_tokens: 15}}若服务拉起配置了--skip-server-warmup请在验证精度前发送 dp_size 个请求保证每个 dp_rank 都预热到长序列可通过 send_long_text.py 构造发送脚本内置TXT_PATH待发送文本路径、MODEL_PATH、URL、PROMPT_LENGTH等配置项使用 tokenizer 将长文本截断到指定 token 长度后通过/generate接口发送。8.2 基于数据集的精度验证通过以下命令执行 few_shot_gsm8k 精度验证结果大于 0.9 即为精度正常cd python/sglang/test python3 few_shot_gsm8k.py --parallel 16 --num-questions 100 --num-shots 5 --port 30002 --temperature 08.3 指定 B/S 的随机请求验证通过 bench_serving.sh 指定 B/S 发送请求。脚本中可配置BatchSize、SeqLen、OutputLen、NumPrompts与DatasetJsonPath可先下载 ShareGPT_Vicuna_unfiltered 数据集并在脚本里指定 DatasetJsonPath 为对应 json 文件路径# 手动配置测试的B、S和输出长度 BatchSize16 SeqLen4096 OutputLen10 NumPrompts16 DatasetJsonPathShareGPT_V3_unfiltered_cleaned_split.json python3 -m sglang.bench_serving --base-url http://127.0.0.1:30002 \ --dataset-path $DatasetJsonPath \ --dataset-namerandom \ --random-range-ratio 1 \ --random-input $SeqLen \ --random-output $OutputLen \ --max-concurrency $BatchSize \ --num-prompts $NumPrompts8.4 Benchmark 数据基于 Atlas A3本实践使用下述部署方式使能优化点 ACLGraph、A8W8C8 量化、MoE 多流、GDN 融合算子对 Qwen3-Next 进行性能 Benchmark 测试基础模型机器型号graph_bsdp_sizetp_sizeep_sizemax_prompt_lengthnum_prompts纯模型decode时延msQwen3-Next-80B-A3B-Instruct-A8W8C8Atlas A3 16die168216256k1620.6九、性能采集Profiling9.1 加载 patch在 sglang 目录下加载 PROFILE.patchgit apply ../cann-recipes-infer/integration/sglang/qwen3-next/patches/PROFILE.patch9.2 profiler 配置通过设置环境变量PROFILER_MODE为[all, decode, prefill]中的指定值选择 profiler 范围以 decode 为例export PROFILER_MODEdecode配置SGLANG_TORCH_PROFILER_DIR指定 profiler 保存路径export SGLANG_TORCH_PROFILER_DIR/home/sglang/prof/修改python/sglang/srt/model_executor/model_runner.py中的 schedule 控制采集范围。torch_npu.profiler的接口与 torch 原生 profiler 类似默认配置下采集 step4~step14 的 profiling 数据。9.3 运行采集使用要采集的配置拉起服务若需精准控制采集的 step请确保配置了--skip-server-warmup参数跳过服务启动时的 warmup可使用上文指定 B/S 的随机请求验证发送指定请求若需精准控制采集的 step在使用 bench_serving 时添加--warmup-requests 0跳过 warmup 请求采集结束后profiling 数据保存在SGLANG_TORCH_PROFILER_DIR指定的目录下。9.4 查看 Trace 图可以通过ASCEND_PROFILER_OUTPUT目录下的trace_view.json文件查看算子运行的 trace 图。推荐使用昇腾官方可视化工具 MindStudio Insight 查看 trace 图。十、总结与展望本文完整介绍了 Qwen3-Next 混合注意力模型在 CANN 昇腾 NPU 上基于 SGLang 的推理优化样例通过 CPTP 混合并行与 ZigZag 负载均衡解决长序列 Prefill 的 OOM 与负载不均问题通过 AscendC/PyPTO 融合算子recurrent_gated_delta_rule、mambav2_rmsnormgated、ChunkGDN与 MTP1 投机推理提升 decode 阶段性能并通过 W8A8C8 量化在保持精度的同时降低端到端时延。设计文档还给出了后续优化方向conv1d_update融合算子的 AscendC 支持通过 PyPTO 实现更大范围的 MegaKernel完成多核 MPMD 并行调度以及在 256K~1M 超长序列 Prefill 场景下支持线性 Attention 层的序列并行以进一步降低 TTFT。相关工程文件patch、脚本、算子源码均位于 integration/sglang/qwen3-next读者可结合本文与仓库源码进一步深入实践。【免费下载链接】cann-recipes-infer本项目针对LLM与多模态模型推理业务中的典型模型、加速算法提供基于CANN平台的优化样例项目地址: https://gitcode.com/cann/cann-recipes-infer创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考