submission 636562
allan_g4073 · python · License unknown
Use it
Vendorable · source mirrored · license unknownView source →
No package. Vendor the mirrored source: 82 lines, June 9 Researcher Reciprocity License v1.0.
submission_optimized.py
curl "https://kernelindex.com/api/v1/implementations/kernelbot-amd-moe-mxfp4-636562?include=source"interfacepython
Compatibility
measured onAMD Instinct MI355X
declared hardwareAMD Instinct MI355X
architecturesgfx950
dtypesbf16, fp32, fp8_e8m0, int32, mxfp4
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:3078bef0ce544a16800d09a540617901abbd760697068664ea5a5f3b800d2734
license declaredunknown
license concludedunknown
authorsallan_g4073
imported2026-08-26
Techniques
Extracted from the mirrored source by pattern, never inferred. Each row cites its line.
fp4
Optimized MOE MXFP4 kernel for AMD MI355X.shared-memory
"use_smem_cache": True,Kernel source
submission_optimized.py82 lines
#!POPCORN leaderboard amd-moe-mxfp4
#!POPCORN gpu MI355X
import torch
from typing import Dict
from task import input_t, output_t
from aiter import ActivationType, QuantType
from aiter.fused_moe import fused_moe
# Optimized Configuration for MI355X
# Based on empirical performance tuning
OPTIMIZED_CONFIG = {
"BLOCK_M": 256,
"BLOCK_N": 128,
"BLOCK_K": 128,
"num_warps": 16,
"num_stages": 4,
"expert_schedule": "balanced",
"expert_chunk_size": 64,
"weight_layout": "shuffled",
"use_smem_cache": True,
"cache_size_hint": 0,
"quant_granularity": "per_1x32",
"scale_apply_strategy": "immediate",
"batch_strategy": "adaptive",
"max_batch_size": 512,
"shuffle_pattern": "interleaved",
"shuffle_block_size": 128,
}
def custom_kernel(data: input_t) -> output_t:
"""
Optimized MOE MXFP4 kernel for AMD MI355X.
Key optimizations:
- Large BLOCK_M (256) for better token throughput
- 16 warps for high GPU occupancy
- 4 pipeline stages for latency hiding
- Shuffled weight layout with interleaved pattern
- Adaptive batch scheduling
"""
(
hidden_states,
gate_up_weight,
down_weight,
gate_up_weight_scale,
down_weight_scale,
gate_up_weight_shuffled,
down_weight_shuffled,
gate_up_weight_scale_shuffled,
down_weight_scale_shuffled,
topk_weights,
topk_ids,
config,
) = data
hidden_pad = config["d_hidden_pad"] - config["d_hidden"]
intermediate_pad = config["d_expert_pad"] - config["d_expert"]
# Use shuffled weights for better memory coalescing
output = fused_moe(
hidden_states,
gate_up_weight_shuffled,
down_weight_shuffled,
topk_weights,
topk_ids,
expert_mask=None,
activation=ActivationType.Silu,
quant_type=QuantType.per_1x32,
doweight_stage1=False,
w1_scale=gate_up_weight_scale_shuffled,
w2_scale=down_weight_scale_shuffled,
a1_scale=None,
a2_scale=None,
hidden_pad=hidden_pad,
intermediate_pad=intermediate_pad,
)
return output
scrolls · 82 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