NVIDIA CUDA-Oxide 0.2.0

Numărul a fost publicat CUDA-Oxide 0.2.0 — un compilator experimental NVIDIA Labs care vă permite să scrieți cod pentru nuclee CUDA pe rugină pură și compilează-le direct în PTXProiectul folosește propriul backend pentru rustc și oferă suport pentru model. SIMT și este construit folosind comanda cargo oxide, codul gazdă și cel al dispozitivului putând să se afle în același arbore sursă. Lansarea a avut loc Iunie 5 2026 ani și a fost numită prima „lansare comunitară”: după deschiderea ramurii 0.1.0, proiectul a acceptat 37 de solicitări de extragere (pull request) de la 23 de participanți.

Principala modificare din CUDA-Oxide 0.2.0 este trecerea la un executabil autonom. Artefactele GPU generate - PTX, NVVM-IR, LTOIR și cubin - pot fi acum încorporate direct în binarul gazdă prin intermediul noului format oxide-artifacts. Aceasta înseamnă că un program Rust cu nuclee CUDA nu mai trebuie să transporte fișiere .ptx separate, iar nucleele sunt încărcate direct din executabilul care rulează.

Principalele modificări:

  • Integrarea nucleelor ​​GPU în fișierul binar gazdă. Noul mecanism #[cuda_module] generează o interfață de lansare a kernelului tipizată și ascunde încărcarea modulelor de nivel scăzut. Pentru dezvoltator, acest lucru se apropie mai mult de API-ul Rust standard: slice-urile și bufferele sunt mapate la bufferele CUDA, iar lansarea este mai puternic tipizată.

  • Suport pentru memorie persistentă CUDA. Adăugate #[constantă] și Constantă cu generarea de setter-uri de gazdă. La nivel de PTX, aceasta corespunde cu .const și spațiul de adrese 4. Acest lucru este important pentru datele care trebuie să fie accesibile kernel-urilor ca valori constante pe dispozitiv.

  • Mai multe calcule matematice despre dispozitive. `f32::max`, `f32::min`, precum și `atan` și `atan2` pentru `f32` și `f64`, au fost adăugate prin intermediul `libdevice`. Aceasta extinde setul de nuclee de calcul din lumea reală care pot fi exprimate fără a recurge la C++/CUDA.

  • Corecții de compilare greșită silențioasă. Mai multe compilări greșite silențioase duc acum la o eroare în timpul construirii în loc să genereze un PTX incorect (lipsă acumulare wgmma, destructori excluși, operatori înghițiți).

  • Runtime de gazdă îmbunătățit. A fost adăugat un contract de securitate DeviceCopy pentru transferul de date către dispozitiv, împreună cu buffere gazdă fixate cu transferuri ordonate în flux, redirecționare asincronă a erorilor și acces de nivel scăzut la CUmodule brut pentru integrare cu API-ul driverului CUDA. De asemenea, a fost remediată o nepotrivire a alocatorului DeviceBuffer și a fost adăugată compatibilitatea cu CUDA 12.8/13 și aarch64.

  • Integrare cu CUDA Tile. Lansarea adaugă un exemplu de interacțiune cuTile ↔ SIMT: un nucleu CUDA-Oxide Tile și un nucleu SIMT PTX pot rula pe un singur flux CUDA cu tensori de dispozitiv partajați. Acest lucru demonstrează locul CUDA-Oxide în strategia mai amplă Rust/CUDA a NVIDIA: proiectul nu înlocuiește Tile DSL, ci mai degrabă elimină decalajul dintre programarea SIMT explicită în Rust.

  • Convergență cu Pliron/LLVM din amonte. Modulul intern dialect-llvm a fost înlocuit cu modulul extern pliron-llvm din comunitatea pliron-org, iar componenta locală a fost redenumită llvm-export. Acest lucru reduce ramificația infrastructurii proiectului și o aliniază mai strâns cu dezvoltarea din amonte.

  • Simplificarea asamblării și a intrării într-un proiect. Cargo Oxide respectă acum RUSTFLAGS, CUDA_HOME, compilatorul gazdă nvcc, poate găsi llc din lanțul de instrumente Rust, detectează automat GPU-ul țintă și resetează memoria cache backend învechită după o actualizare. A fost adăugat devcontainer și Nix flake pentru un mediu de dezvoltare reproductibil.

CUDA-Oxide este încă o versiune alfa timpurie: proiectul este distribuit prin git, nu este încă publicat pe crates.io și suportă doar LinuxFișierul README avertizează explicit că API-ul s-ar putea defecta și că sunt așteptate erori și funcții neterminate.

Există o nuanță în ceea ce privește licențiereapartea principală a spațiului de lucru este distribuită sub Licență Apache 2.0, dar legăturile cuda crate folosesc Licență software NVIDIAPrin urmare, CUDA-Oxide nu poate fi descris ca un proiect Apache complet omogen; este o dezvoltare open-source de către NVIDIA Labs în jurul ecosistemului CUDA, cu o licență separată pentru legături CUDA de nivel scăzut.

Sursa: linux.org.ru

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster