---
id: pr-cutlass-3176
repo: NVIDIA/cutlass
pr: 3176
title: Small Tile N BlockScaled GEMM + Grouped GEMM on SM12x
author: depaulmillz
date: '2026-04-21'
url: https://github.com/NVIDIA/cutlass/pull/3176
source_category: upstream-code
architectures:
- sm100
- sm90
tags:
- arch_pipeline
- blockscaled
- gemm_quant
- grouped gemm
- sm120
techniques:
- async-copy
- fine-grained-quantization
- kernel-fusion
- pipeline-stages
- warp-specialization
hardware_features:
- hopper
- tma
kernel_types:
- decode
- gemm
- runtime
languages:
- cuda-cpp
- cute-dsl
captured_at: '2026-05-16'
status: merged
merge_sha: b46b16d003484063bca4ed365e44095c4c6ed633
inclusion_reason: Inspect scale layout, accumulator type, tile/schedule choice, epilogue fusion, and partial-tile guards before deriving a candidate.
changed_paths:
- include/cutlass/gemm/collective/builders/sm120_blockscaled_mma_builder.inl
- include/cutlass/gemm/collective/sm120_blockscaled_mma_array_tma.hpp
- include/cutlass/gemm/collective/sm120_blockscaled_mma_tma.hpp
- include/cutlass/gemm/collective/sm120_mma_array_tma_blockwise_scaling.hpp
- include/cutlass/gemm/collective/sm120_mma_tma.hpp
- include/cutlass/gemm/collective/sm120_mma_tma_blockwise_scaling.hpp
- include/cutlass/gemm/kernel/sm90_gemm_array_tma_warpspecialized_cooperative.hpp
- include/cutlass/gemm/kernel/sm90_gemm_array_tma_warpspecialized_pingpong.hpp
- include/cutlass/gemm/kernel/sm90_gemm_tma_warpspecialized_cooperative.hpp
- include/cutlass/gemm/kernel/sm90_gemm_tma_warpspecialized_pingpong.hpp
- python/cutlass_library/generator.py
- test/unit/gemm/device/sm120_blockscaled_tensorop_gemm/sm120_bs_gemm_mxf4_mxf4_f32_f32.cu
- test/unit/gemm/device/sm120_blockscaled_tensorop_gemm/sm120_bs_gemm_nvf4_nvf4_f32_nvf4_group_gemm_fusion.cu
artifact_dir: evidence/pull-bundles/cutlass/gh-3176
head_ref_oid: 0402ff518690a3e3cb81c9efe823f170ab2704a8
---
# Small Tile N BlockScaled GEMM + Grouped GEMM on SM12x

- Repository: `NVIDIA/cutlass`
- PR: [3176](https://github.com/NVIDIA/cutlass/pull/3176)
- Decision: `Inspect scale layout, accumulator type, tile/schedule choice, epilogue fusion, and partial-tile guards before deriving a candidate.`
- Reason: Inspect scale layout, accumulator type, tile/schedule choice, epilogue fusion, and partial-tile guards before deriving a candidate.

## Changed Paths

- `include/cutlass/gemm/collective/builders/sm120_blockscaled_mma_builder.inl`
- `include/cutlass/gemm/collective/sm120_blockscaled_mma_array_tma.hpp`
- `include/cutlass/gemm/collective/sm120_blockscaled_mma_tma.hpp`
- `include/cutlass/gemm/collective/sm120_mma_array_tma_blockwise_scaling.hpp`
- `include/cutlass/gemm/collective/sm120_mma_tma.hpp`
- `include/cutlass/gemm/collective/sm120_mma_tma_blockwise_scaling.hpp`
- `include/cutlass/gemm/kernel/sm90_gemm_array_tma_warpspecialized_cooperative.hpp`
- `include/cutlass/gemm/kernel/sm90_gemm_array_tma_warpspecialized_pingpong.hpp`
- `include/cutlass/gemm/kernel/sm90_gemm_tma_warpspecialized_cooperative.hpp`
- `include/cutlass/gemm/kernel/sm90_gemm_tma_warpspecialized_pingpong.hpp`
- `python/cutlass_library/generator.py`
- `test/unit/gemm/device/sm120_blockscaled_tensorop_gemm/sm120_bs_gemm_mxf4_mxf4_f32_f32.cu`
- `test/unit/gemm/device/sm120_blockscaled_tensorop_gemm/sm120_bs_gemm_nvf4_nvf4_f32_nvf4_group_gemm_fusion.cu`

## Evidence Bundle

`evidence/pull-bundles/cutlass/gh-3176`
