NVIDIA GPU yadrolarini Rust tilida ishlab chiqish uchun CUDA Rust ni taqdim etdi.

NVIDIA CUDA Rust asboblar to'plamini ishlab chiqishni e'lon qildi, bu Rust tiliga GPUda ishlaydigan yadrolarni ishlab chiqish imkonini beradi. Asboblar to'plami kompilyatsiya vaqtida xotira xavfsizligini ta'minlaydi va poyga sharoitlarining oldini oladi. Kelgusi yilda CUDA Rustni CUDA C++ va CUDA Python asboblar to'plamiga o'xshash ishlab chiqarish loyihalari uchun mos darajaga yetkazish rejalashtirilgan.

CUDA Rust asboblar to'plami parallel yadrolarni ishlab chiqish uchun ikkita modelni qo'llab-quvvatlaydi: SIMT (Bitta ko'rsatma, bir nechta thread) va Tile. SIMT modeli bitta threadning past darajadagi ta'rifini, minglab bunday threadlarni ishga tushirish va boshqarish imkonini beradi. Tile modeli yuqori darajadagi abstraktsiyani taklif etadi, bu yerda alohida threadlarni aniq boshqarish o'rniga, ma'lumotlar bloklarida (plitkalarda) ishlash algoritmlari aniqlanadi va Tile IR kompilyatori barcha thread manipulyatsiyasi, kirishni sinxronlashtirish, xotirani boshqarish va tensor yadrolari bo'ylab ma'lumotlarni taqsimlashni amalga oshiradi.

SIMT modelidan foydalangan holda Rust tilida ishlab chiqish uchun cuda-oxide kompilyatori ishlab chiqilmoqda, bu standart tip tizimi va Rust egalik modelidan foydalangan holda Rust tilida kodni to'g'ridan-to'g'ri bajarish uchun ko'rsatmalarga kompilyatsiya qilish imkonini beradi. virtual mashina CUDA PTX (Parallel Thread Execution). GPU yadrolari oddiy Rust tilida yoziladi, lekin no_std muhitida ishlaydi va standart Rust kutubxonasiga (libstd) kirish imkonisiz faqat libcore kutubxonasi va ixtisoslashgan Rust abstraksiyalaridan funksiyalardan foydalanishi mumkin.

Rust tilida yozilgan CUDA yadrolari tur himoyasidan (xavfsiz) foydalanish, xavfli bloklardan foydalanish va past darajadagi apparat ko'rsatmalariga kirish imkonini beradi. Xavfsizlikni ta'minlash uchun har bir oqim faqat o'z ma'lumotlariga eksklyuziv kirish huquqiga ega bo'lishini ta'minlaydigan DisjointSlice turi taklif qilinadi. Cuda-oxide kodi Apache 2.0 litsenziyasi bo'yicha litsenziyalangan.

Tail modelini amalga oshirish uchun cutile-rs kutubxonasi taklif qilinadi. U Rust idiomatik tilidan foydalanib, CUDA yadrolariga to'g'ridan-to'g'ri kompilyatsiya qilinadigan kod yaratish imkonini beradi. Cutile-rs GPUda ishlaydigan kodga Rustning qat'iy egalik qilish va qarz olish qoidalarini qo'llaydi. Yadro ma'lumotlar blokida ishlaydigan bitta oqimli dastur sifatida amalga oshiriladi va kompilyator hisoblashni avtomatik ravishda oqimlarga ajratadi va ularning sinxronizatsiyasini ta'minlaydi. Oqimlarga o'zgarmas tensorlarga umumiy kirish huquqi beriladi va xavfsiz kirishni ta'minlash uchun o'zgaruvchan tensorlar ajratilgan bloklarga bo'linadi. Cutile-rs kodi Apache 2.0 litsenziyasi ostida tarqatiladi.

Manba: opennet.ru

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster