---
id: pr-flashinfer-1668
repo: flashinfer-ai/flashinfer
pr: 1668
title: TGV GEMM as a BF16 backend alternative to cuBLAS
author: yangs75
date: '2025-09-14'
url: https://github.com/flashinfer-ai/flashinfer/pull/1668
source_category: upstream-code
architectures:
- sm100
tags:
- gemm
- fp8
- tcgen05
- decode
techniques:
- persistent-kernel
- tile-scheduling
hardware_features:
- tcgen05
- tmem
- tma
- pdl
- fp8
kernel_types:
- gemm
- decode
languages:
- cuda-cpp
- python
captured_at: 2026-04-16
status: merged
merge_sha: 2f29abc3e9c7ad42ef02df07096be7914dcad085
inclusion_reason: manually curated, Blackwell kernel relevance
changed_paths:
- benchmarks/bench_tgv_gemm.py
- csrc/tgv_gemm.cu
- csrc/tgv_gemm.jinja
- flashinfer/__init__.py
- flashinfer/aot.py
- flashinfer/gemm.py
- include/flashinfer/gemm/tgv_gemm.cuh
- include/flashinfer/gemm/tgv_gemm_configs.h
- include/flashinfer/gemm/tgv_gemm_template.h
- tests/test_tgv_gemm.py
head_ref_oid: b95673199ba3b4b43711adcdbe06f8b011af9a23
artifact_dir: evidence/pull-bundles/flashinfer/gh-1668
---
# TGV GEMM as a BF16 backend alternative to cuBLAS

- Repository: `flashinfer-ai/flashinfer`
- PR: [1668](https://github.com/flashinfer-ai/flashinfer/pull/1668)
- Decision: `manually curated, Blackwell kernel relevance`
- Reason: manually curated, Blackwell kernel relevance

## Changed Paths

- `benchmarks/bench_tgv_gemm.py`
- `csrc/tgv_gemm.cu`
- `csrc/tgv_gemm.jinja`
- `flashinfer/__init__.py`
- `flashinfer/aot.py`
- `flashinfer/gemm.py`
- `include/flashinfer/gemm/tgv_gemm.cuh`
- `include/flashinfer/gemm/tgv_gemm_configs.h`
- `include/flashinfer/gemm/tgv_gemm_template.h`
- `tests/test_tgv_gemm.py`

## Evidence Bundle

`evidence/pull-bundles/flashinfer/gh-1668`
