NVIDIA prezantoi CUDA Rust për zhvillimin e bërthamave GPU në gjuhën Rust

Kompania NVIDIA shpalli zhvillimin e mjetit CUDA Rust, që lejon përdorimin e gjuhës Rust për zhvillimin e bërthamave që ekzekutohen në anën e GPU. Mjeti siguron sigurinë e punës me memorie në fazën e kompiluara dhe parandalon gjendjet e garave. Në vitin e ardhshëm, CUDA Rust pritet të arrijë një nivel të aplikueshëm për zhvillimin e projekteve të punës, të ngjashme me mjetet CUDA C++ dhe CUDA Python.

Mjeti CUDA Rust mbĂ«shtet dy modele tĂ« zhvillimit tĂ« bĂ«rthamave qĂ« ekzekutohen paralelisht — SIMT (Instruksion i VetĂ«m, MĂ« shumĂ« Thjeshta) dhe Tile. Modeli SIMT lejon pĂ«rcaktimin e logjikĂ«s sĂ« njĂ«rit rrjedh, ekzekutimin e mijĂ«ra tĂ« tillave dhe menaxhimin e tyre nĂ« njĂ« nivel tĂ« ulĂ«t. Modeli Tile ofron njĂ« nivel mĂ« tĂ« lartĂ« abstraksioni, ku nĂ« vend tĂ« menaxhimit tĂ« qartĂ« tĂ« rrjedhave tĂ« veçanta, pĂ«rcaktohen algoritmet e veprimit me blloqe tĂ« dhĂ«nash (tile), ndĂ«rsa tĂ« gjitha manipulations me rrjedhat, sinkronizimi i qasjes, menaxhimi i memorjes dhe shpĂ«rndarja e tĂ« dhĂ«nave nĂ« bĂ«rthamĂ«n tensor merr pĂ«rgjegjĂ«sinĂ« nĂ« dorĂ« kompilatori Tile IR.

Për zhvillimin në gjuhën Rust duke përdorur modelin SIMT, po zhvillohet kompilatori cuda-oxide, i cili lejon të kompilohet kodi në gjuhën Rust, që përdor sistemin e tij standard të tipeve dhe modelin e pronësisë Rust, direkt në instruksione për ekzekutimin në makinën virtuale CUDA PTX (Ekzekutimi Paralel i Thread-ve). Bërthamat për GPU krijohen në Rust të zakonshëm, por ekzekutohen në një mjedis no_std dhe mund të përdorin vetëm funksionet nga biblioteka libcore dhe abstraksionet e veçanta Rust, pa akses në bibliotekën standarde Rust (libstd).

Në bërthamat CUDA në Rust lejohet aplikimi i mbrojtjes përmes sistemit të tipeve (safe), përdorimi i blloqeve unsafe dhe qasja në instruksionet e pajisjeve në nivel të ulët. Për sigurimin e sigurisë ofrohet tipi DisjointSlice, i cili garanton që çdo rrjedh merr qasje ekskluzive vetëm në të dhënat e tij. Kodi cuda-oxide shpërndahet nën licencën Apache 2.0.

Për të zbatuar modelin Tail, ofrohet biblioteka cutile-rs, e cila lejon përdorimin e gjuhës idiomatike Rust për të krijuar kod që kompilohet drejtpërdrejt në bërthama CUDA. Cutile-rs zbaton rregullat e ngurta të pronës dhe huazimit që ofrohen në Rust për kodin që ekzekutohet në GPU. Bërthama paraqitet si një program njënyjor që punon me një bllok të dhënash, dhe kompajleri vetë e ndan llogaritjen në tela dhe garanton sinkronizimin e tyre. Tela e kanë qasje të përbashkët në tensore të pandryshueshme, dhe për qasje të sigurt në tensore të ndryshueshme përdoret ndarja e tyre në blloqe të paqëna. Kodi cutile-rs shpërndahet nën licencën Apache 2.0.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster