基于 main,HEAD 2c107e9。按 suite 拆 2 小包,仅含 gfrun-PASS ELF + .elf.diss。本轮 gfrun 用 SuperScalarModel-asl worktree(codex/gfrun-pto-0586-asl e7d883c9,PTO v0.58.6)。排除 matmul/fa HIF4/HIF8(需 assemble 功能)。本轮新增 solution 树 16 个算子(11 PASS / 5 FAIL)。
环境版本
| 组件 |
分支/版本 |
Commit |
| SuperNPUBench |
main |
2c107e9 |
| gfrun / SuperScalarModel-asl |
codex/gfrun-pto-0586-asl |
e7d883c9 |
| llvm-project |
dev-llvm15_56 |
553b08045 |
| Linx-TileOP-API |
linx |
b8669ce |
编译器按 AGENTS.md 用主 linx-toolchain-build worktree(clang 15.0.4,target linx64v5-unknown-linux-musl,PTO v0.58.6)。gfrun 用 asl worktree(PTO v0.58.6 tile contracts + CUBE reduction subview 修复)。执行:gfrun -t 1 -f <elf>,multi_thread 加 -s softcore.multiThreadNum=4,单 ELF 300s 超时。PASS = rc 0 + Reach the End of Benchmark + R2 = 0。
| 范围 |
ELF 数 |
PASS |
FAIL |
TIMEOUT |
通过率 |
| microbenchmark |
439 |
401 |
38 |
0 |
91.3% |
| one-level-arch |
111 |
72 |
39 |
0 |
64.9% |
| solution |
16 |
11 |
5 |
0 |
68.8% |
| 合计 |
566 |
484 |
82 |
0 |
85.5% |
关键变更(vs ops-20260908)
git log --oneline ops-20260908..HEAD:2c107e9 fa: add fa_2d_unroll_gmma_subview, fix TMATMUL_ACC kGroupM, refresh 09-10 regression + 5905c42 Merge PR #122 (quant batch matmul mxfp4/hif4) + 1c110c0 update fa subview + a689b36 DTS matmul_hif4/mxfp4 description + e68a730 eval long-context FA k-chain swimlane + 68cd40c microbench align coverage PTO 0.58.6
- gfrun 切换 asl worktree:
fix/issue-558-fp4-rne-zero(07e9c661) → codex/gfrun-pto-0586-asl(e7d883c9),PTO v0.58.5→v0.58.6。强制 2048B 行归约 source 限制 → fa_2d_unroll_gmma/fa_fixpipe 24 FAIL(main gfrun 不强制);vector compare/select +20 FAIL;reduction/broadcast/transpose +7 FAIL。
- multi_thread/fa 编译扩展:compile.all 移除
set -e → 5→36 ELF。fa_subview 12/12 PASS;fa_2d_unroll_gmma + fa_fixpipe 24 FAIL(2048B 行归约限制)。
- fa_2d_unroll_gmma_subview 新算子:融合 fa_2d_unroll_gmma v2 + fa_subview TPARTVIEW 分块行归约。gfrun PASS,gfsim 不支持 B.SUBVIEW 无法获取时序数据。
- TMATMUL_ACC kGroupM 修复:fa_2d_unroll_gmma.hpp/fa_fixpipe.hpp 补回 kGroupM 参数(协作 TMATMUL 断言修复)。
- fa_subview transpose 修正:tileKMatrix/gIterK/qkOptions/pvOptions 对齐本地版本。
- HIF4/HIF8 排除:用户指定排除 matmul/fa HIF4/HIF8 变体(需 assemble 功能)。消除 09-08 的 5 个 HIF4 FAIL。
- gfsim 时序数据:fa_2d_unroll_gmma Sq128/Skv8192 — FP32_VECFP32 138,431 cycles,BF16_VECFP32 78,706 cycles。
- solution 树新增:16 个 solution 算子用 asl gfrun 验证,11 PASS 入包。含 gather_v2 ×3、group_token_old_mt、moe_combine ×2、moe_dispatch ×2、view_copy ×3。
文件一:supernpubench_microbenchmark_20260910.tar.gz
| 算子族 |
ELF |
PASS |
FAIL |
入包 |
| scalar |
124 |
124 |
0 |
124 |
| memory |
27 |
27 |
0 |
27 |
| cube |
11 |
11 |
0 |
11 |
| fixp |
107 |
89 |
18 |
89 |
| vector |
170 |
150 |
20 |
150 |
| 合计 |
439 |
401 |
38 |
401 |
FAIL 原因:fixp 18 例 MX scale dataType 断言(HIF4,09-08 起不变);vector 20 例 compare/select TSTORE 断言(asl gfrun 行为差异)。
文件二:supernpubench_one-level_20260910.tar.gz
| 算子族 |
ELF |
PASS |
FAIL |
入包 |
| fa |
12 |
12 |
0 |
12 |
| matmul |
12 |
12 |
0 |
12 |
| multi_thread/fa |
36 |
12 |
24 |
12 |
| multi_thread/matmul |
10 |
10 |
0 |
10 |
| multi_thread/(其他) |
8 |
6 |
2 |
6 |
| broadcast |
6 |
3 |
3 |
3 |
| concat |
4 |
4 |
0 |
4 |
| control |
6 |
0 |
6 |
0 |
| reduction |
6 |
3 |
3 |
3 |
| flashMLA |
2 |
2 |
0 |
2 |
| 其他(全过) |
9 |
9 |
0 |
9 |
| solution |
16 |
11 |
5 |
11 |
| 合计 |
127 |
83 |
44 |
83 |
FAIL 原因:multi_thread/fa 24 例 validCol != 0 TSTORE 断言(asl gfrun 强制 2048B 行归约 source 限制,fa_2d_unroll_gmma + fa_fixpipe,main gfrun 全 PASS);control 6 例 INT8/16 dtype 元组未定义(历史);reduction/broadcast/transpose 9 例 asl gfrun 行为差异;solution 4 例 gfrun 超时(group_token_old、group_token_vec、mega_moe ×2,疑似无限循环)、1 例 ASSERTION FAILED validCol(dynamic_mx_quant 2048B 限制)。
solution 树入包算子(11 PASS)
| 算子 |
ELF 名 |
multi_thread |
| gather_v2 |
gather_v2_half_RANK2_DIM0 |
|
| gather_v2 |
gather_v2_float_RANK1_DIM0 |
|
| gather_v2 |
gather_v2_int32_RANK2_DIM1 |
|
| group_token_old |
group_token_old_mt |
✓ |
| moe_combine |
moe_combine_mt |
✓ |
| moe_combine |
moe_combine_v2 |
|
| moe_dispatch |
moe_dispatch_mt |
✓ |
| moe_dispatch |
moe_dispatch_v2 |
|
| view_copy |
view_copy_half_SHAPE4_4_6 |
|
| view_copy |
view_copy_half_SHAPE4_4_8 |
|
| view_copy |
view_copy_int32_SHAPE2_4_8 |
|
solution 树未入包(5 FAIL)
| 算子 |
原因 |
| group_token_old (single) |
gfrun 超时(无限循环,1.1 GB 输出) |
| group_token_vec |
gfrun 超时(无限循环,1.1 GB 输出) |
| mega_moe_sim BS16_H32_HD64 |
gfrun 超时(无限循环,1.1 GB 输出) |
| mega_moe_sim_mt BS16_H32_HD64 |
gfrun 超时(无限循环,876 MB 输出) |
| dynamic_mx_quant tail_ocp_fp8 |
ASSERTION FAILED: validCol != 0(2048B ISA 限制) |
说明
- gfrun 用 SuperScalarModel-asl worktree(非 main gfrun),PTO v0.58.6。asl gfrun 强制 PTO v0.58 行归约 source ≤2048 字节限制,fa_2d_unroll_gmma/fa_fixpipe 未做 TPARTVIEW 分块的变体全部 FAIL。main gfrun 不强制此限制,这些变体在 09-08 基线下全 PASS。
- tarballs 仅含 gfrun-PASS ELF + .elf.diss。FAIL/TIMEOUT ELF 不入包。
- 排除 matmul/fa HIF4/HIF8 变体(需 assemble 功能)。
- 5 例 tail 截断假 FAIL(matmul A16W4 ×3 + concat half ×2)已手工复跑修正为 PASS,入包。
- fa_2d_unroll_gmma_subview 新算子 gfrun PASS 但 gfsim 不支持 B.SUBVIEW 指令,无法获取时序数据。
- solution 树 4 例 gfrun 超时疑似算子内部无限循环(非 gfrun 限制),1 例 ASSERTION FAILED 同 2048B ISA 限制。