Releases: PTO-ISA/SuperNPUBench
Release list
SuperNPUBench ops-20261004
SuperNPUBench ops-20261004
打包政策:不设 gfrun 门禁——所有编译产出的 ELF 直接入包。本版为 10-04/10-05 全量刷新:新增 fa_lowp_algC_final(4 shape,X1Y1)×4、重编当日更新的 normalization 与 group_token_vec、重编 fixp 语料(#203 的 CUBE_N8 修复 b2e50a3 + b57d764,19 例 vector quant/PReLU 已按 PTO-CUBE-AUX-CELLREG-001 分类)、补接 reduction col/3dcol 4 个套件(此前漏在 compile_all.sh 外)、更新 SuperNPUBench HEAD 至 b57d764。
验证环境
| 组件 | 分支/版本 | Commit |
|---|---|---|
| PTO ISA 规范 / pto-spec | main(v0.58.6 + 已接受修正案) |
b541bbdd |
| llvm-project | dev-llvm15_56 |
1037cc1cd |
| Linx-TileOP-API | main |
3be8652 |
| linx-toolchain-build | main |
e6a31ef |
| SuperNPUBench | main |
5ee05ba7(含 10 个未提交本地改动,见下) |
- 编译器:clang 15.0.4,target
linx64v5-unknown-linux-musl - 远端并入(vs ops-20260922):#198 MoE 算子 tile-maximize + fourpe gfsim pass 修复(micro/fixp +9 ELF)、#191/#183 matmul_test、FA/Mmatmul 性能工作簿刷新等
- 本地未提交改动(参与编译):fa 系列(fa_fixpipe、fa_lowp_ltile、fa Makefile、fa 变体实验)、broadcast/gelu/reducemax_rowvec、matmul_test 指南、mxquant perf_compare、res_check_all
各算子编译状态(本版新增,必填清单)
microbenchmark(430 ELF)
| 算子 | 编译 ELF | 编译失败 | 状态 | 说明 |
|---|---|---|---|---|
| micro/scalar | 124 | 0 | 全部编译成功 | |
| micro/vector | 170 | 0 | 全部编译成功 | |
| micro/fixp | 102 | 0 | 全部编译成功 | 10-05 重编:含 #203 的 CUBE_N8 修复(b2e50a35 参数 tile + b57d764 bias tile),重建后 +7(95→102);19 例 vector quant/PReLU 已按 PTO-CUBE-AUX-CELLREG-001 分类。旧 ops-20260929 语料的 ROW_MAJOR 分类问题已消除 |
| micro/memory | 26 | 1 | 部分失败 | MGATHER_CAS 传输宽度(已有) |
| micro/cube | 8 | 3 | 部分失败 | Bias CUBE_M 布局(已有) |
one-level-arch / kernel(322 ELF)
| 算子 | 编译 ELF | 编译失败 | 状态 | 说明 |
|---|---|---|---|---|
| kernel/fa | 65 | 15 | 部分失败 | fa_gmma_kchains 3 / fa_fixpipe 9 / fa_2d_unroll_gmma 3;TileOP 契约断言。fa_lowp_algC_final ×4(Sq256/Skv256、Sq1024/Skv1024、Sq128/Skv8192、Sq256/Skv512-Tk256,全 X1Y1)编译 ✓;gfrun 4/4 挂 illegal TMATMULMX operand or descriptor contract(模型侧,跨 shape 一致,待修) |
| kernel/matmul | 250 | 26 | 部分失败 | 超限配置由内核 static_assert(A+B ≤ 256 KiB,matmul_shared.hpp:87)拒绝;含 reuseA |
| kernel/reduction | 8 | 0 | 全部编译成功 | +4:新接入 reducemax_col / reducemax_3dcol / reducesum_col / reducesum_3dcol(col/3dcol 变体此前未在 compile_all.sh 中,已补齐) |
| kernel/concat | 2 | 0 | 全部编译成功 | |
| kernel/{broadcast,conv2d,element_wise,gather,vec} | 5 | 0 | 全部编译成功 | |
| kernel/transpose | 0 | 1 | 未编译产出 | TTRANS 已退役(PTO-ISA 0.58.5) |
| kernel/{mxquant,hashtable_lookup,multi_thread,broadcast_vec} | 0 | — | 未编译 | 不在 compile_all 矩阵内 |
one-level-arch / solution(56 ELF)
| 算子 | 编译 ELF | 编译失败 | 状态 | 说明 |
|---|---|---|---|---|
| solution/normalization | 14 | 0 | 全部编译成功 | rms_norm 8 / split_r 2 / group_norm_grad 2 / group_norm_grad_1d 2 |
| solution/matmul_test | 9 | 0 | 全部编译成功 | |
| solution/quant_sparse_flash_mla | 5 | 0 | 全部编译成功 | |
| solution/group_token_vec | 3 | 0 | 全部编译成功 | 10-04 重编(当日源码更新) |
| solution/normalization | 14 | 0 | 全部编译成功 | 10-04 重编(当日源码更新) |
| solution/qli | 4 | 0 | 全部编译成功 | |
| solution/{moe_dispatch,moe_combine,mega_moe} | 9 | 0 | 全部编译成功 | |
| solution/{view_copy,group_token_vec} | 6 | 0 | 全部编译成功 | |
| solution/gather_v2 | 3 | 0 | 全部编译成功 | |
| solution/group_token_old | 2 | 0 | 全部编译成功 | |
| solution/conv2d | 2 | 0 | 全部编译成功 | |
| solution/quant_batch_matmul_test | 2 | 1 | 部分失败 | mxfp4 单 PE 变体(套件注释记录);mxfp4_mt/hif4 正常 |
| solution/quant | 0 | — | 未编译 | 已退役的 dynamic_mx_quant |
| solution/{common,tileop-test} | 0 | — | 未编译 | 基础设施(共享校验脚本 / TileOP 测试) |
发布物
| 文件 | 内容 | ELF 数 |
|---|---|---|
supernpubench_microbenchmark_20261004.tar.gz |
microbenchmark 全部编译 ELF + .elf.diss | 430 |
supernpubench_one-level_20261004.tar.gz |
one-level-arch 全部编译 ELF + .elf.diss(kernel 330 + solution 56) | 386 |
| 合计 | 816 |
包含全部编译产出(已知编译失败的算子见上表);每个 ELF 附带配对
.elf.diss。excluded file types:.o/.d/.lds/.cache/logs;cw 默认不编译不入包;two-level 不支持。
SuperNPUBench ops-20260929
SuperNPUBench ops-20260929
打包政策:不设 gfrun 门禁——所有编译产出的 ELF 直接入包。本版为拉取远端最新 main(含 #198 MoE tile-maximize + fourpe gfsim pass 修复)后的干净全量重编译。
验证环境
| 组件 | 分支/版本 | Commit |
|---|---|---|
| PTO ISA 规范 / pto-spec | main(v0.58.6 + 已接受修正案) |
b541bbdd |
| llvm-project | dev-llvm15_56 |
1037cc1cd |
| Linx-TileOP-API | main |
3be8652 |
| linx-toolchain-build | main |
e6a31ef |
| SuperNPUBench | main |
5ee05ba7(含 10 个未提交本地改动,见下) |
- 编译器:clang 15.0.4,target
linx64v5-unknown-linux-musl - 远端并入(vs ops-20260922):#198 MoE 算子 tile-maximize + fourpe gfsim pass 修复(micro/fixp +9 ELF)、#191/#183 matmul_test、FA/Mmatmul 性能工作簿刷新等
- 本地未提交改动(参与编译):fa 系列(fa_fixpipe、fa_lowp_ltile、fa Makefile、fa 变体实验)、broadcast/gelu/reducemax_rowvec、matmul_test 指南、mxquant perf_compare、res_check_all
各算子编译状态(本版新增,必填清单)
microbenchmark(423 ELF)
| 算子 | 编译 ELF | 编译失败 | 状态 | 说明 |
|---|---|---|---|---|
| micro/scalar | 124 | 0 | 全部编译成功 | |
| micro/vector | 170 | 0 | 全部编译成功 | |
| micro/fixp | 95 | 0 | 全部编译成功 | 远端 fourpe 修复后 +9(此前 86) |
| micro/memory | 26 | 1 | 部分失败 | MGATHER_CAS 传输宽度(已有) |
| micro/cube | 8 | 3 | 部分失败 | Bias CUBE_M 布局(已有) |
one-level-arch / kernel(322 ELF)
| 算子 | 编译 ELF | 编译失败 | 状态 | 说明 |
|---|---|---|---|---|
| kernel/fa | 61 | 15 | 部分失败 | fa_gmma_kchains 3 / fa_fixpipe 9 / fa_2d_unroll_gmma 3;TileOP 契约断言(HIF4/MXFP4/FP8_VECBF16 模式 + lowp 变体实验) |
| kernel/matmul | 250 | 26 | 部分失败 | 超限配置由内核 static_assert(A+B ≤ 256 KiB,matmul_shared.hpp:87)拒绝;含 reuseA |
| kernel/reduction | 4 | 0 | 全部编译成功 | |
| kernel/concat | 2 | 0 | 全部编译成功 | |
| kernel/{broadcast,conv2d,element_wise,gather,vec} | 5 | 0 | 全部编译成功 | |
| kernel/transpose | 0 | 1 | 未编译产出 | TTRANS 已退役(PTO-ISA 0.58.5) |
| kernel/{mxquant,hashtable_lookup,multi_thread,broadcast_vec} | 0 | — | 未编译 | 不在 compile_all 矩阵内 |
one-level-arch / solution(56 ELF)
| 算子 | 编译 ELF | 编译失败 | 状态 | 说明 |
|---|---|---|---|---|
| solution/normalization | 14 | 0 | 全部编译成功 | rms_norm 8 / split_r 2 / group_norm_grad 2 / group_norm_grad_1d 2 |
| solution/matmul_test | 9 | 0 | 全部编译成功 | |
| solution/quant_sparse_flash_mla | 5 | 0 | 全部编译成功 | |
| solution/qli | 4 | 0 | 全部编译成功 | |
| solution/{moe_dispatch,moe_combine,mega_moe} | 9 | 0 | 全部编译成功 | |
| solution/{view_copy,group_token_vec} | 6 | 0 | 全部编译成功 | |
| solution/gather_v2 | 3 | 0 | 全部编译成功 | |
| solution/group_token_old | 2 | 0 | 全部编译成功 | |
| solution/conv2d | 2 | 0 | 全部编译成功 | |
| solution/quant_batch_matmul_test | 2 | 1 | 部分失败 | mxfp4 单 PE 变体(套件注释记录);mxfp4_mt/hif4 正常 |
| solution/quant | 0 | — | 未编译 | 已退役的 dynamic_mx_quant |
| solution/{common,tileop-test} | 0 | — | 未编译 | 基础设施(共享校验脚本 / TileOP 测试) |
发布物
| 文件 | 内容 | ELF 数 |
|---|---|---|
supernpubench_microbenchmark_20260929.tar.gz |
microbenchmark 全部编译 ELF + .elf.diss | 423 |
supernpubench_one-level_20260929.tar.gz |
one-level-arch 全部编译 ELF + .elf.diss(kernel 322 + solution 56) | 378 |
| 合计 | 801 |
包含全部编译产出(已知编译失败的算子见上表);每个 ELF 附带配对
.elf.diss。excluded file types:.o/.d/.lds/.cache/logs;cw 默认不编译不入包;two-level 不支持。
SuperNPUBench ops-20260922
SuperNPUBench ops-20260922
打包政策:不设 gfrun 门禁——所有编译产出的 ELF 直接入包。本版为拉取远端最新 main 后的干净全量重编译(含 matmul S1-S6 性能矩阵),已移除构建后被删除算子(fa_subview)的 ELF,并按 issue #192 仅排除两个具体测例(fa 2d_unroll / kchains 的 Sq256/Skv512/Tk256 FP32 死锁变体),不设容量门禁;09-23 增补 4 个 solution 套件:quant_sparse_flash_mla(QSMLA,5 模式 HIF8 自足用例)、matmul_test(动态 shape fp16 GEMM,单 PE ×7 + 4-PE mt ×2)、quant_batch_matmul_test(mxfp4_mt + hif4)、qli(MSD radix-select TopK ×4 变体)——全部 gfrun 抽检 PASS。
验证环境
| 组件 | 分支/版本 | Commit |
|---|---|---|
| PTO ISA 规范 / pto-spec | main(v0.58.6 + 已接受修正案) |
b541bbdd |
| llvm-project | dev-llvm15_56 |
1037cc1cd |
| Linx-TileOP-API | main |
3be8652 |
| linx-toolchain-build | main |
e6a31ef |
| SuperNPUBench | main |
e74884e1(构建基线;后续 9fd23139/6c97c170 等重构已提交,见下) |
- 编译器:clang 15.0.4,target
linx64v5-unknown-linux-musl - 构建基线含本地 matmul 收敛与 S1-S6 矩阵改动(现已提交为
9fd23139matmul 精简、6c97c170fa 模式扩展等) - 本版移除的已删除算子:fa_subview ×15(kernel + 测试已在
6c97c170删除);fa_2d_unroll_gmma_subview、matmul_kchains/mx/quantize/blockM 系在构建前已删除(本来就不在包内) - fa 套件已迁移 Cube* 模式命名:CubeFP32/CubeBF16/CubeFP8/CubeHIF8/CubeMXFP8_VectorFP32 + CubeMXFP4_VectorBF16;经典模式名不再产出
matmul S1-S6 性能矩阵(本版新增,来自 matmul_shared_S1_S6_pmu_optimized_20260922.xlsx)
| Shape | M×N×K | 网格 |
|---|---|---|
| S1 | 2048×256×2048 | shared FP32/BF16/FP16 × tN{64,128,256} × tK{64,128,256};lowp FP8/MXFP8/MXFP4 × tK{256,512,1024} |
| S2 | 128×256×7168 | 同上 |
| S3 | 256×128×7168 | tN{64,128} × tK{64,128,256,512}(lowp tK{256,512,1024}) |
| S4 | 64×128×7168 | 同 S3 |
| S5 | 64×64×7168 | tN{64} × tK{64,128,256,512}(lowp 同) |
| S6 | 128×256×32768 | tN{64,128,256} × tK{64,128,256}(lowp tK{256,512,1024}) |
容量预检(SharedTile >256KiB 跳过):BUILT=238,SKIPPED_CAPACITY=26(与表格 264 行完全一致)。
已知编译失败(未产出 ELF,不在包内)
| 类别 | 原因 |
|---|---|
| fa 经典模式名(8 模式循环) | 内核已迁移 Cube* 模式体系 |
| fa_gmma_dynamic | 编译器 Simple Register Coalescing 崩溃(未入矩阵) |
| fa_gmma_opt | 不在当前 compile.all 矩阵 |
| micro/fixp MX 家族 ×10 | TileOP MX scale tile 契约 |
| micro 既有 ×4 | Bias CUBE_M ×3、MGATHER_CAS ×1 |
发布物
| 文件 | 内容 | ELF 数 |
|---|---|---|
supernpubench_microbenchmark_20260922.tar.gz |
microbenchmark 全部编译 ELF + .elf.diss | 414 |
supernpubench_one-level_20260922.tar.gz |
one-level-arch 全部编译 ELF + .elf.diss(kernel 324 + solution 65) | 389 |
| 合计 | 803 |
包含全部编译产出(fa_subview 已删算子的 ELF 已移除;超容量测例见下)。每个 ELF 附带配对
.elf.diss。主要构成:matmul 252(S1-S6 表 238 + 基础/新测例 reuseA)、fa 64(含 fixpipe Tk256 FP32 回归)、normalization 14、MoE 套件各 3、quant_sparse_flash_mla 5(swa/hca/csa/ori_sparse/ori_cmp_sparse tadd_4pe,HIF8 嵌入式输入,gfrun 5/5 PASS)、matmul_test 9(对齐 + 尾部 + 非 2 幂 shape 单 PE ×7、4-PE mt ×2,gfrun 9/9 PASS)、quant_batch_matmul_test 2(mxfp4_mt + hif4;mxfp4 单 PE 变体因 TileOP MX ScaleA CUBE_M32 断言编译失败,套件注释已记录)、qli 4(FP8 radix-select TopK:Sq64/Skv128、Sq4/Skv2048、Sq4/Skv8192、tail Skv2080,gfrun 4/4 PASS;golden 生成依赖 python ml_dtypes 包)。
仍排除的 solution 目录(有意)
| 目录 | 原因 |
|---|---|
common |
共享校验脚本(check_gfrun.py 等),非算子 |
tileop-test |
TileOP 测试基础设施 |
quant |
已退役的 dynamic_mx_quant(09-15 移除,无 compile.all) |
issue #192 排除项(本版生效,无容量门禁)
按 review 意见撤掉全部 footprint 门禁,只排除 issue #192 报告的两个死锁变体:
| 被排除测例 | 2Q+K+V | 说明 |
|---|---|---|
fa_2d_unroll_gmma Sq256/Skv512/Tm128/Tk256 FP32 |
384KiB | issue 复现 ELF 之一 |
fa_gmma_kchains Sq256/Skv512/Tm128/Tk256 FP32 |
384KiB | issue 复现 ELF 之一 |
其余全部保留:fa 的 FP32 Tk128(2Q+K+V 恰 256KiB)、BF16/FP8/HIF8/MXFP8/MXFP4 全 shape、fixpipe Tk256 FP32;matmul 无任何门禁(S1-S6 全表 264 配置全部尝试,238 个编译成功;26 个超限配置由 matmul_shared.hpp 内核自带 static_assert(A+B ≤ 256KiB) 在编译期拒绝,属内核契约而非打包过滤)。fa 64 ELF、matmul 252 ELF。
SuperNPUBench ops-20260918
SuperNPUBench ops-20260918
打包政策(本版起):不设 gfrun 门禁——所有编译产出的 ELF 直接入包,发布前不跑 gfrun。功能性验证由回归流程(README 基线记录)单独负责。
验证环境
| 组件 | 分支/版本 | Commit |
|---|---|---|
| PTO ISA 规范 / pto-spec | main(v0.58.6 + 已接受修正案) |
b541bbdd |
| llvm-project | dev-llvm15_56 |
1037cc1cd |
| Linx-TileOP-API | main |
3be8652 |
| linx-toolchain-build | main |
e6a31ef |
| SuperNPUBench | main |
6525161d(含未提交本地改动,见下) |
- 编译器:clang 15.0.4,target
linx64v5-unknown-linux-musl - SuperNPUBench 本地未提交改动(参与本批编译):
fa_gmma_dynamic.hpp、fa_gmma_kchains.hpp、fa_lowp.hpp、matmul_quantize.hpp、matmul_shared.hpp修改;matmul_kchains.hpp、matmul_mx.hpp、matmul_shared_blockM.hpp删除(WIP) - 打包时输出树:fa 89 ELF(含 fa_lowp CubeMXFP4 128×8192、fa_lowp_recip X1_Y1 变体)、matmul 32(含新增 shared M2048 bf16)
回归状态(参考,不作为打包门禁)
同树早期状态(09-19,566 ELF)的 gfrun 全量回归:494 PASS / 72 FAIL,87.3%(gfrun fix/gfrun-717-pto291-subview-ordering ec5ee047)——fa_2d_unroll_gmma 15/15、fa_gmma_kchains 36/42、fa_gmma_opt 1/1、fa_lowp_recip 1/2、matmul 30/31。其后新增的构建(fa_lowp CubeMXFP4、lowp_recip X1_Y1 变体、matmul shared M2048)未经 gfrun 复测。详见 README 09-18 基线。
已知编译失败(未产出 ELF,不在包内)
| 类别 | 数量 | 原因 |
|---|---|---|
| fa HIF4 / MXFP4 / FP8_VECBF16 模式(unroll/fixpipe/subview) | — | TileOP 契约(fp4 shared pair、bf16 向量 TROWEXPAND 等) |
| fa_subview Tk=256 | — | LinxV5 后端 64KB 帧上限(RegSize 断言崩溃) |
| fa_gmma_dynamic | — | 编译器 Simple Register Coalescing 崩溃 |
| matmul_quantize ASM0/ASM1 | 2 | mxquant 重构类型改名,集成修复 WIP |
| micro/fixp MX 家族 | 10 | TileOP 3be8652 MX scale tile 契约加严 |
| micro 既有 | 4 | Bias CUBE_M 布局 ×3、MGATHER_CAS 传输宽度 ×1 |
发布物
| 文件 | 内容 | ELF 数 |
|---|---|---|
supernpubench_microbenchmark_20260918.tar.gz |
microbenchmark 全部编译 ELF + .elf.diss | 414 |
supernpubench_one-level_20260918.tar.gz |
one-level-arch 全部编译 ELF + .elf.diss(kernel 132 + solution 24) | 156 |
| 合计 | 570 |
包含全部编译产出(含已知 gfrun FAIL 的 ELF);每个 ELF 附带配对的
.elf.diss。不包含.o/.d/.lds/日志等中间产物。
Reproducer for SuperScalarModel #711
RMS Norm R-tree 4PE reproducer for SuperScalarModel issue #711. Source commit: d32897c. SHA256: 4c66f302db6a69794bd37e20bb73434dda87e7dafd54a0babba73c34fe3eaf16
SuperNPUBench ops-20260916
SuperNPUBench ops-20260916
验证环境
| 组件 | 分支/版本 | Commit |
|---|---|---|
| PTO ISA 规范 / pto-spec | main(v0.58.6 + 已接受修正案) |
86f46079 |
| gfrun / SuperScalarModel-asl | feat/gfrun-pto-311-cube-reduction-geometry |
b00ed95c |
| llvm-project | dev-llvm15_56 |
1037cc1cd |
| Linx-TileOP-API | fix/issue-138-reduction-prefix-subview |
697f5d8 |
| linx-toolchain-build | main |
e6a31ef |
| SuperNPUBench | main |
0e88bc0 |
- ISA 规范:pto-spec
main86f46079(specification.tomlarchitecture_version = 0.58.6,v0.58.6.0 发布点后 27 个已接受修正提交,含 PTO #311 CUBE reduction geometry——gfrun 分支与 TileOP zero-copy prefix views 的规范依据) - 编译器:clang 15.0.4(hash
1037cc1cd31c80e5493ffd7851f7b35a2f8dd79c),targetlinx64v5-unknown-linux-musl - gfrun:
b00ed95c(较 09-15 新增 model Local B.ASSEMBLE parent references,HIF4/HIF8 解锁) - fa_2d_unroll_gmma:TREDUCEPREFIXVIEW 零拷贝行归约 + Shared-B TransB 存储契约修正(
7a73268) - 执行参数:
gfrun -t 1 -f <elf>,kernel 算子加-s softcore.multiThreadNum=4,420s 超时,2GB 输出截断 - PASS 判据:
Reach the End of Benchmark+R2 = 0(tail-based 检测,最后 64KB) - HIF4/HIF8 首次纳入(18 ELF);单线程套件已随 single_thread 退役(重构
79e492a)
回归结果
| 范围 | ELF 数 | PASS | FAIL | 通过率 |
|---|---|---|---|---|
| microbenchmark | 424 | 394 | 30 | 92.9% |
| one-level-arch (kernel) | 132 | 74 | 58 | 56.1% |
| solution | 24 | 15 | 9 | 62.5% |
| 合计 | 580 | 483 | 97 | 83.3% |
关键变更(vs ops-20260915)
- fa Shared-B TransB 存储契约修正(
7a73268):TransB=0 声明物理 [N,K]。K 以自然 [Skv,qD]=[N,K] 加载,QK 不再设置 transpose_b;fa_gmma_kchains PV 改 TransB=0。fa_2d_unroll_gmma 30/30 PASS(含 HIF8 ×6)、fa_gmma_kchains 2/2 PASS,零回归。 - HIF4/HIF8 首次纳入(gfrun
b00ed95cB.ASSEMBLE 支持):18 ELF 中 7 PASS(fa_2d_unroll_gmma HIF8 ×6、matmul_lowp_HIF4X2 ×1)、11 FAIL(fa_fixpipe HIF8 ×6 PTO #311、fa_subview HIF8 ×5 TROWMAX,与非 HIF 失败原因一致)。 - 单线程套件退役(
79e492a):−31 ELF(−23 PASS / −8 FAIL),基线口径切换为纯 multi-thread kernel + solution。 - 新回归:matmul_quantize_FP8_ASM1 被 gfrun 新增 B.ASSEMBLE descriptor 检查拦截(
illegal B.ASSEMBLE generation or descriptor contract,09-15 为 PASS)。 - concat_scatter 420s 内直接 PASS(上轮 300s 超时误判需人工修正)。
- 可比集合(micro + 非 HIF multi-thread + solution)与 09-15 完全一致:micro 30 FAIL 集合逐名一致。
发布物
| 文件 | 内容 | PASS ELF 数 |
|---|---|---|
supernpubench_microbenchmark_20260916.tar.gz |
microbenchmark PASS ELFs + .elf.diss | 394 |
supernpubench_one-level_20260916.tar.gz |
one-level-arch PASS ELFs + .elf.diss | 89 |
| 合计 | 483 |
仅包含 gfrun PASS 的 ELF(FAIL/TIMEOUT 不打包)。目录结构为 flatten 后的新布局:
one-level-arch/kernel/<op>/elf/(ELF 名kernel_<op>_*)。
SuperNPUBench ops-20260915
SuperNPUBench ops-20260915
验证环境
| 组件 | 分支/版本 | Commit |
|---|---|---|
| gfrun / SuperScalarModel-asl | feat/gfrun-pto-311-cube-reduction-geometry |
10dd099f |
| llvm-project | dev-llvm15_56 |
1037cc1cd |
| Linx-TileOP-API | fix/issue-138-reduction-prefix-subview |
697f5d8 |
| linx-toolchain-build | main |
e6a31ef |
| SuperNPUBench | main |
4b6ae0a |
- 编译器:clang 15.0.4(hash
1037cc1cd31c80e5493ffd7851f7b35a2f8dd79c),targetlinx64v5-unknown-linux-musl,PTO v0.58.6 - gfrun:
feat/gfrun-pto-311-cube-reduction-geometry10dd099f(PTO #311 CUBE reduction geometry 适配 + binary reduction-prefix subview 修复) - fa_2d_unroll_gmma 使用 TREDUCEPREFIXVIEW 零拷贝行归约 prefix view 替代 TCVT tile 拷贝
- 执行参数:
gfrun -t 1 -f <elf>,multi_thread 加-s softcore.multiThreadNum=4,300s 超时,2GB 输出截断 - PASS 判据:
Reach the End of Benchmark+R2 = 0(tail-based 检测,最后 64KB) - 排除 HIF4/HIF8(需 assemble 功能,18 ELF 不在此范围)
回归结果
| 范围 | ELF 数 | PASS | FAIL | 通过率 |
|---|---|---|---|---|
| microbenchmark | 424 | 394 | 30 | 92.9% |
| one-level-arch (kernel) | 145 | 91 | 54 | 62.8% |
| solution | 24 | 15 | 9 | 62.5% |
| 合计 | 593 | 500 | 93 | 84.3% |
关键变更(vs 09-14)
- fa_2d_unroll_gmma TREDUCEPREFIXVIEW:从 TCVT tile 拷贝改为零拷贝行归约 prefix view(PTO #311 / issue-138)。统一 TMAX(消除 j==0 特殊分支),TFMA 替换为 TMUL+TADD。24/24 PASS。
- fa_gmma_kchains:新增 GMMA k-chain FA 变体(PV chain K=32),2 ELF 全 PASS。
- gfrun
10dd099f:在17e77939基础上修复 binary reduction-prefix subview,使 TREDUCEPREFIXVIEW 在 gfrun 中通过。 - gfrun PTO #311 CUBE reduction geometry:validCol TSTORE 断言 28→1 FAIL;reduction validCol/TROWSUM 4→0 FAIL。
- 新增 FAIL:fa_fixpipe 24 FAIL(PTO #311 destinationShape 断言)、fa_subview 20 FAIL(TROWMAX operand 断言)。
- normalization ×8:rms_norm、group_norm_grad,全 PASS。
- dynamic_mx_quant 移除(−14 ELF)。
- fixp 改善:16→12 FAIL。
发布物
| 文件 | 内容 | PASS ELF 数 |
|---|---|---|
supernpubench_microbenchmark_20260915.tar.gz |
microbenchmark PASS ELFs + .elf.diss | 394 |
supernpubench_one-level_20260915.tar.gz |
one-level-arch PASS ELFs + .elf.diss | 106 |
| 合计 | 500 |
仅包含 gfrun PASS 的 ELF(FAIL/TIMEOUT 不打包)。
SuperNPUBench ops-20260914
SuperNPUBench ops-20260914
Summary
- 579 compiled ELFs, 486 PASS, 93 FAIL, 0 TIMEOUT (83.9% pass rate)
- Excludes HIF4/HIF8 ELFs (require assemble functionality)
- gfrun (asl):
fix/gfrun-shared-tmatmul-layout-257ad972d21 - PTO ISA v0.58.6, clang 15.0.4 (linx64v5-musl)
Environment
| Component | Branch | Commit |
|---|---|---|
| gfrun / SuperScalarModel-asl | fix/gfrun-shared-tmatmul-layout-257 |
ad972d21 |
| llvm-project | dev-llvm15_56 |
4a3e0bdb5 |
| Linx-TileOP-API | linx |
987d034 |
| linx-toolchain-build | main |
e6a31ef |
| SuperNPUBench | main |
085b3bc |
Key Changes (09-11 → 09-14)
gfrun branch switch
codex/gfrun-pto-0586-asle7d883c9→fix/gfrun-shared-tmatmul-layout-257ad972d21- Shared TMATMUL layout adaptation
- Caused solution gather_v2 ×3 + view_copy ×3 regression (R2=1, result mismatch)
TileOP-API stricter matrix shape validation
e93ef98→987d034: newAValidCols==BValidRows, D valid shape, MX ScaleB shape assertions- Broke 19 single-thread ELF compilations (09-11 all PASS): fa_2d_unroll ×8, sfa ×2, matmul MASK_FP16 ×3, MASK_FP8 ×3, A16W4 ×3
- Only MASK_FP32 ×3 + fa_softmax_pto ×2 survive
New operators
fa_gmma_kchains(+2 PASS): GMMA k-chain FA variant (QK_CHAIN_K=32)matmul_blockM(+13 PASS): shared blockM matmul, FP32/BF16/FP8/MXFP4matmul_kchains(+1 PASS): k-chain matmulmatmul_lowp_blockM(+5 PASS): low-precision blockM, FP8/MXFP4dynamic_mx_quant(+14, 2 PASS / 12 FAIL): dynamic MX quantization
Output cap 500MB → 2GB
- A16W4 matmul, concat_scatter, group_token_old_mt no longer need individual verification
- 6 operators still exceed 2GB (topk, group_token_old, group_token_vec, matmul_test ×2, mega_moe_sim)
compile.all fix
- Single-thread matmul/fa
compile.all:set -euo pipefail→set -u - HIF4 compilation failure no longer blocks subsequent A16W4/MASK variants
Per-suite results
| Suite | ELF | PASS | FAIL | Rate |
|---|---|---|---|---|
| microbenchmark | 439 | 405 | 34 | 92.3% |
| one-level (kernel) | 108 | 72 | 36 | 66.7% |
| solution | 32 | 9 | 23 | 28.1% |
| Total | 579 | 486 | 93 | 83.9% |
FAIL root causes (93)
| Root cause | Count | Category |
|---|---|---|
| validCol TSTORE assertion (fa 2048B) | 28 | multi_thread/fa |
| MX scale dataType assertion | 16 | micro/fixp |
| dynamic_mx_quant priorSources | 12 | solution/quant |
| R2=1 result mismatch (regression) | 6 | solution/gather_v2 + view_copy |
| Output >2GB | 6 | solution + sort |
| vector TSTORE dtype/descriptor | 13 | micro/vector |
| vector compare/select TEPL | 4 | micro/vector |
| control MGATHER operand | 6 | one-level/control |
| reduction validCol/TROWSUM | 2 | one-level/reduction |
| broadcast COPY | 1 | one-level/broadcast |
| reserved/deleted tile selector | 1 | micro/vector |
Tarballs
supernpubench_microbenchmark_20260914.tar.gz— 405 PASS ELFs (903K)supernpubench_one-level_20260914.tar.gz— 81 PASS ELFs (1.6M)
PTO ISA operators binaries (per-suite, gfrun-pass) 20260911
基于 main,HEAD 1d9f1f8。按 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 功能,15 ELF)。编译器更新后全量重编译 584 个 ELF,fixp +2 PASS(编译器修复)。A16W4 matmul ×3 全部独立验证 PASS。新增 solution matmul_test ×3。
环境版本
| 组件 | 分支/版本 | Commit |
|---|---|---|
| SuperNPUBench | main |
1d9f1f8 |
| gfrun / SuperScalarModel-asl | codex/gfrun-pto-0586-asl |
e7d883c9 |
| llvm-project | dev-llvm15_56 |
0a141cbd2 |
| Linx-TileOP-API | linx |
e93ef98 |
| linx-toolchain-build | main |
e6a31ef |
编译器按 AGENTS.md 用主 linx-toolchain-build worktree(clang 15.0.4,clang hash 0a141cbd22ab3e1fd3ec2043b091f96b9377605f,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 超时 + 500MB 输出截断。大输出算子(cube/scalar/topk/concat/A16W4 matmul/group_token_old_mt)逐一独立验证(无输出截断,600s–3600s 超时)。PASS = rc 0 + Reach the End of Benchmark + R2 = 0。
| 范围 | ELF 数 | PASS | FAIL | TIMEOUT | 通过率 |
|---|---|---|---|---|---|
| microbenchmark | 439 | 403 | 36 | 0 | 91.8% |
| one-level-arch | 112 | 73 | 39 | 0 | 65.2% |
| solution | 18 | 11 | 7 | 0 | 61.1% |
| 合计 | 569 | 487 | 82 | 0 | 85.6% |
关键变更(vs ops-20260910)
git log --oneline ops-20260910..HEAD:1d9f1f8 Add FA GMMA TLSU L2 performance traces + 03b0bf8 Add FA and matmul performance spreadsheets。
- 编译器更新:llvm-project
553b08045→0a141cbd2(B.DATR CCTRL union disambiguation, PTO-ISA #236);Linx-TileOP-APIb8669ce→e93ef98(reinterpret_tile 文档 + 回归 fixture)。clang hash0a141cbd22ab3e1fd3ec2043b091f96b9377605f。 - 全量重编译:584 个 ELF 全部用新编译器重新编译(439 micro + 127 kernel + 18 solution)。
- fixp +2 PASS:MX scale dataType 断言 FAIL 从 18→16(编译器修复 2 个 fixp 算子)。
- 新增 solution matmul_test ×3:
B1_M200_N96_K128_tM16_tN16_tK16、B1_M256_N256_K256_tM16_tN16_tK16、B1_M512_N256_K512_tM32_tN32_tK32。3 个均 gfrun 输出 >500MB(疑似大输出或死循环)。 - dynamic_mx_quant 未编译:09-10 为 FAIL(ASSERTION FAILED validCol),09-11 编译失败(compile FAIL),排除出包。
- A16W4 matmul ×3 全部 PASS:500MB 输出截断导致初始 FAIL/TIMEOUT。独立验证全部 PASS(输出 1.07–1.36GB,同 09-10)。
- group_token_old_mt 验证 PASS:500MB 输出截断导致初始 FAIL。独立验证 PASS(662MB 输出,23s 完成)。
文件一:supernpubench_microbenchmark_20260911.tar.gz
| 算子族 | ELF | PASS | FAIL | 入包 |
|---|---|---|---|---|
| scalar | 124 | 124 | 0 | 124 |
| memory | 27 | 27 | 0 | 27 |
| cube | 11 | 11 | 0 | 11 |
| fixp | 107 | 91 | 16 | 91 |
| vector | 170 | 150 | 20 | 150 |
| 合计 | 439 | 403 | 36 | 403 |
FAIL 原因:fixp 16 例 MX scale dataType 断言(09-10 起 18→16,编译器修复 2 个);vector 20 例 compare/select TSTORE 断言(asl gfrun 行为差异,与 09-10 相同)。
文件二:supernpubench_one-level_20260911.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 |
| 其他(全过) | 10 | 10 | 0 | 10 |
| solution | 18 | 11 | 7 | 11 |
| 合计 | 130 | 84 | 46 | 84 |
FAIL 原因:multi_thread/fa 24 例 validCol != 0 TSTORE 断言(asl gfrun 强制 2048B 行归约 source 限制,fa_2d_unroll_gmma + fa_fixpipe,main gfrun 全 PASS);control 6 例 MGATHER operand 非法(历史);reduction/broadcast/transpose 9 例 asl gfrun 行为差异(reserved/deleted tile selector、validCol 断言、TROWSUM operand);solution 7 例输出 >500MB(matmul_test ×3 疑似大输出/死循环,mega_moe ×2/group_token_old/group_token_vec 疑似死循环)。
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 |
已知限制
- TROWMAX 2048B:PTO v0.58.6 行归约要求 source tile ≤2048 bytes;asl gfrun 强制此限制导致 mt-fa 24 FAIL(main gfrun 不强制)。
- HIF4/HIF8:需 assemble 功能,本次排除 15 个 ELF。
- MX scale tensor:fixp 16 个 MX 类型 matmul 因 gfrun 不支持 scale tensor 断言 FAIL。
- solution 死循环:group_token_old(单线程)、group_token_vec、mega_moe ×2 输出 >500MB 疑似无限循环;matmul_test ×3 新增算子同现象。
PTO ISA operators binaries (per-suite, gfrun-pass) 20260910
基于 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 限制。