NVIDIA компаниясы Rust тілінде GPU ядроларын әзірлеу үшін CUDA Rust бағдарламасын ұсынды.

NVIDIA компаниясы CUDA Rust құралдар жинағын әзірлегенін жариялады, бұл Rust тіліне GPU-да жұмыс істейтін ядроларды әзірлеуге мүмкіндік береді. Құралдар жинағы компиляция кезінде жад қауіпсіздігін қамтамасыз етеді және жарыс жағдайларын болдырмайды. Келесі жылы CUDA Rust бағдарламасын CUDA C++ және CUDA Python құралдар жинағына ұқсас өндірістік жобаларға жарамды деңгейге дейін әзірлеу жоспарлануда.

CUDA Rust құралдар тізбегі параллель ядроларды әзірлеуге арналған екі модельді қолдайды: SIMT (Single Instruction, Multiple Threads) және Tile. SIMT моделі бір ағынның төмен деңгейлі анықтамасын, мыңдаған осындай ағындарды іске қосуды және басқаруды қамтамасыз етеді. Tile моделі абстракцияның жоғары деңгейін ұсынады, мұнда жеке ағындарды нақты басқарудың орнына деректер блоктарында (плиткаларда) жұмыс істеу алгоритмдері анықталады, ал Tile IR компиляторы барлық ағындарды манипуляциялауды, кіруді синхрондауды, жадты басқаруды және тензорлық ядролар бойынша деректерді таратуды өңдейді.

SIMT моделін қолдана отырып, Rust тілінде әзірлеу үшін cuda-oxide компиляторы әзірленуде, ол стандартты тип жүйесін және Rust меншік моделін қолдана отырып, Rust тілінде кодты орындау нұсқауларына тікелей компиляциялауға мүмкіндік береді. виртуалды машина CUDA PTX (параллель ағынды орындау). GPU ядролары кәдімгі Rust тілінде жазылған, бірақ no_std ортасында жұмыс істейді және стандартты Rust кітапханасына (libstd) қатынаусыз тек libcore кітапханасынан және мамандандырылған Rust абстракцияларынан функцияларды пайдалана алады.

Rust тілінде жазылған CUDA ядролары типті қорғауды (қауіпсіз) пайдалануға, қауіпті блоктарды пайдалануға және төмен деңгейлі аппараттық нұсқауларға қол жеткізуге мүмкіндік береді. Қауіпсіздікті қамтамасыз ету үшін әрбір ағынның тек өз деректеріне ғана эксклюзивті қол жеткізуін қамтамасыз ететін DisjointSlice типі ұсынылады. Cuda-oxide коды Apache 2.0 лицензиясы бойынша лицензияланған.

Tail моделін іске асыру үшін cutile-rs кітапханасы ұсынылады. Ол CUDA ядроларына тікелей компиляцияланатын код жасау үшін Rust идиоматикалық тілін пайдалануға мүмкіндік береді. Cutile-rs GPU-да жұмыс істейтін кодқа Rust-тың қатаң меншіктеу және қарыз алу ережелерін қолданады. Ядро деректер блогында жұмыс істейтін бір ағынды бағдарлама ретінде жүзеге асырылады, ал компилятор есептеуді автоматты түрде ағындарға бөледі және олардың синхрондауын қамтамасыз етеді. Ағындарға өзгермейтін тензорларға ортақ қол жеткізу беріледі, ал өзгеретін тензорлар қауіпсіз қол жеткізуді қамтамасыз ету үшін бөлек блоктарға бөлінеді. Cutile-rs коды Apache 2.0 лицензиясы бойынша таратылады.

Ақпарат көзі: opennet.ru

DDoS қорғауы бар сайттар үшін сенімді хостинг, VPS VDS серверлерін сатып алыңыз 🔥 DDoS қорғанысы, VPS VDS серверлері бар сенімді веб-сайт хостингін сатып алыңыз | ProHoster