· kaynak dev.to (home feed)
NVIDIA'nın CUDA Rust'ı, GPU kernel'larını derleme zamanı bellek güvenliğiyle doğrudan PTX'e derliyor
NVIDIA'nın CUDA Rust'ı, geliştiricilerin Rust ile GPU kernel'ları yazıp bunları doğrudan PTX'e derlemesini sağlıyor; dev.to'daki bir yazıya göre bu, iki yol üzerinden gerçekleşiyor: SIMT düzeyinde kontrol için cuda-oxide ve tile tabanlı programlama için cutile-rs.

Ethan Vance'ın dev.to'daki makalesine göre NVIDIA, geliştiricilerin GPU kernel'larını doğrudan Rust'ta yazıp CUDA sürücülerinin donanımda çalıştırdığı sanal komut seti olan PTX'e yerel olarak derlemesini sağlamaya başladı. Eylül 2026'da duyurulan ve CUDA Rust olarak adlandırılan bu yetenek, daha önce Rust tabanlı GPU programlarını kernel kodunu C++ ya da başka bir dilde tutmaya zorlayan boşluğu kapatıyor: Rust'tan kernel başlatabiliyordunuz ama kernel'ların kendisi başka bir dilde yazılmak zorundaydı.
İki programlama yolu
Makale, CUDA'da halihazırda var olan yürütme modellerini yansıtan iki yol sunuyor ve seçim, bir iş yükünün ne kadar manuel donanım kontrolüne ihtiyaç duyduğuna bağlı.
- cuda-oxide (SIMT yolu): derlemeyi yakalayan ve kernel fonksiyonlarını Rust'ın MIR'i, Pliron IR çerçevesi ve LLVM IR üzerinden geçirdikten sonra PTX'e çeviren özel bir rustc codegen backend'i. Geliştirici thread indekslemesini ve bellek ayırmayı doğrudan yönetir. Rust'ın aynı anda yalnızca bir mutable referansın varabileceği kuralını binlerce paralel thread ile uzlaştırmak için, tek bir mutable borrow'u thread başına parçalara bölen bir DisjointSlice türü getiriliyor. Linux, Compute Capability 8.0 veya üzeri bir GPU, CUDA 12.x toolkit'i ve sabitlenmiş (pinned) bir nightly Rust toolchain gerektiriyor.
- cutile-rs (Tile yolu): hesaplamanın tekil skalarlar yerine tile'lar — verinin alt tensörleri — üzerinde çalıştığı daha üst düzey bir soyutlama. #[cutile::module] makrosu, kernel'in AST'sini host binary içine gömer ve bu, başlatma anında CUDA Tile IR üzerinden JIT ile derlenir. Tile derleyicisi — geliştirici değil — tile'ların fiziksel GPU'ya nasıl eşleneceğine karar verir; makaleye göre bu, kaynak kodu donanımdan bağımsız tutuyor. DisjointSlice yerine host tarafı, her tile bloğuna veri parçasının münhasır sahipliğini atayan bir .partition() metodu çağırıyor. Stable Rust 1.89 veya üzeriyle çalışıyor, CUDA 13.3 ve Compute Capability 8.0+ gerektiriyor; nightly toolchain ya da özel LLVM kurulumu gerekmiyor.
Borrow checker GPU'ya geliyor
Makaleye göre asıl çekici nokta, klasik GPU eşzamanlılık hatalarının kod çalışmadan önce yakalanması. C++ CUDA'da binlerce thread aynı buffer'lara garanti edilmemiş bir sırayla dokunabilir ve aliasing ya da veri yarışı hataları genellikle birim testlerden geçip ancak üretimde patlar. CUDA Rust'ta her iki yol da Rust'ın borrow kurallarını derleme zamanında uygular: girdiler shared reference olurken, bir çıktı buffer'ının tek bir yazara münhasır olması gerekir. Geliştirici bir çıktı buffer'ını kendi girdilerinden biri olarak geçirirse, derleme E0502 gibi bir borrow hatasıyla durur ve cihazda bir runtime hatası oluşmaz.
Kernel'lar Python sarmalayıcıları ya da soyutlama katmanları üzerinden geçmek yerine doğrudan PTX'e derlendiği için makale, sıfır runtime ek yükü iddiasında da bulunuyor ve GPU'nun hesap döngülerinin tamamının iş yükünün kendisine ayrıldığını söylüyor.
Hangi yol seçilmeli
Makalenin aktardığına göre NVIDIA'nın önerisi, yeni projelere Tile yolunda başlamak ve yalnızca bir iş yükü manuel thread indeksleme, yürütme grid'i üzerinde hassas kontrol ya da özel shared-memory yönetimi gerektirdiğinde SIMT'ye inmek. Şirket ayrıca iki yol arasında diller arası birlikte çalışabilirlik planlıyor, dolayısıyla ilk seçim bir kilitlenme değil.
Erken dönem araçlar ve altyapı ihtiyaçları
Makale, teknolojinin henüz erken alpha aşamasında olduğunu ve derleme hattının ağır olduğunu belirtip CUDA Rust iş yüklerini derlemenin ve kıyaslamak (benchmark) için önemli CPU kaynakları, kararlı işletim sistemi düzeyinde yapılandırmalar ve izole ortamlar gerektirdiğini savunuyor. Bu bölümü bağlamında okumaya değer: yazı aynı zamanda bare-metal dedicated GPU sunucuları için bir tanıtım niteliğinde, dolayısıyla altyapı iddiaları ticari bir çerçeve taşıyor.
Neden önemli
AI'nın sistemler katmanı — çıkarım motorları, serving altyapısı ve sürücüler — istikrarlı biçimde Rust'a kayıyor ve makaleye göre NVIDIA da bu kayışın parçası: Nova Linux sürücüsü Rust'ta yazılmış durumda ve NVTX zaten Rust bağlayıcılarıyla (binding) geliyor. Kernel'ın kendisi, bu dilde yazılamayan son bileşendi. CUDA Rust tanımlandığı gibi olgunlaşırsa, günümüzde üretimde GPU çökmeleri, sessiz veri bozulması ya da bellek yetersizliği arızaları olarak ortaya çıkan bir bütün hata sınıfı, C++'ı varsayılan yapan bare-metal performansı feda etmeden derleme zamanı hatalarına dönüşecek. Uyarı ise kaynak ve olgunlukla ilgili: yukarıdaki ayrıntılar alpha aşamasındaki bir toolchain'in tek bir dev.to yazısından geliyor ve CUDA 13.3 ile sabitlenmiş bir nightly derleyici gibi gereksinimler, arayüzün değişmeye devam edeceğini düşündürüyor.
- #rust
- #cuda
- #nvidia
- #gpu
- #memory-safety
İlgili yazılar
- LLM'lerin yazdığı Rust'a port edilmiş TypeScript 7 derleyicisi tüm upstream testleri geçti ve Go'dan daha hızlı
- Rust Miri, CI sırlarını target/ dizinine yazdı ve GitHub Actions cache'leri bunları pull request'lere teslim etti
- AlphaCode: MIT Lisanslı Rust Yapay Zeka Kodlama Ajanı Claude, GPT, Gemini ve DeepSeek'i Kapsıyor