5 puan yazan GN⁺ 2026-02-18 | 1 yorum | WhatsApp'ta paylaş
  • CUDA C kaynaklarını (.cu) doğrudan AMD RDNA3 (GFX11) için makine koduna dönüştüren bağımsız açık kaynaklı bir derleyici
  • LLVM veya HIP katmanı olmadan, kendi sözcüksel analizcisi, ayrıştırıcısı ve ara gösterimi (BIR) üzerinden ELF .hsaco ikilileri üretir
  • Yaklaşık 15.000 satır C99 koduyla yazılmıştır ve tek bir make komutuyla derlenebilir
  • CUDA'nın iş parçacığı yerleşik değişkenleri, paylaşımlı bellek, atomik işlemler, warp işlemleri, cooperative groups gibi temel özelliklerini destekler
  • Apache 2.0 lisansı ile yayımlanmıştır; gelecekte Tenstorrent, Intel Arc, RISC-V gibi ek mimarilere genişlemeyi hedefler

BarraCUDA'ya genel bakış

  • BarraCUDA, AMD GPU'lar için bir CUDA derleyicisidir ve .cu dosyalarını GFX11 makine koduna dönüştürür
    • Çıktı, AMD GPU'larda çalıştırılabilen ELF .hsaco ikilisi biçimindedir
    • LLVM bağımlılığı olmadan tamamen bağımsız çalışır
  • Tüm kod tabanı C99 ile yazılmış yaklaşık 15.000 satırdan oluşur ve tek bir Makefile ile derlenebilir
  • Proje, Yeni Zelanda merkezli bir geliştirici tarafından kişisel olarak geliştirilmektedir

Nasıl çalışır

  • Girilen .cu dosyası önişleme → sözcüksel analiz → ayrıştırma → anlamsal analiz → BIR üretimi → komut seçimi → yazmaç tahsisi → ikili kodlama → ELF çıktısı sırasıyla işlenir
  • BIR (BarraCUDA IR), SSA biçiminde bir iç gösterimdir ve mimariden bağımsız tasarlanmıştır
  • Tüm kodlamalar llvm-objdump ile doğrulanmıştır ve 0 decode hatası elde edilmiştir

Desteklenen özellikler

  • CUDA çekirdek sözdizimi: __global__, __device__, __host__, threadIdx, blockIdx vb.
  • CUDA özellikleri: __shared__ bellek, __syncthreads(), atomik işlemler, warp shuffle/vote, vektör türleri, half hassasiyeti, cooperative groups vb.
  • Derleyici özellikleri: tam C önişlemcisi, hata kurtarma, kaynak konumu takibi, struct değer geçirme desteği

Henüz desteklenmeyenler

  • Tek başına unsigned kullanımı, bileşik atama operatörleri (+=, -= vb.), const, __constant__ bellek, 2D paylaşımlı diziler, texture/surface, dinamik paralel yürütme henüz uygulanmamıştır
  • Çoklu çeviri birimi ve host kodu üretimi desteklenmez

Testler ve yol haritası

  • 14 test dosyası, 35'ten fazla kernel ve yaklaşık 27 KB makine kodu ile doğrulanmıştır
  • Kısa vadeli hedef: sözdizimini geliştirmek ve gerçek kullanım .cu dosyalarıyla uyumluluğu artırmak
  • Orta vadeli hedef: komut zamanlama, yazmaç tahsisi iyileştirmeleri, sabit katlama, döngü değişmezi kod taşıma gibi optimizasyonlar
  • Uzun vadeli hedef: Tenstorrent, Intel Arc, RISC-V Vector Extension gibi yeni backend'ler eklemek

Lisans

  • Apache 2.0 lisansı

