NVIDIA ieviesa CUDA Rust GPU kodolu izstrādei Rust valodā.

NVIDIA paziņoja par CUDA Rust rīkkopa izstrādi, kas ļauj Rust valodai izstrādāt kodolus, kas darbojas uz GPU. Rīkkopa nodrošina atmiņas drošību kompilēšanas laikā un novērš sacensību apstākļus. Nākamgad plānots izstrādāt CUDA Rust līdz līmenim, kas piemērots ražošanas projektiem, līdzīgi kā CUDA C++ un CUDA Python rīkkopa.

CUDA Rust rīku komplekts atbalsta divus paralēlu kodolu izstrādes modeļus: SIMT (Single Instruction, Multiple Threads — viena instrukcija, vairāki pavedieni) un Tile. SIMT modelis ļauj zemā līmenī definēt vienu pavedienu, palaist un pārvaldīt tūkstošiem šādu pavedienu. Tile modelis piedāvā augstāku abstrakcijas līmeni, kur atsevišķu pavedienu tiešas pārvaldības vietā tiek definēti algoritmi datu bloku (flīžu) apstrādei, un Tile IR kompilators apstrādā visu pavedienu manipulāciju, piekļuves sinhronizāciju, atmiņas pārvaldību un datu izplatīšanu starp tenzoru kodoliem.

Izstrādei Rust valodā, izmantojot SIMT modeli, tiek izstrādāts cuda-oxide kompilators, kas ļauj kompilēt kodu Rust valodā, izmantojot standarta tipu sistēmu un Rust īpašumtiesību modeli, tieši izpildes instrukcijās. virtuālā mašīna CUDA PTX (paralēlā pavedienu izpilde). GPU kodoli ir rakstīti parastajā Rust valodā, bet darbojas no_std vidē un var izmantot tikai libcore bibliotēkas funkcijas un specializētas Rust abstrakcijas, bez piekļuves standarta Rust bibliotēkai (libstd).

Rust valodā rakstītie CUDA kodoli ļauj izmantot tipa aizsardzību (droša), nedrošu bloku izmantošanu un piekļuvi zema līmeņa aparatūras instrukcijām. Lai nodrošinātu drošību, tiek piedāvāts DisjointSlice tips, kas nodrošina, ka katram pavedienam ir ekskluzīva piekļuve tikai saviem datiem. Cuda-oxide kods ir licencēts saskaņā ar Apache 2.0 licenci.

Lai ieviestu Tail modeli, tiek piedāvāta cutile-rs bibliotēka. Tā ļauj izmantot Rust idiomatisko valodu, lai izveidotu kodu, kas kompilējas tieši CUDA kodolos. Cutile-rs piemēro Rust stingros īpašumtiesību un aizņemšanās noteikumus kodam, kas darbojas GPU. Kodols ir ieviests kā viena pavediena programma, kas darbojas ar datu bloku, un kompilators automātiski sadala aprēķinu pavedienos un nodrošina to sinhronizāciju. Pavedieniem tiek piešķirta koplietota piekļuve nemainīgiem tenzoriem, un maināmie tenzori tiek sadalīti atsevišķos blokos, lai nodrošinātu drošu piekļuvi. Cutile-rs kods tiek izplatīts saskaņā ar Apache 2.0 licenci.

Avots: opennet.ru

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster