9 puan yazan GN⁺ 2026-03-12 | 1 yorum | WhatsApp'ta paylaş
  • Karpathy'nin Autoresearch yaklaşımını GPU çekirdek optimizasyonuna uygular
  • PyTorch modeli girdi olarak verildiğinde Triton veya CUDA C++ çekirdeklerini otomatik optimize eden bir GPU çekirdeği otomatik araştırma aracı
  • Modelin darboğaz çekirdeklerini profilleyen, çıkaran, optimize eden ve doğrulayan tam otomatik bir boru hattı sunar
  • Amdahl yasası tabanlı orkestrasyon ile öncelikleri ayarlar; her deney yaklaşık 90 saniye sürer ve gece boyunca yüzlerce kez yinelenebilir
  • KernelBench ile entegre çalışarak 250'den fazla problem için 50 ila 300 tekrar deney yürütür; tek seferlik üretime kıyasla daha sistematik bir arama sağlar
  • Triton ve CUDA C++ çift arka ucu, önce doğruluk doğrulaması ve tek dosya değiştirme yapısı ile verimli ve yeniden üretilebilir çekirdek optimizasyonunu destekler

Nasıl çalışır

  • AutoKernel, bir PyTorch modelini girdi olarak alır ve şu adımları uygular
    • Profilleme ile GPU darboğaz çekirdeklerini belirler
    • Bunları çıkararak bağımsız Triton veya CUDA C++ çekirdeklerine ayırır
    • Otomatik optimizasyon döngüsü üzerinden düzenleme, benchmark alma, koruma/geri alma işlemlerini tekrarlar
    • Doğruluk doğrulamasından sonra toplam hızlanmayı raporlar
  • program.md içinde yer alan yönergeler temelinde kernel.py dosyasını değiştirir; bench.py üzerinden 5 aşamalı doğruluk kontrolü ve roofline analizi gerçekleştirir
  • Her deney yaklaşık 90 saniye sürer; saatte yaklaşık 40, bir gecede yaklaşık 320 deney yapılabilir

Çalıştırma ve bileşenler

  • Gerekli ortam: NVIDIA GPU (H100/A100/RTX 4090), Python 3.10+, uv paketi
  • Başlıca betikler
    • profile.py: GPU süresine göre çekirdekleri sıralar
    • extract.py: en üst düzey darboğaz çekirdeklerini çıkarır
    • bench.py: 5 aşamalı doğruluk ve performans benchmark'ı
    • orchestrate.py: Amdahl yasası tabanlı çoklu çekirdek zamanlaması
    • verify.py: tüm model doğrulaması ve hızlanma raporu
  • program.md; 6 aşamalı optimizasyon stratejisi, çakışma yönetimi ve karar verme çerçevesi içerir; böylece uzun süreli otomatik çalıştırma mümkündür

Desteklenen çekirdekler ve örnek modeller

  • 9 çekirdek türü desteklenir: matmul, softmax, layernorm, rmsnorm, flash_attention, fused_mlp, cross_entropy, rotary_embedding, reduce
  • Her çekirdek için PyTorch tabanlı başvuru uygulaması (reference.py) ve başlangıç Triton/CUDA sürümleri (kernels/, kernels/cuda/) bulunur
  • Örnek modeller: GPT-2, LLaMA (7B dahil), BERT-base, kullanıcı tanımlı modeller
  • HuggingFace modelleri de uv sync --extra models ile entegre edilebilir

KernelBench entegrasyonu

  • KernelBench (Stanford Scaling Intelligence Lab) ile entegredir ve yapay zeka tarafından üretilen GPU çekirdekleri için standart benchmark sağlar
  • AutoKernel, her problem için 50 ila 300 tekrar deney ile optimizasyon alanını sistematik biçimde araştırır
  • Başlıca araçlar
    • bridge.py: problemleri yükler ve başlangıç çekirdeğini oluşturur
    • bench_kb.py: doğruluk ve performans değerlendirmesi
    • scorer.py: tüm seviye puanını hesaplar
    • program_kb.md: KernelBench'e özel ajan yönergeleri

HuggingFace Hub'a dışa aktarma

  • Optimize edilmiş çekirdekler HuggingFace Hub'a aktarılabilir ve get_kernel() ile kolayca çağrılabilir
  • export_hf.py, CUDA çekirdeklerinin dışa aktarımını ve yüklenmesini destekler

