„NVIDIA“ pristatė „CUDA Rust“, skirtą GPU branduolių kūrimui „Rust“ kalba.

„NVIDIA“ paskelbė apie „CUDA Rust“ įrankių rinkinio, leidžiančio „Rust“ kalbai kurti branduolius, veikiančius GPU, kūrimą. Įrankių rinkinys užtikrina atminties saugumą kompiliavimo metu ir apsaugo nuo lenktynių sąlygų. Kitais metais planuojama „CUDA Rust“ išplėtoti iki gamybiniams projektams tinkamo lygio, panašiai kaip „CUDA C++“ ir „CUDA Python“ įrankių rinkinius.

„CUDA Rust“ įrankių grandinė palaiko du lygiagrečių branduolių kūrimo modelius: SIMT (Single Instruction, Multiple Threads – viena instrukcija, keli gijos) ir Tile. SIMT modelis leidžia žemo lygio apibrėžti vieną giją, paleisti ir valdyti tūkstančius tokių gijų. Tile modelis siūlo aukštesnį abstrakcijos lygį, kai vietoj atskirų gijų valdymo apibrėžiami algoritmai duomenų blokams (plytelės) valdyti, o Tile IR kompiliatorius tvarko visą gijų manipuliavimą, prieigos sinchronizavimą, atminties valdymą ir duomenų paskirstymą tarp tenzorinių branduolių.

Kuriant Rust kalba naudojant SIMT modelį, kuriamas „cuda-oxide“ kompiliatorius, kuris leidžia kompiliuoti kodą Rust kalba, naudojant standartinę tipų sistemą ir Rust nuosavybės modelį, tiesiai į vykdymo instrukcijas. Virtuali mašina CUDA PTX (lygiagretus gijų vykdymas). GPU branduoliai rašomi įprastoje „Rust“ aplinkoje, bet veikia „no_std“ aplinkoje ir gali naudoti tik funkcijas iš „libcore“ bibliotekos bei specializuotas „Rust“ abstrakcijas, neturėdami prieigos prie standartinės „Rust“ bibliotekos (libstd).

„Rust“ kalba parašyti CUDA branduoliai leidžia naudoti tipų apsaugą (saugų), naudoti nesaugius blokus ir pasiekti žemo lygio aparatinės įrangos instrukcijas. Siekiant užtikrinti saugumą, siūlomas „DisjointSlice“ tipas, užtikrinantis, kad kiekvienas siūlas turėtų išskirtinę prieigą tik prie savo duomenų. „Cuda-oxide“ kodas licencijuotas pagal „Apache 2.0“ licenciją.

„Uodegos“ modeliui įgyvendinti siūloma „cutile-rs“ biblioteka. Ji leidžia naudoti idiomatinę „Rust“ kalbą ir kurti kodą, kuris tiesiogiai kompiliuojamas į CUDA branduolius. „Cutile-rs“ taiko griežtas „Rust“ nuosavybės ir skolinimosi taisykles kodui, veikiančiam GPU. Branduolys įgyvendinamas kaip vieno gijos programa, veikianti su duomenų bloku, o kompiliatorius automatiškai padalija skaičiavimą į gijas ir užtikrina jų sinchronizavimą. Gijoms suteikiama bendra prieiga prie nekeičiamų tenzorių, o keičiami tenzoriai yra suskirstyti į atskirus blokus, kad būtų užtikrinta saugi prieiga. „cutile-rs“ kodas platinamas pagal „Apache 2.0“ licenciją.

Šaltinis: opennet.ru

Pirkite patikimą prieglobą svetainėms su DDoS apsauga, VPS VDS serveriais 🔥 Įsigykite patikimą svetainių talpinimą su DDoS apsauga, VPS VDS serveriais | ProHoster