- Menerapkan Autoresearch dari Karpathy pada optimasi kernel GPU
- Alat riset otomatis kernel GPU yang secara otomatis mengoptimalkan kernel Triton atau CUDA C++ dengan menerima model PyTorch sebagai input
- Menyediakan pipeline otomatis penuh untuk memprofilkan, mengekstrak, mengoptimalkan, dan memverifikasi kernel bottleneck pada model
- Menyesuaikan prioritas dengan orkestrasi berbasis Hukum Amdahl, dan tiap eksperimen memakan waktu sekitar 90 detik sehingga dapat diulang ratusan kali sepanjang malam
- Terintegrasi dengan KernelBench untuk menjalankan 50–300 eksperimen berulang pada lebih dari 250 masalah, sehingga memungkinkan eksplorasi yang sistematis dibanding generasi satu kali
- Mendukung optimasi kernel yang efisien dan dapat direproduksi dengan backend ganda Triton dan CUDA C++, verifikasi yang mengutamakan akurasi, serta struktur modifikasi satu berkas
Cara kerja
- AutoKernel menerima model PyTorch sebagai input dan menjalankan langkah berikut
- Mengidentifikasi kernel bottleneck GPU melalui profiling
- Mengekstraknya dan memisahkannya menjadi kernel Triton atau CUDA C++ yang berdiri sendiri
- Mengulangi modifikasi, benchmark, serta mempertahankan/mengembalikan perubahan melalui loop optimasi otomatis
- Setelah verifikasi akurasi, melaporkan peningkatan kecepatan keseluruhan
- Dengan panduan yang ada di
program.md, sistem memodifikasi kernel.py, lalu menjalankan pemeriksaan akurasi 5 tahap dan analisis roofline melalui bench.py
- Setiap eksperimen memakan waktu sekitar 90 detik, sekitar 40 kali per jam, atau sekitar 320 eksperimen dalam semalam
Eksekusi dan komponen
- Lingkungan wajib: GPU NVIDIA (H100/A100/RTX 4090), Python 3.10+, paket uv
- Susunan skrip utama
profile.py: memberi peringkat kernel berdasarkan waktu GPU
extract.py: mengekstrak kernel bottleneck teratas
bench.py: benchmark akurasi 5 tahap dan performa
orchestrate.py: penjadwalan multi-kernel berbasis Hukum Amdahl
verify.py: verifikasi model penuh dan pelaporan peningkatan kecepatan
program.md mencakup strategi optimasi 6 tahap, penanganan konflik, dan framework pengambilan keputusan sehingga memungkinkan eksekusi otomatis jangka panjang
Kernel yang didukung dan model contoh
- Mendukung 9 jenis kernel: matmul, softmax, layernorm, rmsnorm, flash_attention, fused_mlp, cross_entropy, rotary_embedding, reduce
- Setiap kernel mencakup implementasi acuan berbasis PyTorch (
reference.py) serta versi awal Triton/CUDA (kernels/, kernels/cuda/)
- Model contoh: GPT-2, LLaMA (termasuk 7B), BERT-base, dan model kustom
- Model HuggingFace juga dapat diintegrasikan dengan
uv sync --extra models
Integrasi KernelBench
- Terintegrasi dengan KernelBench (Stanford Scaling Intelligence Lab) untuk menjalankan benchmark standar kernel GPU yang dihasilkan AI
- AutoKernel secara sistematis mengeksplorasi ruang optimasi melalui 50–300 eksperimen berulang per masalah
- Alat utama
bridge.py: memuat masalah dan membuat kernel awal
bench_kb.py: evaluasi akurasi dan performa
scorer.py: menghitung skor total per level
program_kb.md: panduan agen khusus KernelBench
Ekspor ke HuggingFace Hub
- Kernel yang telah dioptimalkan dapat diekspor ke HuggingFace Hub, dan dimuat dengan mudah melalui
get_kernel()
export_hf.py mendukung ekspor dan unggah kernel CUDA
Prinsip desain
- Backend ganda Triton + CUDA C++: Triton untuk iterasi cepat, CUDA untuk performa tertinggi
- Akurasi sebagai prioritas utama: jika hasil tidak cocok dengan output PyTorch, perubahan langsung dikembalikan
- Menentukan prioritas berdasarkan kontribusi performa keseluruhan dengan orkestrasi berbasis Hukum Amdahl
- Struktur modifikasi satu berkas (
kernel.py) memudahkan pelacakan perubahan dan pemulihan
- Log TSV (
results.tsv) mencatat hasil eksperimen secara sederhana dan mudah dibaca
Format pencatatan hasil
results.tsv mencatat nomor, jenis kernel, throughput (TFLOPS), latensi, rasio terhadap puncak GPU, peningkatan kecepatan dibanding PyTorch, akurasi, penggunaan VRAM, dan deskripsi untuk setiap eksperimen
Latar belakang proyek
- Terinspirasi oleh konsep autoresearch Andrej Karpathy, yang menerapkan struktur agen AI otonom untuk riset LLM ke optimasi kernel GPU
- Integrasi KernelBench didasarkan pada riset Stanford Scaling Intelligence Lab, dan AutoKernel melakukan optimasi berulang alih-alih generasi satu kali
- Proyek ini dikembangkan oleh tim Forge dari RightNow AI dan dirilis di bawah lisensi MIT
1 komentar
Komentar Hacker News
Proyek yang sangat keren
Saya juga membuat sesuatu yang mirip selama beberapa minggu terakhir, tetapi versinya jauh lebih generik dan overengineered
Pendekatan yang fokus hanya pada Triton dan kernel tertentu ini sederhana namun efisien
Namun, grafik progresnya membingungkan. Ini terlihat seperti benchmark matmul fp16 4096x4096x4096, tetapi meskipun dikatakan ada peningkatan 1,31x dibanding cuBLAS, yang ditunjukkan hanya 187 TFLOPS, yaitu 18,9% utilisasi puncak
cuBLAS biasanya menghasilkan performa yang jauh lebih dekat ke puncak, jadi mungkin ada overhead CPU atau bottleneck lain
Benchmark memang sangat sulit, tetapi saya rasa bidang ini akan sangat menjanjikan dalam 6 bulan ke depan
Jika ini bisa bekerja di tempat seperti llama.cpp, sepertinya manfaatnya akan jauh lebih besar
Ada berbagai kernel kuantisasi dan konfigurasi hardware, serta banyak pengguna individual, jadi potensi peningkatan efisiensinya akan besar
Akan bagus jika proyek ini ikut berkontribusi ke sana
llama.cpp memiliki berbagai kernel CUDA yang dituning secara manual seperti Q4_K_M, Q5_K_S, dan Q8_0, masing-masing menargetkan profil hardware yang berbeda
Jika optimasi otomatis per-GPU memungkinkan, dampaknya akan sangat besar
Saat ini, bahkan untuk format kuantisasi yang sama, perbedaan performa antara RTX 3090 dan 5070 Ti sangat besar
Lingkungan seperti llama.cpp yang memiliki keragaman hardware tinggi memang tempat di mana pencarian kernel otomatis akan paling bersinar
Keren!
Saya sedang menambahkan fungsi yang sama untuk Apple Silicon
Di proyek saya autoresearch-everywhere, saya sedang mengerjakan agar autoresearch menjadi alat yang serius
Ada yang terasa aneh
Untuk GEMM fp16 4kx4kx4k, cutlass sekitar 3x lebih cepat
Saya penasaran apakah mereka sudah melakukan benchmark perbandingan dengan penjadwalan otomatis seperti Ansor milik TVM
Ini baru permulaan
Sebagai referensi, Google sudah melakukan hal serupa pada model dua generasi yang lalu
Dalam posting blog Mei 2025 AlphaEvolve, mereka mengumumkan telah mempercepat kernel inti arsitektur Gemini sebesar 23% dan mengurangi waktu training sebesar 1% dengan cara membagi perkalian matriks besar menjadi submasalah yang lebih kecil
Sekarang kita sudah memasuki era di mana teknologi seperti ini bisa dilakukan “di rumah”
Terutama karena belakangan ini semakin banyak training berbasis RL, peningkatan kecepatan inferensi akan langsung berujung pada peningkatan kecepatan training
Saya penasaran kapan optimasi seperti ini akan masuk juga ke runtime bahasa open-source seperti Swift atau Rust, sehingga performa benar-benar bisa diperas sampai tetes terakhir