GPUMODE/kernelbot-data
KernelBot Competition Data This dataset contains GPU kernel submissions from the KernelBot competition platform. Submissions are optimized GPU kernels written for specific hardware targets. Data Files AMD MI300 Submissions File Description submissions.parquet All AMD competition submissions successful_submissions.parquet AMD submissions that passed correctness tests deduplicated_submissions.parquet AMD submissions deduplicated by… See the full description on the dataset page: https://huggingface.co/datasets/GPUMODE/kernelbot-data.
501.2k
1#!/usr/bin/env python32"""3Query submissions by user/problem or by submission ID.4 5Usage:6 python query_submissions.py # Show all submission IDs for gau.nernst on gemv7 python query_submissions.py --id 187476 # Show code for specific submission ID8 python query_submissions.py --user gau.nernst --problem nvfp4_gemm9"""10 11import argparse12import pandas as pd13from pathlib import Path14 15df = pd.read_parquet(Path(__file__).parent.parent.parent / 'nvidia_nvfp4_submissions.parquet')16 17parser = argparse.ArgumentParser()18parser.add_argument('--id', type=int, help='Submission ID to query')19parser.add_argument('--user', default='gau.nernst', help='Username to filter')20parser.add_argument('--problem', default='nvfp4_gemv', help='Problem name to filter')21args = parser.parse_args()22 23if args.id:24 # Query specific submission25 sub = df[df['submission_id'] == args.id]26 if sub.empty:27 print(f"Submission {args.id} not found")28 else:29 row = sub.iloc[0]30 score_us = row['score'] * 1_000_000 if pd.notna(row['score']) else 'N/A'31 print(f"ID: {row['submission_id']}")32 print(f"User: {row['user_name']}")33 print(f"Problem: {row['problem_name']}")34 print(f"Score: {score_us:.2f} µs" if isinstance(score_us, float) else f"Score: {score_us}")35 print(f"\n=== CODE ===\n")36 print(row['code'])37else:38 # List all submission IDs for user/problem39 subs = df[(df['user_name'] == args.user) & (df['problem_name'] == args.problem)]40 subs = subs.sort_values('score')41 42 ids = subs['submission_id'].tolist()43 scores = [(row['submission_id'], row['score'] * 1_000_000 if pd.notna(row['score']) else None)44 for _, row in subs.iterrows()]45 46 print(f"User: {args.user} | Problem: {args.problem} | Count: {len(ids)}")47 print(f"\nSubmission IDs (sorted by score, fastest first):")48 print(ids)49 50 # Get fastest/slowest with valid scores51 valid_scores = [(sid, sc) for sid, sc in scores if sc is not None]52 if valid_scores:53 print(f"\nFastest: {valid_scores[0][0]} ({valid_scores[0][1]:.2f} µs)")54 print(f"Slowest: {valid_scores[-1][0]} ({valid_scores[-1][1]:.2f} µs)")55 print(f"\nQuery a specific submission: python query_submissions.py --id {valid_scores[0][0]}")56 else:57 print("\nNo submissions with scores found")58 