Skip to content

task: run and validate the NPU optimization workflow #337

Open

Description

@Bounty-hunter

Current state: NPU Workbench 软件控制试点已跑通:独立检查、真实 profile、六类错误控制、A/A、参考 AB/BA、最终 validation 和身份重验全部完成;范围接受仍待记录。
Decision needed: 由 @Dong1017 记录对本轮 NPU 子集及交付标准的接受;真实 Agent/skill 收益与正式 NPU 隔离另行验收。
Next action: 复审公开样本、保留决定与 P2 修复;后续推进明确的下一项 NPU 任务或独立隔离设计。

接入验证:让 RSI 能按实际结果决定保留什么

本轮运行链:执行前冻结 → NPU baseline 检查/profile → 既有 fused reference → 错误控制 → 同码 A/A → Workbench AB/BA → 最终检查和保留决定。主 Agent 组织了预定参考控制演练,工具给出独立结果;未新增跨轮次自动搜索或强制 Agent 行为的控制器。

NPU 流程与接口 · 实测解释与决定 · 800 样本、错误控制与身份 · 四项总览。

当前交付快照 a91b913e7a71ba2d8460ea3b8f2b8964de7dafe1;真实 NPU 与软件 CI 被测源码 6308268fc6d1fbf90e9ab97b5da8af79152f39ea。后续为文档/证据整理,运行代码没有改变。Parent #252,Draft PR #338。

本子项流程 · 执行前计划。

验证 本轮实际结果
正确性 baseline / fused 各 375 项断言通过
profiling 每个选定输入由 6 个计算 kernel 变为 1 个 RmsNorm;真实设备 trace 与独立计时分开
错误控制 六类被拒绝;额外预检后重放也被拒绝,无 metric
A/A 4 对 AB/BA,两个 shape 中位数差均小于 0.4%;原始 Workbench FAIL 是未达到收益门槛,最终正确性通过
参考比较 4 对 AB/BA,同步 eager 调用延迟分别降低 34.802% / 30.603%;原始 Workbench PASS
证据完整性 800 样本全保留,actual environment 与冻结 identity 全程一致,两个 final validation 都通过
运行收尾 主资格和额外重放控制退出 0,单卡预约结束并释放

本轮决定是在该设备/runtime/float32/workload 范围内保留融合参考实现。没有统计显著性、跨机、模型/服务或技能收益外推。torch_npu.npu_rms_norm 来自已有实现,不是本轮新发明的 kernel。

同一 source CI:Python 3.10 / 3.11 各 3649 passed、20 skipped、284 subtests passed;安装包检查通过。正式 CPU artifact controls 54 passed / 0 skipped,含新增真实 cwd-shadow 拒绝控制;托管环境没有 NPU,不能用它代替远端设备证据。

  • NPU 真实检查/profile/比较、错误与 no-op 控制、结果与保留决定。
  • canonical-resource P2 的代码修复和 Linux 回归;原 reviewer 复审未完成。
  • 正式 SkillEval NPU 产物隔离;已有 CPU sandbox 明确拒绝 NPU。
  • 真实受控 Agent 两臂、skill/search 收益、provider generation、skill_eval_improve。
  • 更多任务形式、设备/模型/服务验收和维护者范围接受。

题库外用户目标仍可走已有通用 Workbench,题库不是白名单。通用 validation 的后验顺序、本任务的预检与逐次输出校验分别保留;没有把 plan 预览说成全局 campaign 冻结。

维护者范围接受与项目验收仍待记录;实施与发布来自用户明确委托。Accountable implementer: @Bounty-hunter;acting contributor: Codex;parent scope / acceptance owner: @Dong1017。Issue 保持 open,PR 保持 Draft;不声明 merge、项目关闭或服务 campaign PASS。原生子项关系此前受权限限制,继续通过父索引和引用跟踪。

Earlier CPU evidence

The previous CPU delivery and evidence remain preserved at their original revisions. They are historical/software controls, not this NPU pilot's qualification. Current scope and review-fix status are stated above.

