Újraindult a Rust CUDA projekt

Újraindult a Rust CUDA projekt, amely lehetővé teszi a CUDA kernelek írását és futtatását Rust nyelven, közvetlenül NVIDIA GPU-kon NVVM IR segítségével. A fejlesztők célja a projekt modernizálása és integrálása más, Rust ökoszisztémában zajló GPU-val kapcsolatos kezdeményezésekkel. Az érdeklődők és a leendő hozzájárulók a GitHubon található rust-cuda repositoryban követhetik a fejleményeket.

Újraindult a Rust CUDA projekt

Önkénteseket keresnek a projekthez

A projekt fenntarthatósága érdekében új közreműködőket és karbantartókat keresnek. Bárki csatlakozhat, legyen akár fejlesztő, felhasználó vagy karbantartó. Az átszervezés miatt az indulás kissé döcögős lehet, de a cél egy hosszú távon is életképes projekt kialakítása.

Együttműködés más GPU-projektekkel

A Rust CUDA fejlesztői össze kívánják hangolni a projektet más GPU-programozási projektekkel. A Rust GPU egy hasonló kezdeményezés, amely SPIR-V kódot generál Vulkan alapú GPU-khoz. A cél egy olyan egységes API kialakítása, amely elrejti a fejlesztők elől a Vulkan és CUDA közötti különbségeket, valamint az alacsony szintű IR (SPIR-V és NVVM) sajátosságait. A projektek egyik közös karbantartója Christian Legnitto (LegNeato).

A rustc PTX backend a Rust fordító kísérleti nvptx backendje, amely CUDA alacsony szintű PTX IR-t generál. A Rust CUDA csapata együttműködésre törekszik ennek integrációja kapcsán. A cudarc egy olyan Rust csomag, amely a CUDA programozás host-oldali absztrakcióját biztosítja. A fejlesztők vizsgálják, hogyan lehetne a Rust CUDA-t interoperabilissé tenni vele, vagy akár összevonni a két kezdeményezést. Az érdeklődők az ökoszisztéma áttekintő oldalán találhatnak bővebb információt a Rust és GPU-k kapcsolatáról.

Rövid távú fejlesztési tervek

A következő időszak fő feladatai közé tartozik a függőben lévő PR-ek egyesítése és a beérkezett hozzájárulások feldolgozása, az elavult hibajegyek lezárása az issue tracker átláthatósága érdekében, valamint a függőségek frissítése a legújabb Rust eszközkészlet és CUDA verziók támogatására. A projekt egy új weboldalt is kap, amely friss dokumentációval, példákkal és forrásokkal segíti a könnyebb kezdést.

Középtávú célok

A projekt stabilizálása után a csapat további fejlesztési lehetőségeket vizsgál, többek között a Rust új C++ interoperabilitási megoldásainak beépítését a CUDA kódrészletek integrációjának megkönnyítésére, valamint más Rust CUDA projektek összehangolását és host-oldali eszközeik egységesítését. Együttműködés várható a rustc PTX backend csapatával is, amely lehetővé tenné a Rust CUDA áttérését az NVVM IR-ről nyers PTX-re. A Rust GPU infrastruktúrájának és eszközeinek felhasználása szintén szerepel a tervek között, a párhuzamos fejlesztések minimalizálása érdekében.

Hosszú távú célkitűzések

A végső cél egy biztonságos, ergonomikus és hatékony Rust GPU-programozási megoldás kialakítása, amely szervesen illeszkedik a nyelv ökoszisztémájába. Jelenleg a Rust CUDA egy külső backendként működik, de a cél az, hogy hivatalosan is támogatott fordítókomponenssé váljon. A fejlesztők azon dolgoznak, hogy a Rust CUDA és Rust GPU fejlesztői API-k egyesítésével a platform- és IR-különbségek a fejlesztők számára átláthatatlanok legyenek, és csak speciális esetekben kelljen figyelembe venniük az eltérő architektúrákat. A Rust nyelv továbbfejlesztése szintén fontos szempont, hogy még biztonságosabbá, teljesítményorientáltabbá és fejlesztőbarátabbá váljon a GPU-programozás Rustban.

A bejelentés a Rust Github oldalán belül található blogbejegyzésben tekinthető meg.