NVIDIA ilitangaza uundaji wa zana ya CUDA Rust, ambayo huwezesha lugha ya Rust kukuza kerneli zinazoendesha kwenye GPU. Zana hii inahakikisha usalama wa kumbukumbu wakati wa kukusanya na kuzuia hali ya mbio. Mwaka ujao, CUDA Rust imepangwa kutengenezwa hadi kiwango kinachofaa kwa miradi ya uzalishaji, sawa na zana ya CUDA C++ na CUDA Python.
Msururu wa zana wa CUDA Rust huunga mkono mifumo miwili ya kutengeneza viini sambamba: SIMT (Maelekezo Moja, Misururu Mingi) na Kigae. Mfumo wa SIMT huruhusu ufafanuzi wa kiwango cha chini wa uzi mmoja, uzinduzi na usimamizi wa maelfu ya misururu kama hiyo. Mfumo wa Kigae hutoa kiwango cha juu cha uchukuaji, ambapo badala ya kusimamia misururu ya mtu binafsi, algoriti za kufanya kazi kwenye vizuizi vya data (vigae) hufafanuliwa, na kikusanyaji cha Kigae cha IR hushughulikia urekebishaji wote wa uzi, usawazishaji wa ufikiaji, usimamizi wa kumbukumbu, na usambazaji wa data kwenye viini vya tensor.
Kwa ajili ya uundaji wa lugha ya Rust kwa kutumia modeli ya SIMT, kikusanyaji cha cuda-oxide kinatengenezwa, ambacho huruhusu kukusanya msimbo katika lugha ya Rust, kwa kutumia mfumo wa kawaida wa aina na modeli ya umiliki wa Rust, moja kwa moja kwenye maagizo ya utekelezaji katika mashine pepe CUDA PTX (Utekelezaji Sambamba wa Uzi). Viini vya GPU vimeandikwa katika Rust ya kawaida, lakini huendeshwa katika mazingira yasiyo na_std na vinaweza kutumia vitendakazi kutoka kwa maktaba ya libcore na vifupisho maalum vya Rust, bila ufikiaji wa maktaba ya kawaida ya Rust (libstd).
Kengele za CUDA zilizoandikwa katika Rust huruhusu matumizi ya ulinzi wa aina (salama), matumizi ya vizuizi visivyo salama, na ufikiaji wa maagizo ya vifaa vya kiwango cha chini. Ili kuhakikisha usalama, aina ya DisjointSlice inapendekezwa, kuhakikisha kwamba kila uzi una ufikiaji wa kipekee wa data yake pekee. Msimbo wa cuda-oxide umeidhinishwa chini ya leseni ya Apache 2.0.
Ili kutekeleza mfumo wa Tail, maktaba ya cutile-rs inapendekezwa. Inawezesha matumizi ya lugha ya nahau ya Rust kuunda msimbo unaokusanywa moja kwa moja kwenye viini vya CUDA. Cutile-rs hutumia sheria kali za umiliki na kukopa za Rust kwa msimbo unaoendeshwa kwenye GPU. Kiini kinatekelezwa kama programu yenye nyuzi moja inayofanya kazi kwenye kizuizi cha data, na mkusanyaji hugawanya kiotomatiki hesabu katika nyuzi na kuhakikisha ulandanishi wao. Mizingo hupewa ufikiaji wa pamoja wa vidhibiti visivyobadilika, na vidhibiti vinavyoweza kubadilika hugawanywa katika vizuizi visivyoungana ili kuhakikisha ufikiaji salama. Msimbo wa cutile-rs unasambazwa chini ya leseni ya Apache 2.0.
Chanzo: opennet.ru
