---
id: pr-tilelang-1489
repo: tile-ai/tilelang
pr: 1489
title: '[CI] Add preformance regression test script'
author: xwhzz
date: '2025-12-22'
url: https://github.com/tile-ai/tilelang/pull/1489
source_category: upstream-code
architectures:
- sm100
tags:
- moe
- moe kernel
techniques: []
hardware_features: []
kernel_types:
- moe
languages:
- cuda-cpp
captured_at: '2026-05-16'
status: merged
merge_sha: ba23181d23503b6a40b9cdee6c7cb83301571e12
inclusion_reason: Search-matched CUDA kernel optimization PR; materialize diff/source before synthesis.
changed_paths:
- .github/workflows/pr-perfbench-bot.yml
- .github/workflows/pr-regression-test-bot.yml
- examples/attention_sink/example_gqa_sink_bwd_bhsd.py
- examples/attention_sink/example_gqa_sink_fwd_bhsd_wgmma_pipelined.py
- examples/attention_sink/example_mha_sink_bwd_bhsd.py
- examples/attention_sink/example_mha_sink_fwd_bhsd.py
- examples/attention_sink/example_mha_sink_fwd_bhsd_wgmma_pipelined.py
- examples/attention_sink/regression_attention_sink.py
- examples/blocksparse_attention/block_sparse_attn_triton.py
- examples/blocksparse_attention/example_tilelang_block_sparse_attn.py
- examples/blocksparse_attention/example_tilelang_sparse_gqa_decode_paged.py
- examples/blocksparse_attention/example_tilelang_sparse_gqa_decode_varlen_indice.py
- examples/blocksparse_attention/example_tilelang_sparse_gqa_decode_varlen_mask.py
- examples/blocksparse_attention/example_triton_sparse_gqa_decode_varlen_indice.py
- examples/blocksparse_attention/example_triton_sparse_gqa_decode_varlen_mask.py
- examples/blocksparse_attention/regression_example_blocksparse_attention.py
- examples/blocksparse_gemm/example_blocksparse_gemm.py
- examples/blocksparse_gemm/regression_example_blocksparse_gemm.py
- examples/cast/example_group_per_split_token_cast_to_fp8.py
- examples/cast/example_per_token_cast_to_fp8.py
- examples/cast/regression_example_cast.py
- examples/convolution/example_convolution.py
- examples/convolution/example_convolution_autotune.py
- examples/convolution/regression_example_convolution.py
- examples/deepseek_mla/example_mla_decode.py
- examples/deepseek_mla/regression_example_mla_decode.py
- examples/deepseek_nsa/example_tilelang_nsa_decode.py
- examples/deepseek_nsa/example_tilelang_nsa_fwd.py
- examples/deepseek_nsa/regression_example_tilelang_nsa.py
- examples/deepseek_v32/fp8_lighting_indexer.py
- examples/deepseek_v32/regression_tilelang_example_deepseek_v32.py
- examples/deepseek_v32/sparse_mla_bwd.py
- examples/deepseek_v32/sparse_mla_fwd.py
- examples/deepseek_v32/sparse_mla_fwd_pipelined.py
- examples/deepseek_v32/topk_selector.py
- examples/dequantize_gemm/example_dequant_gemm_bf16_fp4_hopper.py
- examples/dequantize_gemm/example_dequant_gemm_bf16_mxfp4_hopper.py
- examples/dequantize_gemm/example_dequant_gemm_bf16_mxfp4_hopper_tma.py
- examples/dequantize_gemm/example_dequant_gemm_fp4_hopper.py
- examples/dequantize_gemm/example_dequant_gemm_w4a8.py
- examples/dequantize_gemm/example_dequant_gemv_fp16xint4.py
- examples/dequantize_gemm/example_dequant_groupedgemm_bf16_mxfp4_hopper.py
- examples/dequantize_gemm/regression_example_dequantize_gemm.py
- examples/dynamic_shape/example_dynamic.py
- examples/dynamic_shape/regression_example_dynamic.py
- examples/elementwise/example_elementwise_add.py
- examples/elementwise/regression_example_elementwise.py
- examples/flash_attention/example_gqa_bwd.py
- examples/flash_attention/example_gqa_bwd_tma_reduce_varlen.py
- examples/flash_attention/example_gqa_bwd_wgmma_pipelined.py
- examples/flash_attention/example_gqa_fwd_bshd.py
- examples/flash_attention/example_gqa_fwd_bshd_wgmma_pipelined.py
- examples/flash_attention/example_mha_bwd_bhsd.py
- examples/flash_attention/example_mha_bwd_bshd.py
- examples/flash_attention/example_mha_bwd_bshd_wgmma_pipelined.py
- examples/flash_attention/example_mha_fwd_bhsd.py
- examples/flash_attention/example_mha_fwd_bhsd_wgmma_pipelined.py
- examples/flash_attention/example_mha_fwd_bshd.py
- examples/flash_attention/example_mha_fwd_bshd_wgmma_pipelined.py
- examples/flash_attention/example_mha_fwd_varlen.py
- examples/flash_attention/regression_example_flash_attention.py
- examples/flash_decoding/example_gqa_decode.py
- examples/flash_decoding/example_mha_inference.py
- examples/flash_decoding/regression_example_flash_decoding.py
- examples/fusedmoe/example_fusedmoe_tilelang.py
- examples/fusedmoe/regression_example_fusedmoe.py
- examples/gemm/example_gemm.py
- examples/gemm/example_gemm_autotune.py
- examples/gemm/example_gemm_intrinsics.py
- examples/gemm/example_gemm_persistent.py
- examples/gemm/example_gemm_schedule.py
- examples/gemm/regression_example_gemm.py
- examples/gemm_fp8/example_tilelang_gemm_fp8.py
- examples/gemm_fp8/example_tilelang_gemm_fp8_2xAcc.py
- examples/gemm_fp8/example_tilelang_gemm_fp8_intrinsic.py
- examples/gemm_fp8/regression_example_gemm_fp8.py
- examples/gemm_splitk/example_tilelang_gemm_splitk.py
- examples/gemm_splitk/example_tilelang_gemm_splitk_vectorize_atomicadd.py
- examples/gemm_splitk/regression_example_gemm_splitk.py
- examples/gemm_streamk/example_tilelang_gemm_streamk.py
- examples/gemm_streamk/regression_example_tilelang_gemm_splitk.py
- examples/gemm_streamk/test_example_tilelang_gemm_streamk.py
- examples/gemv/example_gemv.py
- examples/gemv/regression_example_gemv.py
- examples/linear_attention/example_linear_attn_bwd.py
- examples/linear_attention/example_linear_attn_fwd.py
- examples/linear_attention/regression_linear_attn.py
- examples/minference/example_vertical_slash_sparse_attn.py
- examples/minference/regression_vs_sparse_attn.py
- examples/seer_attention/block_sparse_attn_tilelang.py
- examples/seer_attention/regression_block_sparse_attn_tilelang.py
- examples/sparse_tensorcore/regression_example_sparse_tensorcore.py
- examples/sparse_tensorcore/tilelang_example_sparse_tensorcore.py
- examples/topk/example_topk.py
- examples/topk/regression_topk_tilelang.py
- examples/warp_specialize/example_warp_specialize_gemm_barrierpipe_stage2.py
- examples/warp_specialize/example_warp_specialize_gemm_copy_0_gemm_1.py
- examples/warp_specialize/example_warp_specialize_gemm_copy_1_gemm_0.py
- examples/warp_specialize/example_warp_specialize_gemm_softpipe_stage2.py
- examples/warp_specialize/regression_example_warp_specialize.py
- maint/scripts/ci_performance.py
- maint/scripts/test_perf_regression.py
- requirements-test.txt
- tilelang/testing/__init__.py
- tilelang/testing/perf_regression.py
artifact_dir: evidence/pull-bundles/tilelang/gh-1489
head_ref_oid: 3f206c91b19011cb68343bde6fa7142b5d09b3ae
---
# [CI] Add preformance regression test script

- Repository: `tile-ai/tilelang`
- PR: [1489](https://github.com/tile-ai/tilelang/pull/1489)
- Decision: `Search-matched CUDA kernel optimization PR; materialize diff/source before synthesis.`
- Reason: Search-matched CUDA kernel optimization PR; materialize diff/source before synthesis.

## Changed Paths

- `.github/workflows/pr-perfbench-bot.yml`
- `.github/workflows/pr-regression-test-bot.yml`
- `examples/attention_sink/example_gqa_sink_bwd_bhsd.py`
- `examples/attention_sink/example_gqa_sink_fwd_bhsd_wgmma_pipelined.py`
- `examples/attention_sink/example_mha_sink_bwd_bhsd.py`
- `examples/attention_sink/example_mha_sink_fwd_bhsd.py`
- `examples/attention_sink/example_mha_sink_fwd_bhsd_wgmma_pipelined.py`
- `examples/attention_sink/regression_attention_sink.py`
- `examples/blocksparse_attention/block_sparse_attn_triton.py`
- `examples/blocksparse_attention/example_tilelang_block_sparse_attn.py`
- `examples/blocksparse_attention/example_tilelang_sparse_gqa_decode_paged.py`
- `examples/blocksparse_attention/example_tilelang_sparse_gqa_decode_varlen_indice.py`
- `examples/blocksparse_attention/example_tilelang_sparse_gqa_decode_varlen_mask.py`
- `examples/blocksparse_attention/example_triton_sparse_gqa_decode_varlen_indice.py`
- `examples/blocksparse_attention/example_triton_sparse_gqa_decode_varlen_mask.py`
- `examples/blocksparse_attention/regression_example_blocksparse_attention.py`
- `examples/blocksparse_gemm/example_blocksparse_gemm.py`
- `examples/blocksparse_gemm/regression_example_blocksparse_gemm.py`
- `examples/cast/example_group_per_split_token_cast_to_fp8.py`
- `examples/cast/example_per_token_cast_to_fp8.py`
- `examples/cast/regression_example_cast.py`
- `examples/convolution/example_convolution.py`
- `examples/convolution/example_convolution_autotune.py`
- `examples/convolution/regression_example_convolution.py`
- `examples/deepseek_mla/example_mla_decode.py`
- `examples/deepseek_mla/regression_example_mla_decode.py`
- `examples/deepseek_nsa/example_tilelang_nsa_decode.py`
- `examples/deepseek_nsa/example_tilelang_nsa_fwd.py`
- `examples/deepseek_nsa/regression_example_tilelang_nsa.py`
- `examples/deepseek_v32/fp8_lighting_indexer.py`
- `examples/deepseek_v32/regression_tilelang_example_deepseek_v32.py`
- `examples/deepseek_v32/sparse_mla_bwd.py`
- `examples/deepseek_v32/sparse_mla_fwd.py`
- `examples/deepseek_v32/sparse_mla_fwd_pipelined.py`
- `examples/deepseek_v32/topk_selector.py`
- `examples/dequantize_gemm/example_dequant_gemm_bf16_fp4_hopper.py`
- `examples/dequantize_gemm/example_dequant_gemm_bf16_mxfp4_hopper.py`
- `examples/dequantize_gemm/example_dequant_gemm_bf16_mxfp4_hopper_tma.py`
- `examples/dequantize_gemm/example_dequant_gemm_fp4_hopper.py`
- `examples/dequantize_gemm/example_dequant_gemm_w4a8.py`
- `examples/dequantize_gemm/example_dequant_gemv_fp16xint4.py`
- `examples/dequantize_gemm/example_dequant_groupedgemm_bf16_mxfp4_hopper.py`
- `examples/dequantize_gemm/regression_example_dequantize_gemm.py`
- `examples/dynamic_shape/example_dynamic.py`
- `examples/dynamic_shape/regression_example_dynamic.py`
- `examples/elementwise/example_elementwise_add.py`
- `examples/elementwise/regression_example_elementwise.py`
- `examples/flash_attention/example_gqa_bwd.py`
- `examples/flash_attention/example_gqa_bwd_tma_reduce_varlen.py`
- `examples/flash_attention/example_gqa_bwd_wgmma_pipelined.py`
- `examples/flash_attention/example_gqa_fwd_bshd.py`
- `examples/flash_attention/example_gqa_fwd_bshd_wgmma_pipelined.py`
- `examples/flash_attention/example_mha_bwd_bhsd.py`
- `examples/flash_attention/example_mha_bwd_bshd.py`
- `examples/flash_attention/example_mha_bwd_bshd_wgmma_pipelined.py`
- `examples/flash_attention/example_mha_fwd_bhsd.py`
- `examples/flash_attention/example_mha_fwd_bhsd_wgmma_pipelined.py`
- `examples/flash_attention/example_mha_fwd_bshd.py`
- `examples/flash_attention/example_mha_fwd_bshd_wgmma_pipelined.py`
- `examples/flash_attention/example_mha_fwd_varlen.py`
- `examples/flash_attention/regression_example_flash_attention.py`
- `examples/flash_decoding/example_gqa_decode.py`
- `examples/flash_decoding/example_mha_inference.py`
- `examples/flash_decoding/regression_example_flash_decoding.py`
- `examples/fusedmoe/example_fusedmoe_tilelang.py`
- `examples/fusedmoe/regression_example_fusedmoe.py`
- `examples/gemm/example_gemm.py`
- `examples/gemm/example_gemm_autotune.py`
- `examples/gemm/example_gemm_intrinsics.py`
- `examples/gemm/example_gemm_persistent.py`
- `examples/gemm/example_gemm_schedule.py`
- `examples/gemm/regression_example_gemm.py`
- `examples/gemm_fp8/example_tilelang_gemm_fp8.py`
- `examples/gemm_fp8/example_tilelang_gemm_fp8_2xAcc.py`
- `examples/gemm_fp8/example_tilelang_gemm_fp8_intrinsic.py`
- `examples/gemm_fp8/regression_example_gemm_fp8.py`
- `examples/gemm_splitk/example_tilelang_gemm_splitk.py`
- `examples/gemm_splitk/example_tilelang_gemm_splitk_vectorize_atomicadd.py`
- `examples/gemm_splitk/regression_example_gemm_splitk.py`
- `examples/gemm_streamk/example_tilelang_gemm_streamk.py`

## Evidence Bundle

`evidence/pull-bundles/tilelang/gh-1489`