Tasarım ilkeleri

  • Triton + CUDA C++ çift arka ucu: Triton hızlı iterasyon, CUDA ise en yüksek performansı sağlar
  • Önce doğruluk: Sonuç PyTorch ile eşleşmezse anında geri alınır
  • Amdahl yasası tabanlı orkestrasyon ile toplam performansa katkısına göre öncelik belirlenir
  • Tek dosya değiştirme yapısı (kernel.py) sayesinde değişiklik takibi ve geri yükleme kolaydır
  • TSV günlükleri (results.tsv) ile deney sonuçları sade ve okunabilir biçimde kaydedilir

Sonuç kayıt biçimi

  • results.tsv içinde her deneyin numarası, çekirdek türü, işlem hacmi (TFLOPS), gecikme, GPU tepe değerine oran, PyTorch'a göre hızlanma, doğruluk, VRAM kullanımı ve açıklaması kaydedilir

Proje arka planı

  • Andrej Karpathy'nin autoresearch kavramından ilham alarak, LLM araştırmaları için otonom yapay zeka ajanı yapısını GPU çekirdek optimizasyonuna uygular
  • KernelBench entegrasyonu Stanford Scaling Intelligence Lab'in araştırmasına dayanır; AutoKernel tek seferlik üretim yerine yinelenen optimizasyon uygular
  • Proje, RightNow AI'nin Forge ekibi tarafından geliştirildi ve MIT lisansı ile yayımlandı

1 yorum

 
GN⁺ 2026-03-12
Hacker News görüşleri
  • Gerçekten harika bir proje
    Ben de son birkaç haftadır benzer bir şey yapıyordum ama çok daha genel amaçlı ve aşırı tasarlanmış bir sürümdü
    Triton’a ve yalnızca belirli çekirdeklere odaklanan bu yaklaşım hem basit hem de verimli
    Yalnız ilerleme grafiği kafa karıştırıcı. 4096x4096x4096 fp16 matmul benchmark’ı gibi görünüyor ama cuBLAS’a kıyasla 1.31 kat iyileşme denirken sadece 187 TFLOPS, yani %18.9 tepe kullanım oranı gösteriliyor
    cuBLAS tepeye çok daha yakın performans veriyor; muhtemelen CPU overhead’i ya da başka bir darboğaz vardır
    Benchmark yapmak gerçekten zor ama önümüzdeki 6 ay boyunca bu alanın aşırı umut verici olduğunu düşünüyorum

  • Eğer bu, llama.cpp gibi yerlerde çalışır hale gelirse çok daha büyük kazanım olabilir
    Çok çeşitli kuantizasyon çekirdekleri ve donanım yapılandırmaları var, ayrıca çok sayıda bireysel kullanıcı bulunduğu için verimlilik artışı büyük olur
    Bu projenin oraya katkı verenlerden biri olması güzel olurdu

    • Bu doğru bir değerlendirme
      llama.cpp içinde Q4_K_M, Q5_K_S, Q8_0 gibi çeşitli elle ayarlanmış CUDA çekirdekleri var ve her biri farklı donanım profillerini hedefliyor
      GPU bazında otomatik optimizasyon mümkün olursa bu çok büyük bir değişim olur
      Çünkü şu anda aynı kuantizasyon formatında bile RTX 3090 ile 5070 Ti arasında büyük performans farkı var
      llama.cpp gibi donanım çeşitliliğinin yüksek olduğu ortamlar, otomatik çekirdek aramasının en çok parlayacağı yerlerdir
  • Harika!
    Ben de aynı özelliği Apple Silicon için ekliyorum
    autoresearch-everywhere projemde autoresearch’ü ciddi bir araca dönüştürme işi üzerinde çalışıyorum

  • Bir tuhaflık var
    4kx4kx4k fp16 GEMM’e bakınca cutlass yaklaşık 3 kat daha hızlı

  • Acaba TVM’in Ansor gibi otomatik schedule etme yaklaşımlarıyla karşılaştırmalı benchmark yaptılar mı diye merak ediyorum

  • Bu daha başlangıç
    Bu arada Google benzer bir şeyi zaten iki nesil önceki modelinde yapmıştı
    Mayıs 2025 tarihli AlphaEvolve blog yazısında, büyük matris çarpımını daha küçük alt problemlere bölme yöntemiyle Gemini mimarisinin temel çekirdeğini %23 hızlandırıp eğitim süresini %1 azalttıklarını duyurmuşlardı
    Artık bu tür teknolojilerin “evde de” mümkün olduğu bir döneme girildi
    Özellikle son dönemde RL tabanlı eğitim arttığı için, çıkarım hızındaki artış doğrudan eğitim hızına da yansıyacaktır

  • Swift veya Rust gibi açık kaynak dil çalışma zamanlarına da bu tür optimizasyonların girip performansın son damlasına kadar sıkılacağı günün ne zaman geleceğini merak ediyorum