Rust GPU, Rust-дағы шейдерлерді дамытуға арналған құралдар жиынтығы

Ойындарды дамыту компаниясы Embark студиясы алғашқы эксперименттік шығарылымын шығарды жобаның Rust GPU, ол Rust тілін қолдануға бағытталған GPU кодын әзірлеу. 

Rust қолдануды қалау графикалық процессорға арналған бағдарламалар жазу тек қауіпсіздік ерекшеліктері мен жоғары өнімділіктен туындайды, сонымен қатар даму процесінің тиімділігін арттыру үшін пакеттермен және модульдермен жұмыс істеу үшін заманауи құралдарды алу қажеттілігі.

Rust GPU әзірлеуші ​​компаниясы Embark Studios Rust-ты ойын қозғалтқышында да қолданады және ол процессор мен графикалық процессор арасындағы Rust кодының алмасуын жеңілдету үшін жұмыс істейді.

Олардың айтуынша, тарихи, ойындарда GPU бағдарламалау HLSL жазу арқылы жүзеге асырылды немесе аз дәрежеде GLSL. Бұл көптеген жылдар бойы API-мен қатар дамыған қарапайым бағдарламалау тілдері.

Алайда, ойын қозғалтқыштары дамығандықтан, бұл тілдерде үлкен кодтық базалармен жұмыс істеу механизмдері ұсынылмаған және тұтастай алғанда олар басқа бағдарламалау тілдерімен салыстырғанда артта қалды.

Әдетте екі тіл үшін де жақсы баламалар бар, бірақ екеуі де HLSL немесе GLSL-ді алмастыра алмайды.

Немесе оларды провайдер бұғаттағандықтан немесе оларға қолдау көрсетілмегендіктен дәстүрлі графикалық құбырмен. Бұған CUDA және OpenCL мысалдары жатады. Бұл кеңістіктегі тіл жасауға тырысқанымен, олардың ешқайсысы гамдев қоғамдастығында айтарлықтай тартымдылыққа ие болған жоқ.

Rust GPU RLSL жобасының идеяларын дамытуды жалғастыруда, онда Vulkan API-де ұсынылған және OpenGL 4.6-да қолдау көрсетілетін SPIR-V жалпы шейдерлік аралыққа арналған Rust компиляторын жасауға әрекет жасалды.

Rust GPU өзінің қазіргі даму кезеңінде қарапайым графикалық шейдерлерді іске қосуға және Rust стандартты кітапханасының едәуір бөлігін құруға мүмкіндік береді. Сонымен бірге, жоба әлі де кең қолданысқа енуге дайын емес, мысалы, циклдарды көлеңкелер әлі қолдамайды.

Embark-та біз Rust-да нөлден бастап өз ойын қозғалтқышын құрдық. Бізде RLSL прототипінің ішкі тәжірибесінде тәжірибе жинақталған және бізде ойындардан, ойын қозғалтқыштарынан және басқа да салалардан бастап қазіргі заманғы шейдер тілдерінің мәселелерін жақсы білетін рендерингтік инженерлер тобы бар. Сондықтан, біз бұл мәселені шешуге тырысатын ерекше жағдайдамыз деп санаймыз.

Біз өзіміздің ішкі дамуды бір ғана керемет тілмен жетілдіргіміз келеді, ашық бастапқы графикалық қоғамдастық пен экожүйені құрамыз, GPU мен CPU арасында кодты бөлісуді жеңілдетеміз, ең бастысы - біздің (болашақ) пайдаланушыларымыз бен серіктестерімізге мүмкіндік береміз қызықты және тартымды тәжірибе жасаңыз.

Rust тіліндегі код негізінде SPIR-V шейдерлерінің өкілдігі қалыптасады, оның буыны үшін Rust компиляторы үшін арнайы backend әзірленді, ол кранелифт үшін генерациялау үшін пайдаланылған кренелифт код генераторымен ұқсас. Веб-жинақтау.

Қазіргі тәсіл - Vulkan Graphics API және SPIR-V көріністерін қолдау, бірақ генераторлар болашақ DXIL (DirectX) және WGSL (WebGPU) шейдерлерін қарау үшін жоспарланған. Cargo және crates.io сайттарына сүйене отырып, SPIR-V форматындағы шейдерлермен пакеттерді әзірлеу және басып шығару құралдары жасалуда.

Сонымен, егер сіз осы жоба туралы көбірек білгіңіз келсе, онда сіз жоба қоймасындағы мәліметтерді тексере аласыз, сілтеме осы.

Кодты білуге ​​қызығатындарға келетін болсақ, олар кодтың MIT және Apache 2.0 лицензиялары бойынша шығарылатынын және оны алуға болатынын білуі керек. төмендегі сілтемеден.

Сонымен қатар олар Linux, Windows және Mac жүйелерінде жұмыс істей алатындай етіп әзірлеушілерге дайындалған құжаттамамен таныса алады. осы сілтемедегі нұсқаулықтан кеңес алыңыз.


Мақаланың мазмұны біздің ұстанымдарымызды ұстанады редакторлық этика. Қате туралы хабарлау үшін нұқыңыз Мұнда.

Пікір, өз қалдыру

Пікіріңізді қалдырыңыз

Сіздің электрондық пошта мекен-жайы емес жарияланады. Міндетті өрістер таңбаланған *

*

*

  1. Деректерге жауапты: Мигель Анхель Гатан
  2. Деректердің мақсаты: СПАМ-ны басқару, түсініктемелерді басқару.
  3. Заңдылық: Сіздің келісіміңіз
  4. Деректер туралы ақпарат: заңды міндеттемелерді қоспағанда, деректер үшінші тұлғаларға жіберілмейді.
  5. Деректерді сақтау: Occentus Networks (ЕО) орналастырған мәліметтер базасы
  6. Құқықтар: Сіз кез-келген уақытта ақпаратты шектей, қалпына келтіре және жоя аласыз.

  1.   автопилот дижо

    Rust басқа «өлімге әкелетін Scala» емес деп үміттенеді.