Skip to content
KernelIndex
Search⌘K

submission 553021

CodingMaster · python · License unknown

Use it

Vendorable · source mirrored · license unknownView source →

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

submission.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-fp8-quant-553021?include=source"
interfacepython
Compatibility
measured onNVIDIA B200
declared hardwareNVIDIA B200
architecturessm_100
dtypesfp32

Benchmark evidence

1 measurement across 1 GPU, fastest first.

Operation / workload
Hardware
Latency
Rank
Observed
NVIDIA B200
28.7µs
#17 of 17
2026-03-14

Reported · How evidence levels are derived →

Source and license

sourceavailable
revision digestsha256:4be138022cc63bb8f1ba3dfe2f3173a1478f30abe022c70809326ec1ed9c5b85
license declaredunknown
license concludedunknown
authorsCodingMaster
imported2026-08-15

Techniques

Extracted from the mirrored source by pattern, never inferred. Each row cites its line.

autotune@helion.kernel(autotune_effort="none")
num-warps = 1…er', 'pointer'], load_eviction_policies=[''], num_stages=1, num_warps=1, pid_type='flat', range_flattens=[None, None], range_multi_buffers=[None, None], range_num_stages=[], range_…
persistent-kernel…, num_sm_multiplier=1, num_stages=2, num_warps=1, pid_type='persistent_interleaved', range_flattens=[None, None], range_multi_buffers=[None, None], range_unroll_factors=[0, 0], ran…
stages = 1…inter', 'pointer', 'pointer'], load_eviction_policies=[''], num_stages=1, num_warps=1, pid_type='flat', range_flattens=[None, None], range_multi_buffers=[None, None], range_num_sta…
warp-specialization…e], range_num_stages=[], range_unroll_factors=[0, 0], range_warp_specializes=[None, None], static_ranges=[True]),…

Kernel source

submission.py79 lines
#!POPCORN leaderboard fp8_quant
#!POPCORN gpu B200_Nebius
from task import input_t, output_t

import torch
import helion
import helion.language as hl

FP8_MAX = 448.0
FP8_MIN = -448.0
FP8_EPS = 1e-10

# Per-shape configs: map (num_tokens, hidden_dim, group_size) to optimized helion.Config objects.
# Run `python autotune.py` to generate tuned configs, then paste them here.
SHAPE_CONFIGS: dict[tuple, helion.Config] = {
    # Test shapes
    (1, 256, 64): helion.Config(block_sizes=[1], indexing=['pointer', 'pointer', 'pointer'], load_eviction_policies=[''], num_stages=1, num_warps=1, pid_type='flat', range_flattens=[None, None], range_multi_buffers=[None, None], range_num_stages=[], range_unroll_factors=[0, 0], range_warp_specializes=[None, None], static_ranges=[True]),
    (4, 512, 128): helion.Config(block_sizes=[2], indexing=['pointer', 'pointer', 'pointer'], load_eviction_policies=[''], num_stages=1, num_warps=2, pid_type='flat', range_flattens=[None, True], range_multi_buffers=[None, None], range_num_stages=[], range_unroll_factors=[0, 0], range_warp_specializes=[None, None], static_ranges=[False]),
    (16, 1024, 64): helion.Config(block_sizes=[1], indexing=['pointer', 'pointer', 'pointer'], load_eviction_policies=['last'], num_stages=1, num_warps=1, pid_type='flat', range_flattens=[None, None], range_multi_buffers=[None, None], range_num_stages=[], range_unroll_factors=[0, 0], range_warp_specializes=[None, None]),
    (1, 4096, 128): helion.Config(block_sizes=[1], indexing=['pointer', 'pointer', 'pointer'], load_eviction_policies=[''], num_sm_multiplier=1, num_stages=2, num_warps=1, pid_type='persistent_interleaved', range_flattens=[None, None], range_multi_buffers=[None, None], range_unroll_factors=[0, 0], range_warp_specializes=[None, None]),
    (8, 4096, 128): helion.Config(block_sizes=[1], indexing=['pointer', 'tensor_descriptor', 'pointer'], load_eviction_policies=['last'], num_sm_multiplier=1, num_stages=1, num_warps=1, pid_type='persistent_interleaved', range_flattens=[None, None], range_multi_buffers=[None, False], range_unroll_factors=[0, 0], range_warp_specializes=[None, None]),
    # Benchmark shapes
    (16, 4096, 128): helion.Config(block_sizes=[1], indexing=['pointer', 'tensor_descriptor', 'pointer'], load_eviction_policies=[''], num_stages=1, num_warps=1, pid_type='flat', range_flattens=[None, True], range_multi_buffers=[None, None], range_num_stages=[], range_unroll_factors=[0, 1], range_warp_specializes=[None, None]),
    (256, 4096, 128): helion.Config(block_sizes=[1], indexing=['pointer', 'pointer', 'pointer'], load_eviction_policies=['last'], num_stages=1, num_warps=2, pid_type='flat', range_flattens=[None, True], range_multi_buffers=[None, None], range_num_stages=[], range_unroll_factors=[0, 0], range_warp_specializes=[None, False]),
    (256, 8192, 128): helion.Config(block_sizes=[1], indexing=['pointer', 'pointer', 'tensor_descriptor'], load_eviction_policies=['last'], num_stages=1, num_warps=4, pid_type='flat', range_flattens=[None, None], range_multi_buffers=[None, False], range_num_stages=[], range_unroll_factors=[0, 0], range_warp_specializes=[None, False]),
    (4096, 7168, 128): helion.Config(block_sizes=[2], indexing=['tensor_descriptor', 'tensor_descriptor', 'tensor_descriptor'], load_eviction_policies=['first'], num_stages=1, num_warps=2, pid_type='flat', range_flattens=[None, None], range_multi_buffers=[None, None], range_num_stages=[], range_unroll_factors=[0, 0], range_warp_specializes=[None, None]),
}


@helion.kernel(autotune_effort="none")
def fp8_quantize_kernel(
    x: torch.Tensor,
    x_q: torch.Tensor,
    x_s: torch.Tensor,
    group_size: hl.constexpr,
) -> tuple[torch.Tensor, torch.Tensor]:
    num_tokens, hidden_dim = x.shape
    num_groups = hidden_dim // group_size

    for tile_m in hl.tile(num_tokens):
        for g in range(num_groups):
            col_start = g * group_size
            x_group = x[tile_m, col_start:col_start + group_size].to(torch.float32)

            absmax = x_group.abs().amax(dim=1).clamp(min=FP8_EPS)
            scale = absmax / FP8_MAX

            x_q[tile_m, col_start:col_start + group_size] = (
                x_group / scale[:, None]
            ).clamp(FP8_MIN, FP8_MAX)
            x_s[tile_m, g:g + 1] = scale[:, None]

    return x_q, x_s


# Pre-compile and warm up a runner for each shape using bind + compile_config
_RUNNERS: dict[tuple, object] = {}
for (_T, _H, _gsz), _cfg in SHAPE_CONFIGS.items():
    _G = _H // _gsz
    _example_x = torch.empty(_T, _H, dtype=torch.float32, device="cuda")
    _example_x_q = torch.empty(_T, _H, dtype=torch.float32, device="cuda")
    _example_x_s = torch.empty(_T, _G, dtype=torch.float32, device="cuda")
    _bound = fp8_quantize_kernel.bind((_example_x, _example_x_q, _example_x_s, _gsz))
    _runner = _bound.compile_config(_cfg)
    # Warm up to trigger CUDA PTX compilation eagerly
    _runner(_example_x, _example_x_q, _example_x_s, _gsz)
    _RUNNERS[(_T, _H, _gsz)] = _runner
torch.cuda.synchronize()


def custom_kernel(data: input_t) -> output_t:
    x, x_q, x_s = data
    T, H = x.shape
    G = x_s.shape[1]
    gsz = H // G

    runner = _RUNNERS[(T, H, gsz)]
    return runner(x, x_q, x_s, gsz)
scrolls · 79 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