Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Mesa ΠΎΠ±ΡΠ²ΠΈΡ Π° ΡΠ΅ΡΡΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ΡΠΎ ΠΎΡ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΡΡΠ° Khronos Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° rusticl, ΠΊΠΎΠΉΡΠΎ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π° Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΡΡΠΎΠ²Π΅ ΠΎΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ° CTS (Kronos Conformance Test Suite) ΠΈ Π΅ ΠΏΡΠΈΠ·Π½Π°Ρ Π·Π° Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌ ΡΡΡ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΡΠ° OpenCL 3.0, ΠΊΠΎΡΡΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° API ΠΈ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π½Π° Π΅Π·ΠΈΠΊΠ° C Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ. ΠΠΎΠ»ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°Ρ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΎΡΠΈΡΠΈΠ°Π»Π½ΠΎ Π΄Π° Π΄Π΅ΠΊΠ»Π°ΡΠΈΡΠ°ΡΠ΅ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΡΠ΅ ΠΈ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ ΡΡΡΠ³ΠΎΠ²ΡΠΊΠΈ ΠΌΠ°ΡΠΊΠΈ Khronos. Π’Π΅ΡΡΡΡ Π±Π΅ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ΅Π½ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ΠΈ Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΏΡΠΎΡΠ΅ΡΠΎΡΠΈ Intel ΠΎΡ 12 ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Gallium3D Iris.
ΠΡΠ°ΠΉΠ²Π΅ΡΡΡ Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Rust ΠΈ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ ΠΎΡ Karol Herbst ΠΎΡ Red Hat, ΠΊΠΎΠΉΡΠΎ ΡΡΠ°ΡΡΠ²Π° Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° Mesa, Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Nouveau ΠΈ ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΡΡΠ΅ΠΊ OpenCL. Rusticle Π΄Π΅ΠΉΡΡΠ²Π° ΠΊΠ°ΡΠΎ Π°Π½Π°Π»ΠΎΠ³ Π½Π° OpenCL ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Clover Π½Π° Mesa ΠΈ ΡΡΡΠΎ Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Gallium, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ Π² Mesa. Clover Π΅ ΠΈΠ·ΠΎΡΡΠ°Π²Π΅Π½ ΠΎΡ Π΄ΡΠ»Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈ rusticl Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ Π½Π΅Π³ΠΎΠ² Π±ΡΠ΄Π΅Ρ Π·Π°ΠΌΠ΅ΡΡΠΈΡΠ΅Π». Π Π΄ΠΎΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΡΠΌ ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Ρ OpenCL 3.0, ΠΏΡΠΎΠ΅ΠΊΡΡΡ Rusticle ΡΠ΅ ΡΠ°Π·Π»ΠΈΡΠ°Π²Π° ΠΎΡ Clover Π² ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° OpenCL ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΡ Π·Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π½ΠΎ Π²ΡΠ΅ ΠΎΡΠ΅ Π½Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠΎΡΠΌΠ°ΡΠ° FP16. ΠΠ° Π³Π΅Π½Π΅ΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ²ΡΡΠ·Π²Π°Π½ΠΈΡ Π·Π° Mesa ΠΈ OpenCL, ΠΊΠΎΠ΅ΡΠΎ Π²ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π° Rust ΠΎΡ C ΠΊΠΎΠ΄ ΠΈ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ, Π² Rusticle ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° 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 ΠΈ ΠΠ΅ΡΠ° 22.3.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
