submission 202638
prashantgoswami0382 · python · License unknown
Use it
Vendorable · source mirrored · license unknownView source →
No package. Vendor the mirrored source: 45 lines, June 9 Researcher Reciprocity License v1.0.
nvfp4_dual_gemm.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-nvfp4-dual-gemm-202638?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:1a446c7d059833cb46817e4915118b1b6e51d8efb63e36d8b533e07f7a794b6d
license declaredunknown
license concludedunknown
authorsprashantgoswami0382
imported2026-08-26
Techniques
Extracted from the mirrored source by pattern, never inferred. Each row cites its line.
fp4
Hyper-optimized NVFP4 Dual GEMM kernel.Kernel source
nvfp4_dual_gemm.py45 lines
#!POPCORN leaderboard nvfp4_dual_gemm
import torch
@torch.compile(mode="reduce-overhead")
def _sota_logic(a_p, b1_t, b2_t, sa, sb1, sb2, c):
"""
Compiled core logic to eliminate Python overhead and fuse operations.
"""
l = a_p.shape[0]
for i in range(l):
# Hardware-accelerated GEMMs using Blackwell Tensor Cores
# We use float32 for intermediate results to maintain reference precision
r1 = torch._scaled_mm(a_p[i], b1_t[i], sa[i], sb1[i], out_dtype=torch.float32)
r2 = torch._scaled_mm(a_p[i], b2_t[i], sa[i], sb2[i], out_dtype=torch.float32)
# Fused SiLU and multiplication
c[:, :, i] = (torch.nn.functional.silu(r1) * r2).to(torch.float16)
@torch.inference_mode()
def custom_kernel(data):
"""
Hyper-optimized NVFP4 Dual GEMM kernel.
Targets 14us performance on NVIDIA B200.
"""
a, b1, b2, _, _, _, sfa_p, sfb1_p, sfb2_p, c = data
l = c.shape[2]
# 1. Zero-copy preparation of scale factors from pre-permuted inputs
# sfa_p is [32, 4, rest_m, 4, rest_k, l]
# We permute to [l, rest_m, rest_k, 32, 4, 4] which matches the hardware layout
sa = sfa_p.permute(5, 2, 4, 0, 1, 3).reshape(l, -1)
sb1 = sfb1_p.permute(5, 2, 4, 0, 1, 3).reshape(l, -1)
sb2 = sfb2_p.permute(5, 2, 4, 0, 1, 3).reshape(l, -1)
# 2. Pre-transpose/permute inputs to batch-first format for efficient slicing
a_p = a.permute(2, 0, 1) # [L, M, K]
b1_t = b1.permute(2, 1, 0) # [L, K, N]
b2_t = b2.permute(2, 1, 0) # [L, K, N]
# 3. Call the compiled logic
_sota_logic(a_p, b1_t, b2_t, sa, sb1, sb2, c)
return c
scrolls · 45 lines total
Source code from GPU Mode and the KernelBot dataset · June 9 Researcher Reciprocity License v1.0
Best evidence level for this revision: reported
JSON