Skip to content

Releases: PTO-ISA/SuperNPUBench

SuperNPUBench ops-20261004

Choose a tag to compare

@lvhao7896 lvhao7896 released this 04 Oct 20:33

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

Choose a tag to compare

@lvhao7896 lvhao7896 released this 29 Sep 15:17
5ee05ba

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

Choose a tag to compare

@lvhao7896 lvhao7896 released this 22 Sep 04:38

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 矩阵改动(现已提交为 9fd23139 matmul 精简、6c97c170 fa 模式扩展等)
  • 本版移除的已删除算子: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

Choose a tag to compare

@lvhao7896 lvhao7896 released this 18 Sep 08:20

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

Choose a tag to compare

@wangyuascend-spec wangyuascend-spec released this 17 Sep 03:30
26331c5

RMS Norm R-tree 4PE reproducer for SuperScalarModel issue #711. Source commit: d32897c. SHA256: 4c66f302db6a69794bd37e20bb73434dda87e7dafd54a0babba73c34fe3eaf16

SuperNPUBench ops-20260916

Choose a tag to compare

@lvhao7896 lvhao7896 released this 16 Sep 08:32

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 main 86f46079(specification.toml architecture_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),target linx64v5-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 b00ed95c B.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

Choose a tag to compare

@lvhao7896 lvhao7896 released this 15 Sep 16:28

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),target linx64v5-unknown-linux-musl,PTO v0.58.6
  • gfrun:feat/gfrun-pto-311-cube-reduction-geometry 10dd099f(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

Choose a tag to compare

@lvhao7896 lvhao7896 released this 14 Sep 12:56

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-257 ad972d21
  • 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-asl e7d883c9 → fix/gfrun-shared-tmatmul-layout-257 ad972d21
  • 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: new AValidCols==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/MXFP4
  • matmul_kchains (+1 PASS): k-chain matmul
  • matmul_lowp_blockM (+5 PASS): low-precision blockM, FP8/MXFP4
  • dynamic_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

Choose a tag to compare

@lvhao7896 lvhao7896 released this 11 Sep 08:11

基于 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-API b8669ce → e93ef98(reinterpret_tile 文档 + 回归 fixture)。clang hash 0a141cbd22ab3e1fd3ec2043b091f96b9377605f。
  • 全量重编译: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

已知限制

  1. TROWMAX 2048B:PTO v0.58.6 行归约要求 source tile ≤2048 bytes;asl gfrun 强制此限制导致 mt-fa 24 FAIL(main gfrun 不强制)。
  2. HIF4/HIF8:需 assemble 功能,本次排除 15 个 ELF。
  3. MX scale tensor:fixp 16 个 MX 类型 matmul 因 gfrun 不支持 scale tensor 断言 FAIL。
  4. solution 死循环:group_token_old(单线程)、group_token_vec、mega_moe ×2 输出 >500MB 疑似无限循环;matmul_test ×3 新增算子同现象。

PTO ISA operators binaries (per-suite, gfrun-pass) 20260910

Choose a tag to compare

@lvhao7896 lvhao7896 released this 10 Sep 12:54

基于 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 限制。