Skip to content

Commit bc10edd

Browse files
authored
Create kernelbench.py
Integrated KernelBench level1/2/3/ dataset (verified by SakanaAI) into the Genesys verification pipeline
1 parent 0744c4b commit bc10edd

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

src/genesys/verifiers/kernelbench.py

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
import json
2+
from datasets import load_dataset
3+
import pandas as pd
4+
5+
def load_sakana_dataset(level: str = "level_1") -> pd.DataFrame:
6+
dataset = load_dataset("SakanaAI/AI-CUDA-Engineer-Archive")
7+
df = dataset[level].to_pandas()
8+
return df
9+
10+
def transform_row_to_genesys_record(row: pd.Series) -> dict:
11+
"""
12+
Convert a single row from the Sakana dataset into a Genesys record.
13+
This maps KernelBench fields into the Genesys schema.
14+
"""
15+
record = {
16+
"problem_id": f"{row['Task_ID']}_{row['Kernel_Name']}",
17+
"source": "SakanaAI/AI-CUDA-Engineer-Archive",
18+
"task_type": "kernelbench",
19+
"prompt": "",
20+
"gold_standard_solution": None,
21+
"verification_info": {
22+
"Correct": row["Correct"],
23+
"CUDA_Speedup_Native": row["CUDA_Speedup_Native"],
24+
"CUDA_Speedup_Compile": row["CUDA_Speedup_Compile"],
25+
"Error": row["Error"],
26+
"Max_Diff": row["Max_Diff"],
27+
"NCU_Profile": row["NCU_Profile"],
28+
"Torch_Profile": row["Torch_Profile"],
29+
"Clang_Tidy": row["Clang_Tidy"],
30+
},
31+
"metadata": {
32+
"Op_Name": row["Op_Name"],
33+
"Level_ID": row["Level_ID"],
34+
"Task_ID": row["Task_ID"],
35+
"Kernel_Name": row["Kernel_Name"],
36+
"CUDA_Runtime": row["CUDA_Runtime"],
37+
"PyTorch_Native_Runtime": row["PyTorch_Native_Runtime"],
38+
"PyTorch_Compile_Runtime": row["PyTorch_Compile_Runtime"],
39+
},
40+
"llm_response": row["CUDA_Code"],
41+
"response_id": f"{row['Task_ID']}_{row['Kernel_Name']}",
42+
"model_name": "Sakana-AI",
43+
"generation_config": {},
44+
"machine_info": {}
45+
}
46+
return record
47+
48+
def build_genesys_records(level: str = "level_1") -> list:
49+
df = load_sakana_dataset(level)
50+
records = df.apply(transform_row_to_genesys_record, axis=1).tolist()
51+
return records
52+
53+
def save_records_to_jsonl(records: list, filename: str):
54+
with open(filename, "w") as f:
55+
for record in records:
56+
f.write(json.dumps(record) + "\n")
57+
58+
if __name__ == "__main__":
59+
records = build_genesys_records("level_1")
60+
print(f"Loaded {len(records)} records from level_1.")
61+
save_records_to_jsonl(records, "genesys_kernelbench_level1.jsonl")
62+
print("Saved records to genesys_kernelbench_level1.jsonl")

0 commit comments

Comments
 (0)