ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Rusticl сСртифицирован Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с OpenCL 3.0

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Mesa объявили ΠΎ сСртификации ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ Khronos Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° rusticl, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΎΡˆΡ‘Π» всС тСсты ΠΈΠ· Π½Π°Π±ΠΎΡ€Π° CTS (Kronos Conformance Test Suite) ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°Π½ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстимым со спСцификациСй OpenCL 3.0, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅ΠΉ API ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ языка Π‘ для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ кросс-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Ρ… вычислСний. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ сСртификата Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎ Π·Π°ΡΠ²Π»ΡΡ‚ΡŒ ΠΎ совмСстимости со стандартами ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ связанныС с Π½ΠΈΠΌΠΈ Ρ‚ΠΎΡ€Π³ΠΎΠ²Ρ‹Π΅ ΠΌΠ°Ρ€ΠΊΠΈ Khronos. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π° Π½Π° систСмС с 12-ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… GPU Intel, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ использовался Gallium3D-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Iris.

Π”Ρ€Π°ΠΉΠ²Π΅Ρ€ написан Π½Π° языкС Rust ΠΈ развиваСтся ΠšΡΡ€ΠΎΠ»ΠΎΠΌ Π₯Србстом (Karol Herbst) ΠΈΠ· ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Red Hat, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΌ участиС Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Mesa, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Nouveau ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ стСка OpenCL. Rusticl выступаСт Π² Ρ€ΠΎΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π² Mesa OpenCL-фронтэнда Clover ΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ с использованиСм прСдоставляСмого Π² Mesa интСрфСйса Gallium. Clover ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ находится Π² Π·Π°Π±Ρ€ΠΎΡˆΠ΅Π½Π½ΠΎΠΌ состоянии ΠΈ rusticl позиционируСтся ΠΊΠ°ΠΊ Π΅Π³ΠΎ будущая Π·Π°ΠΌΠ΅Π½Π°. ΠšΡ€ΠΎΠΌΠ΅ достиТСния совмСстимости с OpenCL 3.0 ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Rusticl отличаСтся ΠΎΡ‚ Clover ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ OpenCL для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ FP16. Для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΎΠ² для Mesa ΠΈ OpenCL, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Rust-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· ΠΊΠΎΠ΄Π° Π½Π° Π‘ΠΈ ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, Π² Rusticl задСйствован rust-bindgen.

Код для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ языка Rust ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ rusticl приняты Π² основной состав Mesa ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π² выпускС Mesa 22.3, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ оТидаСтся Π² ΠΊΠΎΠ½Ρ†Π΅ ноября. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Rust ΠΈ rusticl Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ сборки с явным ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΎΠΏΡ†ΠΈΠΉ «-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021». ΠŸΡ€ΠΈ сборкС Π² качСствС Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… зависимостСй ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ компилятор rustc, Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ привязок bindgen, LLVM, инструмСнтарий SPIRV-Tools ΠΈ транслятор SPIRV-LLVM-Translator.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования языка Rust Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Mesa обсуТдаСтся с 2020 Π³ΠΎΠ΄Π°. Из плюсов ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Rust упоминаСтся ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ бСзопасности ΠΈ качСства Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² Π·Π° счёт избавлСния ΠΎΡ‚ Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² состав Mesa сторонних Π½Π°Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Kazan (рСализация Vulkan Π½Π° Rust). Из нСдостатков отмСчаСтся услоТнСниС систСмы сборки, Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΉ систСмС cargo, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ сборочному ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡŽ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ компилятора Rust Π² сборочныС зависимости, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ для построСния ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ стола Π² Linux.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΡŽ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Nouveau, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΎΠ²Π΅Π΄Ρ‘Π½Π½ΡƒΡŽ ΠšΡΡ€ΠΎΠ»ΠΎΠΌ Π₯Србстом. Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Nouveau Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° базовая ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° OpenGL для GNU NVIDIA GeForce RTX 30xx Π½Π° Π±Π°Π·Π΅ ΠΌΠΈΠΊΡ€ΠΎΠ°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Ampere, выпускаСмых с мая 2020 Π³ΠΎΠ΄Π°. БвязанныС с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ Π½ΠΎΠ²Ρ‹Ρ… Ρ‡ΠΈΠΏΠΎΠ² измСнСния Π²ΠΎΠΉΠ΄ΡƒΡ‚ Π² состав ядра Linux 6.2 ΠΈ Mesa 22.3.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