Skip to content
KernelIndex
Search⌘K

submission 380980

jihun_lee__ · python · License unknown

Use it

Vendorable · source mirrored · license unknownView source →

No package. Vendor the mirrored source: 27 lines, June 9 Researcher Reciprocity License v1.0.

submission.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-nvfp4-dual-gemm-380980?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
NVFP4 dual GEMMsuite of 4 cases
NVIDIA B200
16.8µs
#145 of 420
2026-01-19

Reported · How evidence levels are derived →

Source and license

sourceavailable
revision digestsha256:432931261f85c4f28a81d7919e04700708d9af2a9817c68d8790f923af91d8fa
license declaredunknown
license concludedunknown
authorsjihun_lee__
imported2026-08-26

Kernel source

submission.py27 lines
import lzma,base64
_C="""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"""
_CUDA_SOURCE=lzma.decompress(base64.b64decode(_C)).decode('utf-8')

import torch
from torch.utils.cpp_extension import load_inline
from task import input_t,output_t
cuda_source=_CUDA_SOURCE
nvfp4_cuda=load_inline(
 name='dual_gemm_blockscaled',
 cpp_sources=[],
 cuda_sources=[cuda_source],
 extra_cuda_cflags=[
 '-O3',
'-std=c++20',
'--use_fast_math',
'-gencode=arch=compute_100a,code=sm_100a',
'-diag-suppress=2908',
'-I/opt/cutlass/include',
],
 verbose=False,
 with_cuda=True
)
def custom_kernel(data:input_t)->output_t:
 a,b1,b2,sfa,sfb1,sfb2,sfa_permuted,sfb1_permuted,sfb2_permuted,c=data
 nvfp4_cuda.dual_gemm_blockscaled(a,b1,b2,sfa,sfb1,sfb2,sfa_permuted,sfb1_permuted,sfb2_permuted,c);
 return c

Source code from GPU Mode and the KernelBot dataset · June 9 Researcher Reciprocity License v1.0

Best evidence level for this revision: reported

JSON