---
id: pr-tilelang-1949
repo: tile-ai/tilelang
pr: 1949
title: '[Refactor] Separate gemm into explicit `wgmma_gemm` and `tcgen05_gemm` functions'
author: LeiWang1999
date: '2026-03-20'
url: https://github.com/tile-ai/tilelang/pull/1949
source_category: upstream-code
architectures:
- sm100
- sm90
tags:
- blackwell
- gemm
- sm100
techniques: []
hardware_features:
- blackwell
- tcgen05
- wgmma
kernel_types:
- gemm
languages:
- cute-dsl
captured_at: '2026-05-16'
status: merged
merge_sha: b5bd642479371a13880888e1ded2c49cc52f1368
inclusion_reason: Search-matched CUDA kernel optimization PR; materialize diff/source before synthesis.
changed_paths:
- examples/deepseek_mhc/example_mhc_pre.py
- examples/deepseek_mla/example_mla_decode_ws.py
- examples/deepseek_v32/sparse_mla_fwd_pipelined.py
- examples/deepseek_v32/sparse_mla_fwd_seesaw.py
- examples/gemm_fp8/example_tilelang_gemm_fp8_sm100.py
- examples/gemm_sm100/README.md
- examples/gemm_sm100/gemm_tcgen5mma.py
- examples/gemm_sm100/gemm_tcgen5mma_ws.py
- examples/gemm_sm100/gemm_tcgen5mma_ws_persistent.py
- examples/warp_specialize/example_warp_specialize_flashmla.py
- src/op/gemm.cc
- src/op/gemm.h
- src/op/gemm_py.cc
- src/op/gemm_py.h
- testing/python/kernel/test_tilelang_kernel_bf16_gemm_tcgen5_ts.py
- testing/python/kernel/test_tilelang_kernel_int8_gemm_tcgen5.py
- testing/python/language/test_tilelang_language_tcgen05_gemm.py
- testing/python/language/test_tilelang_language_wgmma_gemm.py
- tilelang/language/__init__.py
- tilelang/language/gemm_op.py
- tilelang/tileop/gemm/__init__.py
- tilelang/tileop/gemm/gemm_base.py
- tilelang/tileop/gemm/gemm_mfma.py
- tilelang/tileop/gemm/gemm_mma.py
- tilelang/tileop/gemm/gemm_mma_sm70.py
- tilelang/tileop/gemm/gemm_scalar.py
- tilelang/tileop/gemm/gemm_tcgen05.py
- tilelang/tileop/gemm/gemm_wgmma.py
artifact_dir: evidence/pull-bundles/tilelang/gh-1949
head_ref_oid: eabce4b174ed36fe0911ec22f209f8bcb0736d1e
---
# [Refactor] Separate gemm into explicit `wgmma_gemm` and `tcgen05_gemm` functions

- Repository: `tile-ai/tilelang`
- PR: [1949](https://github.com/tile-ai/tilelang/pull/1949)
- 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

- `examples/deepseek_mhc/example_mhc_pre.py`
- `examples/deepseek_mla/example_mla_decode_ws.py`
- `examples/deepseek_v32/sparse_mla_fwd_pipelined.py`
- `examples/deepseek_v32/sparse_mla_fwd_seesaw.py`
- `examples/gemm_fp8/example_tilelang_gemm_fp8_sm100.py`
- `examples/gemm_sm100/README.md`
- `examples/gemm_sm100/gemm_tcgen5mma.py`
- `examples/gemm_sm100/gemm_tcgen5mma_ws.py`
- `examples/gemm_sm100/gemm_tcgen5mma_ws_persistent.py`
- `examples/warp_specialize/example_warp_specialize_flashmla.py`
- `src/op/gemm.cc`
- `src/op/gemm.h`
- `src/op/gemm_py.cc`
- `src/op/gemm_py.h`
- `testing/python/kernel/test_tilelang_kernel_bf16_gemm_tcgen5_ts.py`
- `testing/python/kernel/test_tilelang_kernel_int8_gemm_tcgen5.py`
- `testing/python/language/test_tilelang_language_tcgen05_gemm.py`
- `testing/python/language/test_tilelang_language_wgmma_gemm.py`
- `tilelang/language/__init__.py`
- `tilelang/language/gemm_op.py`
- `tilelang/tileop/gemm/__init__.py`
- `tilelang/tileop/gemm/gemm_base.py`
- `tilelang/tileop/gemm/gemm_mfma.py`
- `tilelang/tileop/gemm/gemm_mma.py`
- `tilelang/tileop/gemm/gemm_mma_sm70.py`
- `tilelang/tileop/gemm/gemm_scalar.py`
- `tilelang/tileop/gemm/gemm_tcgen05.py`
- `tilelang/tileop/gemm/gemm_wgmma.py`

## Evidence Bundle

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