NVIDIA lansează CUDA Rust: Programare nativă pentru kernel-uri GPU în limbajul Rust

 

NVIDIA extinde ecosistemul CUDA prin introducerea suportului nativ pentru limbajul Rust, permițând dezvoltatorilor să scrie kernel-uri GPU directe în Rust, fără a mai fi nevoiți să apeleze la CUDA C++ sau alte limbaje intermediare.

Până în prezent, aplicațiile scrise în Rust puteau lansa executabile CUDA, însă codul rulat efectiv pe procesorul grafic trebuia scris separat în C++. Noul proiect NVIDIA elimină această barieră compilând codul Rust pentru GPU direct în formatul intermediar PTX (Parallel Thread Execution).

Cele două direcții principale: cuda-oxide și cutile-rs

NVIDIA dezoltă în paralel două abordări complementare, adaptate diferitelor niveluri de abstractizare:

1. cuda-oxide (Modelul clasic SIMT)

  • Utilizează modelul tradițional de programare paralelă SIMT (Single Instruction, Multiple Threads), similar cu cel din CUDA C++.

  • Oferă control direct și detaliat asupra thread-urilor, blocurilor de execuție, indexării și gestionării memoriei.

  • Folosește o linie de compilare dedicată (rustc backend) care trece codul prin intermediarii Rust MIR, Pliron, LLVM IR și, în final, PTX.

2. cutile-rs (Modelul CUDA Tile)

  • Funcționează la un nivel mai înalt de abstracție bazat pe CUDA Tile.

  • În loc să gestioneze thread-uri individuale, dezvoltatorii lucrează direct cu blocuri (tile-uri) de date, lăsând compilatorul să mapaze automat aceste structuri pe thread-urile fizice ale GPU-ului.

  • Siguranță sporită la compilare: Integrează regulile de proprietate (ownership) din Rust și partiționarea tensorilor. Fiecare tile primește acces exclusiv la zona sa de memorie scriibilă, ceea ce permite depistarea și eliminarea erorilor de acces concomitent (race conditions) direct în faza de compilare.

Interoperabilitate și planuri de viitor

NVIDIA subliniază că cele două proiecte nu se află în competiție, ci se completează reciproc: cutile-rs este recomandat ca punct de plecare pentru majoritatea sarcinilor, în timp ce cuda-oxide rămâne opțiunea ideală pentru aplicațiile ce necesită un control de nivel inferior.

De asemenea, compania pregătește o interoperabilitate completă între CUDA Rust, CUDA C++ și CUDA Python. Acest lucru va permite dezvoltatorilor să combine componente scrise în limbaje diferite în cadrul aceleiași aplicații.

Deși funcționalitățile actuale sunt într-o fază incipientă și API-urile pot suferi modificări, NVIDIA intenționează să maturizeze CUDA Rust pe parcursul anilor următori.

Sursă: Linuxiac - NVIDIA Introduces CUDA Rust for Writing GPU Kernels

Comentarii

Postări populare de pe acest blog

⏱️ Test de laborator Neowin: Linux spulberă Windows 11 în sarcinile zilnice și managementul resurselor!

🚀 Fondatorul Bottles a reușit să ruleze Microsoft 365 pe Linux!

🌐 Brave susține că browserul său încarcă paginile cu 20% mai rapid decât principalii rivali!