跳转至

RMSNorm Benchmark

支持记录

  • CLI operator:rms_norm
  • Torch reference:x * rsqrt(mean(x^2) + eps) * weight
  • TileLang backend 支持 float16bfloat16float32,CUDA tensor,last dimension 需要符合当前 kernel 约束。
  • Triton backend 支持 float16bfloat16float32 CUDA tensor,last dimension 不要求 2 的幂。
  • benchmark 只测算子本体,不代表完整模型 step time。
  • 主要源码:src/taac2026/infrastructure/accelerators/normalization/rms_norm.py

推荐命令

uv run taac-benchmark-pcvr-tilelang-ops \
  --operator rms_norm \
  --device cuda \
  --rows 8192 \
  --cols 128 \
  --dtype float16 \
  --backends torch,tilelang,triton \
  --steps 100 \
  --warmup-steps 20 \
  --repeats 5 \
  > outputs/benchmarks/tilelang_rms_norm.json

读数要点

  • 变更 block_rows 时要一起记录参数,例如 --block-rows 8
  • 如果 tilelangtriton backend 报 unsupported,先确认 CUDA、对应编译器包安装和 dtype / shape 约束。
  • RMSNorm 的模型收益取决于调用频率和 tensor shape;单算子速度提升不等于端到端同幅提升。

最近验收观察

最近一次本地验收口径:H800、rows=8192cols=128float16steps=100warmup_steps=20repeats=5。结果只用于判断当前 kernel 口径是否健康,不作为长期基准。

backend step ms compile sec max abs error max rel error
torch 0.0536 - 0.0 0.0
tilelang 0.0109 4.64 0.0078 0.0049

当前口径下 TileLang 约 4.9x faster。首次 JIT 编译约 4.6s,评估稳态吞吐时不要把它混入 step time。

评论