Skip to content

Releases: chiro2001/deepseek-v4.1-flash-ascend910B

A3 单实例 TP8 形态 · 镜像层 patch 包 v1(main@e5a38ed)

Choose a tag to compare

@chiro2001 chiro2001 released this 05 Oct 04:30

A3 单实例 TP8 形态 · 镜像层 patch 包 v1(main@e5a38ed)

面向:在一台 A3(8 个 device = 4 块卡)上跑 DeepSeek-V4.1-Flash W4A8 的单实例 TP8 形态
(不拆 P/D)。与已有的 a3-ced-pd-*(8+8 PD 分离 + CED)是两个不同的交付面。

这个包做什么

官方基础镜像 quay.nju.edu.cn/ascend/vllm-ascend:deepseek-v4.1-flash-a3(18 层)
+ 我们的 1 层工作层(约 1.2 MiB 压缩)= 与我们在 A3 上实测逐字节相同的形态:

内容 说明
patches/files/*.py(20 个挂载源) engram / rope / 块表 / attention / MoE dispatch / admission gate 等补丁件
scripts/ serve_a3.sh / serve_a2.sh / serve_v2.sh / run_test.sh / build_image.sh
gmm1 自定义内核(2 个文件,115 KB) GroupedMatmulSwigluQuantV2 的 armF 重编内核(.o md5 01f600d2…),已烘进镜像层,部署时不需要任何 V41_HC_OPP_PKG 环境变量

相对上一版交付的变化(本轮及前几轮)

# 变化 效果(实测)
1 engram wkv 按输出维分片 + all_gather(ENGRAM_WKV_TP,默认 1) −0.57 ms/步(2.2%) 且 KV 容量 +5.9%(2,821,337→2,987,727)
2 engram padded 只清要读的行(ENGRAM_PAD_SKIP,默认 1) ZerosLike 8192×6144 1.86→0 次/步(≈−58 µs/步)
3 gmm1 armF 内核进仓库 + 进镜像层 算子 −7.56 µs/次 ⇒ 端到端 −0.67~−1.09 ms/步
4 6N 捕获桶 / DRAFT_GRAPH=1 / ENGRAM_DEVICE_INDEX=1 / gate 多-prefill 前几轮已进默认

验证(全部在发布镜像上、不传任何 OPP 变量)

项 结果
起服 ✅ health=200、/v1/models 200
144K 验收 ✅ 11/11 通过,失败 0(四针 A/B/C/D、流式、多轮 3 轮、prefix 2 次)
单流 decode 113.4 → 116.4 tok/s;ms/step 25.28 → 24.84
多流 decode N=4 249.5 / N=8 362.7 / N=16 536.9 tok/s(ms/step 全部下降)
prefill(冷前缀) 7,135 / 7,389 / 7,498 tok/s(N=1/2/4;必须预热后再测,见 docs)
KV 容量 2,987,727 tokens(GPU_UTIL=0.92);DCP8 形态 18,285,996
地火口径(1024/256) 单流 96.3 → 117.1 tok/s;N=4 +28.4%、N=8 +28.4%(对比历史基线)
镜像自检 89 个 payload 文件逐字节一致;内核级反例对照 base 2e4a834a → new 01f600d2

怎么用

# 1) 解包
tar -I zstd -xf dsv41-a3-tp8-imagekit-v1.tar.zst
cd dsv41-kit-v3            # 内含 README.md / MANIFEST.json / images/ / tools/
# 2) 按 README 把工作层应用到官方基础镜像(无需 skopeo、无需联网)
# 3) 起服(默认已含本包的全部优化)
DEVS="0 1 2 3 4 5 6 7" bash scripts/serve_a3.sh

校验

sha256  d674adfe568f63d021a0d76f7b9ffdac6766e76639d6d712446314ab98453f30

相关文档

docs/R6-SUMMARY-20261005.md(总账)· docs/ENGRAM-WKV-TP-20261005.md(本轮最大收益)·
docs/BOTTLENECK-DECOMP-20261005.md(decode 步三段式分解)· docs/PREFILL-PROFILE-20261005.md(prefill 画像)·
docs/BAT-TOKENS-TRADEOFF-20261005.md(容量/正确性权衡)· kernels/gmm1_armF/README.md(自定义内核)

A3 单机 8+8 PD 分离 + CED 形态 · 镜像层 patch 包 v3(main@7497a06)

Choose a tag to compare

@chiro2001 chiro2001 released this 26 Sep 19:06

A3 单机 8+8 PD 分离 + CED 形态 · 镜像层 patch 包 v3(main@7497a06)

v3 把 A3 PD 分离的交付默认值固定下来,并让两种交付面(clone 仓库 / 用本镜像包)拿到同一套默认。

相对 v2 的变化

# 变化 为什么
1 D 侧 DSpark 默认开(SPEC=1 DRAFT_GRAPH=1) 2026-09-27 已验证;关掉用 V41_CED_ALLOW_DSPARK=0(退回 SPEC=0)
2 前缀缓存默认开(两侧 PREFIX=1) 144K/1M 常规·整池·交错命中全部正确、冷热逐字节一致(≈16–18×);关掉用 PREFIX=0
3 D 默认走图模式(+ V41_CED_GRAPH_PROMPT_TAIL_EAGER=1) 原先裸跑 decode 会被图模式门拒掉;CED_DIAGNOSTIC_EAGER=1 仍是显式 eager 诊断臂
4 STATIC_KERNEL 按角色取默认 D=1 / P=0 与验证配置逐项一致,避免"脚本默认 ≠ 交付默认"
5 引擎侧 model.py 的同门默认一起改成 1 两处必须一起改,否则默认启动会在模型构造期被拒

v2 已具备 decode 半边请求边界护栏(修"直连 decode 的普通请求打死整个 D 实例")。
v1 没有护栏。请用 v3。

验证

项 结果
一致性校验 31/31 逐文件一致(source=payload)
重建验收 18 层 diffID 一致、305,791 条文件系统条目逐条相同(diff 0 字节)、92 个 payload sha256 一致(diff 0 字节)
冒烟 L1/L2 补丁 md5 92/92、py_compile 13/13、import vllm 0.27.1 OK
包内默认值抽查 SPEC=${SPEC:-1} DRAFT_GRAPH=${DRAFT_GRAPH:-1}、PREFIX=${PREFIX:-1}、STATIC_KERNEL D=1/P=0、model.py 门默认 "1"、护栏在位
镜像内 repo_rev 7497a06+0dirty(与本 Release 基线一致)

以默认值真机启动的端到端自测(只传部署必需项,功能开关一个不传):

用例 结果
144K 冷·热·热 ✅ 6/6 正确,冷 17.35 / 11.29 s → 热 1.15–1.22 s
经代理纯文本 ✅ 8*9 → 72,finish_reason=stop
流式 ✅ 5 帧 + [DONE],内容正确
并发 4 路 ✅ 4/4 正确,0.52–4.71 s
Responses API(2 图) ✅ 200 completed,分别认出两张图
代理探活 ✅ 200 / {"status":"ok","prefill_instances":1,"decode_instances":1}
直连 D 的事故形状请求 ✅ 400,紧接着 /health 仍 200
接受长度 / 缓存命中 A=3.33 / 2.43;P 侧 local_cache_hit=576,000
两侧错误计数 AssertionError / EngineDeadError / RuntimeError 全 0

资源

  • dsv41-a3-ced-pd-imagekit-v3.tar.zst(3.8 MB)
    sha256 = fb4f4a1b9e39e2d0128a5c90e27a119354155f9be36c43bdd0531a1253da5fb7
  • dsv41-a3-ced-pd-imagekit-v3.tar.zst.sha256

解包后 cd dsv41-a3-ced-pd-imagekit-v3 && bash images/dsv41-a3-ced-pd/rebuild.sh
即可在只有官方基底镜像的机器上重建(不需要 skopeo / 联网 / NPU)。

两条边界(如实标注)

  1. raw 脚本的 MAX_LEN 默认仍是 147456(144K),1M 只在 deploy/ 形态(launch/_common.sh)是默认。用本包的 launch/ 起就是 1M。
  2. 用 PREFIX=1 的 21 项完整验收矩阵尚未重跑(KIT-README 的 21/21 是 PREFIX=0 口径跑的)。本次覆盖的是:144K/1M 探针、流式、并发 4 路、两图、用户链路。

细节见包内 README.md;源码侧见 main@7497a06:

  • docs/CED-PD-CACHE-HIT-PLAN-20260925.md §11–§14 —— 缓存/DSpark 转正与默认值验证
  • docs/CED-DECODE-API-GUARD-20260927.md —— decode 请求边界护栏

A3 单机 8+8 PD 分离 + CED 形态 · 镜像层 patch 包 v2(main@2d5ff15)

Choose a tag to compare

@chiro2001 chiro2001 released this 26 Sep 16:53

⚠️ 已被 v3 取代,请用 v3。

本包(main@2d5ff15)已带 decode 半边请求边界护栏,但 DSpark 与前缀缓存仍需
显式打开
(V41_CED_ALLOW_DSPARK=1 / V41_CED_ALLOW_PREFIX=1)。

v3 把这两项(以及 D 侧图模式、按角色划分的 STATIC_KERNEL)固定成交付默认,
并让"clone 仓库"与"用镜像包"两种交付面拿到同一套默认。功能差异见 v3 的 Release notes。

A3 单机 8+8 PD 分离 + CED 形态 · 镜像层 patch 包 v1(main@dafea50)

Choose a tag to compare

@chiro2001 chiro2001 released this 26 Sep 09:47

⚠️ 已被 v2 取代,请用 v2。

本包(main@dafea50)不含 decode 半边请求边界护栏。少这条护栏时,
一条直连 decode 半边的普通请求会让 D 自己去 prefill,撞上 CED 固定
128-token replay 守卫,worker 里 raise ⇒ EngineCore 退出 ⇒ 整个 D 实例死掉、
要重载 ~20 分钟权重
(2026-09-27 00:01 实测事故)。

v2 另外把多图上限从 1 提到 4(P/D 同值),并补上护栏的逐文件一致性校验。
详见 docs/CED-DECODE-API-GUARD-20260927.md。