Mesa үшін OpenCL бағдарламасының Rust іске асырылуы OpenCL 3.0 қолдауын қамтамасыз етеді

Mesa жобасы үшін әзірленіп жатқан Rust тілінде жазылған жаңа OpenCL енгізу (rusticl) OpenCL 3.0 спецификацияларымен үйлесімділікті бағалау үшін Khronos консорциумы пайдаланатын CTS (Kronos Conformance Test Suite) сынақ кешенінен сәтті өтті. Жобаны Mesa, Nouveau драйвері және OpenCL ашық стек әзірлеумен айналысатын Red Hat компаниясынан Карол Хербст жасауда. Кэролдың орыс тілінде OpenCL 3.0 қолдауының ресми сертификаттауына қатысты Khronos компаниясына хабарласқаны атап өтілген.

Сынақтар 12-ші буын Intel GPU (Alder Lake) бар жүйеде аяқталды. Жұмыс Mesa Iris драйвері арқылы жүзеге асырылды, бірақ жоба NIR шейдерлерінің типсіз аралық көрінісін (IR) пайдаланатын басқа Mesa драйверлерімен де жұмыс істеуі керек. Rusticle-ді Mesa-мен біріктіру туралы өтініш әлі қаралуда және Rust кодын Mesa-ға қосу туралы шешім қабылданған жоқ. Rusticl негізгі Mesa композициясына қабылданбай тұрып, құрастыру үшін жеке тармақты пайдалануға болады, оны құрастыру кезінде құрастыру параметрлерін көрсету керек “-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= шын».

Rusticle Mesa OpenCL frontend Clover аналогы ретінде әрекет етеді және сонымен қатар Mesa-да берілген Gallium интерфейсі арқылы әзірленген. Жоңышқа ставкасы ұзақ уақыт бойына қалдырылды және рустикл оның болашақ ауыстыруы ретінде орналастырылды. OpenCL 3.0 үйлесімділігіне қол жеткізумен қатар, Rusticle жобасы кескінді өңдеуге арналған OpenCL кеңейтімдерін қолдауымен Clover-тен ерекшеленеді, бірақ әлі FP16 пішімін қолдамайды.

C кодынан Rust функцияларын шақыруға мүмкіндік беретін Mesa және OpenCL үшін байланыстыруларды жасау үшін және керісінше Rusticle-де rust-bindgen пайдаланылады. Mesa жобасында Rust тілін қолдану мүмкіндігі 2020 жылдан бері талқыланып келеді. Rust қолдауының артықшылықтарының ішінде жадпен жұмыс істеу кезіндегі типтік мәселелерден арылуға байланысты драйверлердің қауіпсіздігі мен сапасының жоғарылауы, сондай-ақ Месаға үшінші тарап әзірлемелерін қосу мүмкіндігі, мысалы, Қазан (Вулканның іске асырылуы) туралы айтылады. Rust жылы). Кемшіліктерге құрастыру жүйесінің күрделілігінің жоғарылауы, жүк пакеті жүйесіне қосылуды қаламау, құрастыру ортасына қойылатын кеңейтілген талаптар және Linux жүйесінде негізгі жұмыс үстелі құрамдастарын құру үшін қажетті құрастыру тәуелділіктеріне Rust компиляторын қосу қажеттілігі жатады.

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

пікір қалдыру