1 yorum

 
GN⁺ 2026-02-18
Hacker News yorumları
  • Projenin README’sindeki Yeni Zelanda usulü mizah dikkat çekiciydi
    LLVM’ye bağımlı olmadan kendi instruction encoding’ini uygulaması taze bir yaklaşım
    Böyle bir projeye başlamak için muazzam düzeyde düşük seviye bilgi gerektiğini gösteriyor
    AMD tarafında CUDA desteğinin olmaması sık sık NVIDIA tekelinin bahanesi oluyor; bu tür girişimler pazar dengesine yardımcı olabilir gibi görünüyor

    • Asıl metinde kastedilenin LLM değil LLVM olduğu belirtildi
    • Bu projede de kesinlikle yapay zeka ile ilgili katkılar olduğunu düşünüyorum. Ama doğru kullanılırsa yapay zeka harika bir araç olabilir
    • “Okyanusya usulü mizah” ifadesi Beached Whale animasyonunu hatırlattı
    • Kaynak koddaki “/* 80 keywords walk into a sorted bar */” yorumu zekiceydi (lexer.c bağlantısı)
    • “AI slope” ifadesini görünce, bunun bilimsel adının aslında gradient descent olduğu yönünde bir espri eklendi
  • İlk dış issue’yu geohot’un açmış olmasına şaşırdım (issue bağlantısı)
    Böyle insanların güçlerini birleştirip NVIDIA’nın GPU pazarındaki tekelini kırdığını görmek isterdim

  • NVIDIA GPU’larda yapay zeka inference iş yükü çalıştırmak maliyetli
    Bu tür projeler, startup’ların karşılayabileceği alternatifler oluşturması açısından önemli
    conv2d ve attention gibi işlemlerde performansın nasıl olduğunu merak ediyorum

  • “# It’s C99. It builds with gcc. There are no dependencies.”
    Tek satırlık make ile biten bu sadelik gerçekten çok güzel

    • Bu kadar sade ve sezgisel bir yaklaşımı gerçekten çok seviyorum
  • Gönderi başlığındaki büyük harf kullanımını görünce, şirketin GPU farm’ına neden “barracuda” dendiğini ancak şimdi fark ettim. Oldukça komikti

  • Eğer tutkulu geliştiriciler AMD’nin yapamadığını başarırsa, bu hem komik hem de üzücü olur

    • AMD’nin CUDA desteklememesi “yapamadığı” için değil, stratejik bir tercih olduğu düşünülüyor
      Çünkü CUDA’yı desteklemek sonuçta NVIDIA ekosistemini daha da güçlendirirdi
      CUDA’ya alternatif isteniyorsa ZLUDA daha pratik olabilir
    • Açık kaynak, hissedar baskısına maruz kalmadığı için sık sık ticari çözümlerden daha iyi sonuçlar üretiyor
      Ama büyüdüğünde sonunda büyük şirketler tarafından satın alınıp ortadan kaybolması üzücü
      Linus ve git örneğinde olduğu gibi, irade ve bilgi varsa duvarlar aşılabilir
    • AMD’nin “yapamadığı” değil, “yapmadığı” birçok durum var
      Örneğin FSR4’ün eski kartlarda resmî olarak desteklenmemesi de buna bir örnek
    • Sonunda “bizde HIP var” diye şaka yapıldı
  • Eski AMD mimarilerine (GFX1010 vb.) kadar destek verilip verilemeyeceğini merak ettim

    • Zor ama gayet mümkün olduğunu düşünüyorum. Eskiden ROCm berbattı ve kendim patch’liyordum, ama şimdi çok daha iyi
    • Ben de RX5700m kullandığım için eski AMD desteği üzerinde bizzat çalışıyorum
      ISA dokümanlarını okuyup binary encoding’i ayarlıyorum
      Ama bu alan, LLM’lerin pek iyi olmadığı bir alan, o yüzden doğrudan anlayıp düzeltmek gerekiyor
  • CUDA C++ destekliyor; Clang/LLVM olmadan saf C ile gitmek fazla kısıtlayıcı olmaz mı diye merak ettim

    • Aslında şu anda CUDA’nın kullandığı C++ özelliklerinin sadece bir kısmı parse ediliyor. Derleyicinin kendisi C99 ile yazılmış
    • Testlere bakılırsa template gibi bazı C++ özelliklerini de işleyebiliyor gibi görünüyor
    • LLVM’nin AMD GX11 desteği çok sınırlı, bu yüzden ona bağımlı olmamak daha iyi
    • Gerçek geliştiriciler kodu yapay zekaya bağımlı olmadan yazar
      Bugünlerde açık kaynak dünyası yapay zeka tarafından üretilmiş PR’larla dolu; bu projenin böyle bir bağımlılıktan kaçınması etkileyici
  • AMD’nin böyle bir projeye resmî sponsorluk vermesi gerektiğini düşünüyorum
    Dünyanın NVIDIA tekelinden çıkması gerekiyor

  • “OpenCL artık bitti mi?” diye düşündüm
    Pek emin değilim ama bu proje yine de etkileyici

    • CUDA çok daha fazla pazar payı kazandı, OpenCL’nin temeli ise zayıf
      Eskiden Apple da destekliyordu ama artık desteklemiyor gibi görünüyor
      Unix ile Windows arasındaki ilişki gibi; teknik olarak iyi olsa da pazar tek bir tarafa kaydı