Mesa жобасы үшін әзірленіп жатқан Rust тілінде жазылған жаңа OpenCL бағдарламасы (rusticl) OpenCL 3.0 спецификациясымен үйлесімділікті бағалау үшін Khronos консорциумы пайдаланатын Kronos Conformance Test Suite (CTS) бағдарламасынан сәтті өтті. Жобаны Mesa, Nouveau драйвері және ашық бастапқы OpenCL стекін әзірлеуге қатысатын Red Hat компаниясынан Карол Хербст жасауда. Ол rusticl тілінде OpenCL 3.0 қолдауының ресми сертификатталуына қатысты Khronos компаниясына хабарласты.
Сынақтар 12-буындағы Intel GPU (Alder Lake) бар жүйеде аяқталды. Жұмыс Iris Mesa драйвері арқылы орындалды, бірақ жоба NIR шейдерлерінің типсіз аралық көрінісін (IR) пайдаланатын басқа Mesa драйверлерімен де жұмыс істеуі керек. Rusticl-ді Mesa-мен біріктіру сұрауы қазір қаралуда және Rust кодын Mesa-ға енгізу туралы шешім әлі қабылданған жоқ. Rusticl негізгі Mesa дистрибутивіне біріктірілгенше, құрылыс үшін бөлек тармақты пайдалануға болады. Құрастыру кезінде келесі құрастыру параметрлерін көрсету керек: -Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm=true.
Rusticl Mesa-ның бұрыннан бар OpenCL фронтенді, Clover балама болып табылады және сонымен қатар Mesa Gallium интерфейсі арқылы әзірленген. Беде ұзақ уақыт бойы тасталған, ал рустикл оның болашақ орнын толтырады. OpenCL 3.0 үйлесімділігіне қол жеткізумен қатар, Rusticl кескінді өңдеуге арналған OpenCL кеңейтімдерін қолдайтынымен Clover-тен ерекшеленеді, бірақ әлі FP16 пішімін қолдамайды.
Rustcl Mesa және OpenCL үшін байланыстыруларды жасау үшін rust-bindgen пайдаланады, бұл Rust функцияларын C кодынан және керісінше шақыруға мүмкіндік береді. Mesa жобасында Rust тілін пайдалану мүмкіндігі 2020 жылдан бері талқыланып келеді. Rust қолдауының артықшылықтарының қатарында жадтың жалпы мәселелерін жоюға байланысты драйвер қауіпсіздігі мен сапасының артуы, сондай-ақ Mesa-ға Kazan (Vulkan-ның Rust нұсқасы) сияқты үшінші тарап әзірлемелерін енгізу мүмкіндігі бар. Кемшіліктеріне құрастыру жүйесінің күрделілігінің артуы, жүкті орау жүйесіне сүйенуге құлықсыздық, құрастыру ортасының талаптарының кеңеюі және негізгі жұмыс үстелі компоненттерін құру үшін қажетті құрастыру тәуелділіктеріне Rust компиляторын қосу қажеттілігі жатады. Linux.
Ақпарат көзі: opennet.ru