Activity

  1. added
    area:workbenchCLI workbench: profile, A/B loop, quality gates, evidence reports
    kind:taskBounded delivery task with a delegated slice
    on Nov 3, 2026
  2. Bounty-hunter commented on Nov 3, 2026

    @Bounty-hunter
    Author

    补充验证预登记:共享任务能否支持实际工程判断

    关联 #252、#337、PR #338。现有交付已验证接口和两个消费者的运行通路;本次进一步检查一项现实错误与一个固定优化假设,公开保留原版对原版的对照。

    固定输入与条件

    • Runtime implementation: d0ce9d785e1bead9124eed1cf3f6e9f2e0cf05db;不修改运行时、oracle 或任务定义。
    • Task: rmsnorm-cpu,六个现有公开 CPU float32 工作负载、axis=1、原有容差和 epsilon。
    • 三个审核过的本地实现:逐字复制 baseline 的 unchanged;省略 epsilon 的错误实现;使用 axis-1 einsum 平方和避免显式 x*x 中间数组、保留 epsilon 的候选。
    • 额外普通输入冒烟:seed 2026、shape (4,17,9,7)、float32 正态分布乘以 4;使用相同独立 oracle/容差。不按测试结果更换输入。
    • unchanged 和 einsum 各运行 6 个 AB/BA 配对组,每个 comparison 最长 2 分钟,描述性 min_improvement_pct=0;沿用每 case 2 warmups、5 samples。两次比较串行执行,不并行运行本地测试。
    • baseline 与 einsum 独立 CPU profiling;三个实现经过实际 SkillEval retained-artifact verifier。错误实现请求 measure,验证其不能贡献性能指标。
    • 计划摘要与脚本摘要在执行前冻结,见下方附录。输出目录为一次性,不根据结果重复或选择胜出的记录。

    功能通过条件和不满足时的处理

    正确实现通过两条路径;错误实现被完整任务和 SkillEval 拒绝且没有可用性能指标;任务/grader/runtime 与实际输入一致;两次比较完整保留所有逐 case 样本与源码检查;profile 无性能 verdict。任何不满足项保留失败并修正实现或明确限制,不能用改阈值让它通过。

    普通输入冒烟是否漏检、优化候选是否更快均是待观测结果,不是功能通过条件。原版对原版如获得描述性 PASS,原样记录并解释为本次噪声/协议分辨能力的限制。不会从一次 PASS 推导实际收益。

    已有 cProfile 的总时长约毫秒量级;能观察调用路径,不能确认内存带宽/分配瓶颈。einsum 是源码检查提出的待检验假设。宿主机不是专用性能隔离环境。本补证不建立统计显著性、服务/GPU/NPU 收益或 agent/skill/search 收益,不改变 #252 范围或关闭状态。

    执行前冻结附录

    • plan SHA-256: 05fdde5a55f7420569fa85168c39b7873e6a4ed207d05940de5622ab9933b51e
    • probe SHA-256: 317285d0534f9935d06e1fc488ef35c56a76ab7cba2c2423e5a73ba09799ebc7
    • replay helper SHA-256: 6d7670a62203676de519e893ca5abfaa1d1de6fca94b2b9e136c30382f8959cd
    • 独立动作超时 25 秒;复用 helper 的 client/trial 上限为 20/40 秒。
    • 独立静态检查后增加了比较结束的质量验证门槛;早期 prepare 只生成计划,没有执行 payload。以下为实际执行版本。
    {
      "unchanged": {
        "task_id": "rmsnorm-cpu",
        "task_sha256": "903359c46cbbd4059325c2807532449d12beb3eec9931471c84510ba035b1677",
        "grader_sha256": "e12a40fd37d402668a48f5adacbada6ce864e6aadfa882862f35f767e838b4b0",
        "candidate_sha256": "c7bc1a3f3ec2e2396a0b2788d1f7b21c059341a7853effaf6f7131c81da292aa",
        "runtime_sha256": "2141480b7ee5ecc2ccc6bd0032db5c6cd6816403a8f2e790abb187e41b1ab844"
      },
      "einsum": {
        "task_id": "rmsnorm-cpu",
        "task_sha256": "903359c46cbbd4059325c2807532449d12beb3eec9931471c84510ba035b1677",
        "grader_sha256": "e12a40fd37d402668a48f5adacbada6ce864e6aadfa882862f35f767e838b4b0",
        "candidate_sha256": "8f29ea405865f4493775ca809e37c0dd7f054dbb2b203e6290975b2e9e41b471",
        "runtime_sha256": "2141480b7ee5ecc2ccc6bd0032db5c6cd6816403a8f2e790abb187e41b1ab844"
      },
      "no-eps": {
        "task_id": "rmsnorm-cpu",
        "task_sha256": "903359c46cbbd4059325c2807532449d12beb3eec9931471c84510ba035b1677",
        "grader_sha256": "e12a40fd37d402668a48f5adacbada6ce864e6aadfa882862f35f767e838b4b0",
        "candidate_sha256": "9b78a97381b4e5775af022934ea504f6eb6269915adcfb5ffc580fc68693f046",
        "runtime_sha256": "2141480b7ee5ecc2ccc6bd0032db5c6cd6816403a8f2e790abb187e41b1ab844"
      }
    }
  3. Bounty-hunter commented on Nov 3, 2026

    @Bounty-hunter
    Author

    补充对照已按上方预登记执行一次,结果随 PR #338 的提交 c06b72555d4643df133c59fe7cead5a91e7b86f5 保留。

    • 功能用途得到实证: 省略 epsilon 的 RMSNorm 通过预定普通输入冒烟,但被完整共享任务和实际 SkillEval verifier 一致拒绝,六项断言失败,测量没有可用指标。
    • 两个正确实现通过: 原版及 einsum 候选均通过两条路径,两个 Workbench 比较结束的质量检查也通过。任务/grader/runtime 与实际输入一致,八项功能检查全部通过。
    • 可靠性能排序尚未通过: 两个比较均原样保留 FAIL;原版对原版的报告 improvement 为 -50.52%,einsum 为 -76.95%。相同源码已有很大计时差异,不能把这些数值解释为稳定的优化或退化。保留原版,不采用 einsum,不重跑挑选结果。
    • 全部 720 个计时样本和两份 CPU profile 已公开;profile 支持调用路径检查,未确认内存瓶颈。完整本地命令和日志仍保留。

    对照方案、结果和复现命令 · 原始汇总及全部样本

    Issue 正文已保留计时稳定性未完成项。运行时、oracle 和任务定义未修改;不宣称 agent/skill/search 收益或 GPU/NPU/服务收益。原始数据一致性已独立核对,本地 Ruff 与 diff 检查通过;新提交 CI 单独记录。

  4. changed the title [-]task: validate shared engineering tasks through Workbench and offline SkillEval[/-] [+]task: connect shared tasks to RSI and verify their use[/+] on Nov 3, 2026
  5. changed the title [-]task: connect shared tasks to RSI and verify their use[/-] [+]task: integrate shared tasks into RSI and validate the optimization flow[/+] on Nov 4, 2026
  6. Bounty-hunter commented on Nov 4, 2026

    @Bounty-hunter
    Author

    NPU 试点:执行前固定的验证计划

    用户已明确将当前试点改为 NPU 跑通。本轮从 rmsnorm-npu affine RMSNorm 开始,替代“CPU 试点优先”的实施顺序;已有 CPU 结果只作为历史软件控制。四子项仍按选题、契约、题包、接入分工,PR #338 保持 Draft。

    待测源码:6308268fc6d1fbf90e9ab97b5da8af79152f39ea。任务与实现见 rmsnorm-npu,流程与边界。P2 canonical-loader 修复已在 00c41b24 纳入,等待新提交的 Linux 控制及复审;不改写原 reviewer 的 CHANGES_REQUESTED。

    已确认与待执行

    已在有效单卡预约下完成 API 探测:Ascend 910B1、Python 3.12.13、torch 2.10.0+cpu、torch_npu 2.10.0.post4;融合输出设备为 NPU,float32 数值探测正确,已有真实 RmsNorm device trace。最后调用探测脚本中不存在的 key_averages 方法导致该次脚本退出 1,故不能将它记为完整试点通过;正式 adapter 直接解析真实 hardware trace,不使用该方法。更早的容器用户名初始化失败同样保留,不计入性能数据。

    下面才是完整资格实验,当前尚未执行,结果另行追加。

    冻结范围和门槛

    • 单张预约 NPU,二维 contiguous float32,compute(x, weight, *, eps);非全 1 权重和独立 scalar double/math.fsum oracle。
    • manifest 固定 5 个基础 case;decode [1,4096]、prefill [64,4096] 为计时 workload,另有 zeros/large/tiny 正确性边界。每计时 case 10 次预热、25 次变化输入采样;输入、权重、oracle 和拷贝在计时外。
    • 主指标为设备同步的 eager 完成调用延迟,包含 Python dispatch 与完成同步;不是纯 kernel 时间。profiling 单独运行,必须存在真实 Ascend Hardware kernel 事件,不计为速度分数。
    • baseline 和既有 fused reference 均需所有数值、shape/dtype/device、输入与权重保持检查通过。zeros、漏 epsilon、漏 weight、错误轴、原地改输入 shape、旧输出 replay 六个错误控制必须失败且没有可用性能 metric。
    • Workbench A/A(同码/no-op)和 baseline→fused 各 4 对 AB/BA。各 workload 的 A/A 两臂中位数差绝对值须 ≤10%,且不能越过同一 10% 收益门槛;最终 correctness validation 必须通过。
    • fused reference 只有在两个 workload 分别达到 ≥10% 的中位数改善、Workbench 对应比较通过、上述全部正确性/无收益控制通过时才记为本轮软件资格通过;否则记 INCONCLUSIVE 并保留所有数据,不删除慢样本或事后放宽门槛。
    • 所有 action、trial 与 final validation 的实际环境、源码/task/grader/runtime identity 必须一致并匹配执行前 freeze。运行时限 20 分钟、排队上限 5 分钟;单动作 timeout 180 秒,每个 Workbench 比较预算 8 分钟。

    复现入口(应由已有资源调度器包裹,路径使用本地环境值):

    python -m tools.npu_benchmark_validate \
      --repo <checkout> --output-dir <new-evidence-dir> \
      --repetitions 4 --min-improvement-pct 10 --max-aa-difference-pct 10 \
      --max-minutes 8 --timeout-seconds 180

    冻结计划、裁判、源码、逐次样本、profile、Workbench report 和错误控制均保留。该实验是预先选定的作者控制;不声称 Agent 自主发现新 kernel、真实 skill 收益或服务端到端收益。正式 SkillEval NPU 产物隔离仍未建立,CPU sandbox 不替代它。维护者范围接受与项目验收另行记录。

  7. changed the title [-]task: integrate shared tasks into RSI and validate the optimization flow[/-] [+]task: run and validate the NPU optimization workflow[/+] on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:workbenchCLI workbench: profile, A/B loop, quality gates, evidence reportskind:taskBounded delivery task with a delegated slice

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions