submission 438751
Sheheryar Ahmad · python · License unknown
Use it
Vendorable · source mirrored · license unknownView source →
No package. Vendor the mirrored source: 44 lines, June 9 Researcher Reciprocity License v1.0.
version42.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-nvfp4-group-gemm-438751?include=source"interfacepython
Compatibility
measured onNVIDIA B200
declared hardwareNVIDIA B200
architecturessm_100
dtypesfp8_e4m3, nvfp4
Benchmark evidence
1 measurement across 1 GPU, fastest first.
Operation / workload
Hardware
Latency
Rank
Observed
Reported · How evidence levels are derived →
Source and license
sourceavailable
revision digestsha256:f01c656ce1908cbd35f7abd13f93f950977d034372ea25856f8a411f533dc987
license declaredunknown
license concludedunknown
authorsSheheryar Ahmad
imported2026-08-15
Kernel source
version42.py44 lines
import torch
import math
from task import input_t, output_t
from reference import ceil_div
def custom_kernel(data: input_t) -> output_t:
abc_tensors, sfasfb_tensors, sfasfb_reordered_tensors, problem_sizes = data
result_tensors = []
# Pre-compute all flattening parameters once
for i, ((a, b, c), (sfa_reordered, sfb_reordered), (m, n, k, l)) in enumerate(
zip(abc_tensors, sfasfb_reordered_tensors, problem_sizes)
):
# Direct fused permute + flatten without intermediate allocations
# Use in-place operations where possible
sfa_slice = sfa_reordered[..., 0]
sfb_slice = sfb_reordered[..., 0]
# Fast path for l=1 (all benchmarks)
# Use view-based reshaping without copy when possible
scale_a_flat = sfa_slice.permute(2, 4, 0, 1, 3).reshape(-1)
scale_b_flat = sfb_slice.permute(2, 4, 0, 1, 3).reshape(-1)
# Ensure contiguous memory for scaled_mm
scale_a_flat = scale_a_flat.contiguous()
scale_b_flat = scale_b_flat.contiguous()
# Fuse the transpose with view
a_view = a[:, :, 0].view(torch.float4_e2m1fn_x2)
b_view = b[:, :, 0].transpose(0, 1).view(torch.float4_e2m1fn_x2)
# Single scaled_mm call
c[:, :, 0] = torch._scaled_mm(
a_view,
b_view,
scale_a_flat,
scale_b_flat,
bias=None,
out_dtype=torch.float16,
)
result_tensors.append(c)
return result_tensorsscrolls · 44 lines total
Source code from GPU Mode and the KernelBot dataset · June 9 Researcher Reciprocity License v1.0
Changes from previous submission
Against this author's previous submission submission 424644.
- # submission.py - Simple correct versionimport torch+ import mathfrom task import input_t, output_t- from reference import to_blocked+ from reference import ceil_divdef custom_kernel(data: input_t) -> output_t:- """- Simple implementation that matches the reference exactly.- Uses torch._scaled_mm for correctness.- """abc_tensors, sfasfb_tensors, sfasfb_reordered_tensors, problem_sizes = data-result_tensors = []- for i, ((a, b, c), (sfa_ref, sfb_ref), (m, n, k, l)) in enumerate(- zip(abc_tensors, sfasfb_tensors, problem_sizes)++ # Pre-compute all flattening parameters once+ for i, ((a, b, c), (sfa_reordered, sfb_reordered), (m, n, k, l)) in enumerate(+ zip(abc_tensors, sfasfb_reordered_tensors, problem_sizes)):- for l_idx in range(l):- # Convert scale factors to blocked format- scale_a = to_blocked(sfa_ref[:, :, l_idx])- scale_b = to_blocked(sfb_ref[:, :, l_idx])-- # Use torch's scaled_mm- res = torch._scaled_mm(- a[:, :, l_idx].view(torch.float4_e2m1fn_x2),- b[:, :, l_idx].transpose(0, 1).view(torch.float4_e2m1fn_x2),- scale_a.cuda(),- scale_b.cuda(),- bias=None,- out_dtype=torch.float16,- )- c[:, :, l_idx] = res+ # Direct fused permute + flatten without intermediate allocations+ # Use in-place operations where possible+ sfa_slice = sfa_reordered[..., 0]+ sfb_slice = sfb_reordered[..., 0]+ # Fast path for l=1 (all benchmarks)+ # Use view-based reshaping without copy when possible+ scale_a_flat = sfa_slice.permute(2, 4, 0, 1, 3).reshape(-1)+ scale_b_flat = sfb_slice.permute(2, 4, 0, 1, 3).reshape(-1)++ # Ensure contiguous memory for scaled_mm+ scale_a_flat = scale_a_flat.contiguous()+ scale_b_flat = scale_b_flat.contiguous()++ # Fuse the transpose with view+ a_view = a[:, :, 0].view(torch.float4_e2m1fn_x2)+ b_view = b[:, :, 0].transpose(0, 1).view(torch.float4_e2m1fn_x2)++ # Single scaled_mm call+ c[:, :, 0] = torch._scaled_mm(+ a_view,+ b_view,+ scale_a_flat,+ scale_b_flat,+ bias=None,+ out_dtype=torch.float16,+ )+result_tensors.append(c)return result_tensorsNo newline at end of file
scrolls · 69 diff lines total
Best evidence level for this revision: reported
JSON