AtomGit 社区完成 GLM-5.3-Flash 昇腾 适配实践
GLM-5.3-Flash × 昇腾,已经可以上手了!
近日,AtomGit 社区完成 GLM-5.3-Flash 在昇腾 Atlas A2/A3 上的端到端适配实践 。这一次,我们不只是让模型“成功跑起来”,而是进一步打通了 W4A8/W8A8 量化权重、KDA 与 NoPE 稀疏 MLA 混合架构、MTP3、前缀缓存、图执行、多模态以及工具调用 等关键链路,并围绕长上下文、高并发与推理性能进行了完整验证。

对于开发者来说,更重要的是—— 模型和代码都已经准备好了 。目前,相关模型及代码已开放,欢迎开发者前往 AtomGit 社区下载体验、部署验证,也欢迎基于现有适配成果继续参与优化和共建。
GLM-5.3-Flash-W8A8 模型仓: https://ai.atomgit.com/atomgit-ascend/GLM-5.3-Flash-W8A8
vLLM-Ascend 代码仓: https://atomgit.com/atomgit-ascend/vllm-ascend
如果你手上正好有昇腾 Atlas A2/A3 环境,也可以直接基于模型和代码进行 部署实测 。
让 GLM-5.3-Flash 真正跑在国产算力上:从“能加载”到“可用、可测、可扩展”。
GLM-5.3-Flash 适配了哪些能力?
GLM-5.3-Flash 是 GLM-5 系列 首个原生多模态模型 ,总参数量 320B、激活参数量 18B,采用 KDA 线性注意力与 NoPE 稀疏 MLA 组成的 混合注意力架构 ,并引入 mHC、MoE 和 MTP,面向代码生成、长任务执行和多模态智能体等场景。
本次适配重点解决了几个问题:
-
KDA 的 chunk/recurrent 执行路径与 causal-conv 状态更新;
-
NoPE MLA 的 K-pool、Indexer Cache 与主 MLA KV Cache 管理;
-
MTP3 接受、拒绝及回滚后的 状态一致性;
-
W4A8/W8A8 量化及 MoE 并行;
-
前缀缓存、chunked prefill 与图执行;
-
多模态、reasoning 与 流式工具调用。
目标不只是让模型“成功加载”,而是进一步做到 可用、可测、可扩展 。
A3
A3 适配基于 16 张 NPU ,验证拓扑为: TP4 × DP4 × EP16 。核心启动方式如下:
export HCCL\_OP\_EXPANSION\_MODE=AIV
export HCCL\_BUFFSIZE=512
export OMP\_PROC\_BIND=false
export OMP\_NUM\_THREADS=1
export PYTORCH\_NPU\_ALLOC\_CONF=expandable\_segments:False
vllm serve /models/GLM-5.3-Flash-w8a8 \\
--host 0.0.0.0 \\
--port 18002 \\
--served-model-name glm53-w8a8 \\
--tensor-parallel-size 4 \\
--data-parallel-size 4 \\
--data-parallel-size-local 4 \\
--enable-expert-parallel \\
--max-model-len 204800 \\
--max-num-seqs 8 \\
--max-num-batched-tokens 4096 \\
--gpu-memory-utilization 0.84 \\
--enable-prefix-caching \\
--enable-chunked-prefill \\
--quantization ascend \\
--tool-call-parser glm47 \\
--reasoning-parser glm45 \\
--enable-auto-tool-choice \\
--enable-prompt-tokens-details \\
--enable-force-include-usage \\
--speculative-config '{"method":"mtp","num\_speculative\_tokens":3}' \\
--compilation-config '{"cudagraph\_mode":"FULL\_DECODE\_ONLY","max\_cudagraph\_capture\_size":32,"cudagraph\_capture\_sizes":\[4,8,12,16,20,24,28,32\]}' \\
--limit-mm-per-prompt '{"image":1,"video":0}'
其中,长上下文继续采用 动态 prefill ,稳定 decode batch 进入预捕获图,同时通过 DP 用户亲和路由尽可能保住 前缀缓存 。
需要注意的是,官方 A3 基线推荐 TP16 × DP1 ;TP4 × DP4 是本次针对共享前缀、多用户并发场景验证的工程拓扑。
A2
单台 8 卡 NPU A2 ,同时支持 MTP3、多模态和工具调用。核心启动方式如下:
export HCCL\_OP\_EXPANSION\_MODE=AIV
export HCCL\_BUFFSIZE=512
export OMP\_PROC\_BIND=false
export OMP\_NUM\_THREADS=1
export PYTORCH\_NPU\_ALLOC\_CONF=expandable\_segments:False
vllm serve /models/GLM-5.3-Flash-W4A8 \\
--host 0.0.0.0 \\
--port 18001 \\
--served-model-name glm53-w4a8 \\
--tensor-parallel-size 8 \\
--enable-expert-parallel \\
--max-model-len 262144 \\
--max-num-seqs 12 \\
--max-num-batched-tokens 4096 \\
--gpu-memory-utilization 0.95 \\
--num-gpu-blocks-override 640 \\
--enable-chunked-prefill \\
--quantization ascend \\
--tool-call-parser glm47 \\
--reasoning-parser glm45 \\
--enable-auto-tool-choice \\
--enable-prompt-tokens-details \\
--enable-force-include-usage \\
--speculative-config '{"method":"mtp","num\_speculative\_tokens":3}' \\
--compilation-config '{"mode":0,"cudagraph\_mode":"PIECEWISE","cudagraph\_capture\_sizes":\[1,4,8,12,16,24,32,48\]}' \\
--limit-mm-per-prompt '{"image":1,"video":0}'
适配过程中重点解决了 W4A8 权重与 MTP head 绑定 ,以及 MLA/Mamba 共享物理存储造成的 跨平面状态污染 。
A3 实测:100K 输入下表现如何?
在 100K 输入、约 95% 公共前缀、128 token 输出 场景下,本次项目实测结果如下:
| 并发 | TTFT | TPOT | 聚合输出吞吐 |
|---|---|---|---|
| 1 | 2.91 s | — | — |
| 8 | 最好 8.56 s;基线 11.51 s | 15.5 ms | 75.52 token/s |
| 16 | 平均 9.137 s | — | — |
| 24 | 平均 14.377 s | — | — |
| 30 | 平均 38.79 s | 62.9 ms | 78.49 token/s |
需要特别说明的是,以上均为本项目实测数据,并非芯片或模型厂商官方成绩。
缓存测试采用“只预热公共前缀、正式请求使用从未出现过的新尾部”的方式,避免将完整 Prompt 重复请求造成的 100% 命中误认为 95% 前缀缓存命中 。
欢迎体验与共建
目前,GLM-5.3-Flash 昇腾 A2/A3 适配相关 模型和代码已经开放 。
如果你手上有昇腾 Atlas A2/A3 环境,欢迎直接下载模型、 部署测试 ,也欢迎基于现有代码继续优化。
模型仓: https://ai.atomgit.com/atomgit-ascend/GLM-5.3-Flash-W8A8
代码仓: https://atomgit.com/atomgit-ascend/vllm-ascend
从模型加载,MTP、多模态、工具调用和推理性能优化,这次我们把已经验证过的工程实践开放出来,希望能让更多开发者 少踩一些坑 。
欢迎来 AtomGit 社区跑一跑,也欢迎提交 Issue、贡献代码,一起继续优化 GLM-5.3-Flash 在昇腾平台上的体验。
更多推荐


所有评论(0)