แž€แžถแžšแžขแž“แžปแžœแžแŸ’แž Rust แžšแž”แžŸแŸ‹ Mesa แž“แŸƒ OpenCL แžฅแžกแžผแžœแž“แŸแŸ‡แž‚แžถแŸ†แž‘แŸ’แžš OpenCL 3.0

แž€แžถแžšแžขแž“แžปแžœแžแŸ’แž OpenCL แžแŸ’แž˜แžธ (rusticl) แžŠแŸ‚แž›แžŸแžšแžŸแŸแžšแž‡แžถ Rust แžŠแŸ‚แž›แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‚แž˜แŸ’แžšแŸ„แž„ Mesa แž”แžถแž“แž†แŸ’แž›แž„แž€แžถแžแŸ‹แžŠแŸ„แž™แž‡แŸ„แž‚แž‡แŸแž™แž“แžผแžœแžˆแžปแžแžŸแžถแž€แž›แŸ’แž”แž„ CTS (Kronos Conformance Test Suite) แžŠแŸ‚แž›แž”แŸ’แžšแžพแž”แŸ’แžšแžถแžŸแŸ‹แžŠแŸ„แž™แžŸแž˜แŸ’แž–แŸแž“แŸ’แž’ Khronos แžŠแžพแž˜แŸ’แž”แžธแžœแžถแž™แžแž˜แŸ’แž›แŸƒแž—แžถแž–แž†แž”แž‚แŸ’แž“แžถแž‡แžถแž˜แžฝแž™แž“แžนแž„แž›แž€แŸ’แžแžŽแŸˆแž”แž…แŸ’แž…แŸแž€แž‘แŸแžŸ OpenCL 3.0 แŸ” แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„แžŠแŸ„แž™ Karol Herbst แž˜แž€แž–แžธ Red Hat แžŠแŸ‚แž›แž…แžผแž›แžšแžฝแž˜แž€แŸ’แž“แžปแž„แž€แžถแžšแžขแž—แžทแžœแžŒแŸ’แžแž“แŸ Mesa แžขแŸ’แž“แž€แž”แžพแž€แž”แžš Nouveau แž“แžทแž„ OpenCL open stack แŸ” แžœแžถแžแŸ’แžšแžผแžœแž”แžถแž“แž€แžแŸ‹แžŸแž˜แŸ’แž‚แžถแž›แŸ‹แžแžถ Carol แž”แžถแž“แž‘แžถแž€แŸ‹แž‘แž„ Khronos แž‘แžถแž€แŸ‹แž‘แž„แž“แžนแž„แž€แžถแžšแž”แž‰แŸ’แž‡แžถแž€แŸ‹แž‡แžถแž•แŸ’แž›แžผแžœแž€แžถแžšแž“แŸƒแž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžš OpenCL 3.0 แž“แŸ…แž€แŸ’แž“แžปแž„ rusticl แŸ”

แž€แžถแžšแž’แŸ’แžœแžพแžแŸแžŸแŸ’แžแžแŸ’แžšแžผแžœแž”แžถแž“แž”แž‰แŸ’แž…แž”แŸ‹แž“แŸ…แž›แžพแž”แŸ’แžšแž–แŸแž“แŸ’แž’แžŠแŸ‚แž›แž˜แžถแž“ Intel GPU แž‡แŸ†แž“แžถแž“แŸ‹แž‘แžธ 12 (Alder Lake) แŸ” แž€แžถแžšแž„แžถแžšแž“แŸแŸ‡แžแŸ’แžšแžผแžœแž”แžถแž“แžขแž“แžปแžœแžแŸ’แžแžŠแŸ„แž™แž”แŸ’แžšแžพแž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แž‰แŸ’แž‡แžถ Mesa Iris แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž‚แž˜แŸ’แžšแŸ„แž„แž“แŸแŸ‡แž€แŸแž‚แžฝแžšแžแŸ‚แžŠแŸ†แžŽแžพแžšแž€แžถแžšแž‡แžถแž˜แžฝแž™แž€แž˜แŸ’แž˜แžœแžทแž’แžธแž”แž‰แŸ’แž‡แžถ Mesa แž•แŸ’แžŸแŸแž„แž‘แŸ€แžแžŠแŸ‚แž›แž”แŸ’แžšแžพแž€แžถแžšแžแŸ†แžŽแžถแž„แž€แž˜แŸ’แžšแžทแžแž˜แž’แŸ’แž™แž˜ (IR) แž“แŸƒ NIR shaders แŸ” แžŸแŸ†แžŽแžพแžŠแžพแž˜แŸ’แž”แžธแž”แž‰แŸ’แž…แžผแž› Rusticle แž‡แžถแž˜แžฝแž™ Mesa แž“แŸ…แžแŸ‚แžŸแŸ’แžแžทแžแž€แŸ’แžšแŸ„แž˜แž€แžถแžšแžแŸ’แžšแžฝแžแž–แžทแž“แžทแžแŸ’แž™ แž แžพแž™แž˜แžทแž“แž‘แžถแž“แŸ‹แž˜แžถแž“แž€แžถแžšแžŸแž˜แŸ’แžšแŸแž…แž…แžทแžแŸ’แžแžŽแžถแž˜แžฝแž™แžแŸ’แžšแžผแžœแž”แžถแž“แž’แŸ’แžœแžพแžกแžพแž„แžแžถแžแžพแžแŸ’แžšแžผแžœแž”แž‰แŸ’แž…แžผแž›แž€แžผแžŠ Rust แž“แŸ…แž€แŸ’แž“แžปแž„ Mesa แžŠแŸ‚แžšแžฌแž‘แŸแŸ” แž˜แžปแž“แž–แŸแž› Rusticl แžแŸ’แžšแžผแžœแž”แžถแž“แž‘แž‘แžฝแž›แž™แž€แž‘แŸ…แž€แŸ’แž“แžปแž„แžŸแž˜แžถแžŸแž—แžถแž–แž˜แŸแžŸแžถ แžขแŸ’แž“แž€แžขแžถแž…แž”แŸ’แžšแžพแžŸแžถแžแžถแžŠแžถแž…แŸ‹แžŠแŸ„แž™แžกแŸ‚แž€แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž€แžถแžšแžŸแžถแž„แžŸแž„แŸ‹ แž“แŸ…แž–แŸแž›แž…แž„แž€แŸ’แžšแž„แžŠแŸ‚แž›แžขแŸ’แž“แž€แž‚แžฝแžšแžแŸ‚แž”แž‰แŸ’แž‡แžถแž€แŸ‹แž”แŸ‰แžถแžšแŸ‰แžถแž˜แŸ‰แŸ‚แžแŸ’แžšแžŸแžถแž„แžŸแž„แŸ‹ โ€œ-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm= แž–แžทแžโ€แŸ”

Rusticle แžŠแžพแžšแžแžฝแž‡แžถ analogue แž“แŸƒ OpenCL frontend Clover แžšแž”แžŸแŸ‹ Mesa แž แžพแž™แžแŸ’แžšแžผแžœแž”แžถแž“แž”แž„แŸ’แž€แžพแžแžกแžพแž„แž•แž„แžŠแŸ‚แžšแžŠแŸ„แž™แž”แŸ’แžšแžพแž…แŸ†แžŽแžปแž…แž”แŸ’แžšแž‘แžถแž€แŸ‹ Gallium แžŠแŸ‚แž›แž•แŸ’แžแž›แŸ‹แž“แŸ…แž€แŸ’แž“แžปแž„ Mesa แŸ” แž—แžถแž‚แž แŸŠแžปแž“ Clover แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แž‚แŸโ€‹แž”แŸ„แŸ‡โ€‹แž”แž„แŸ‹โ€‹แž…แŸ„แž›โ€‹แžขแžŸแŸ‹โ€‹แžšแž™แŸˆโ€‹แž–แŸแž›โ€‹แž‡แžถโ€‹แž™แžผแžšโ€‹แž˜แž€โ€‹แž แžพแž™ แž แžพแž™ rusticl แžแŸ’แžšแžผแžœโ€‹แž”แžถแž“โ€‹แžŠแžถแž€แŸ‹โ€‹แž‡แžถโ€‹แž€แž“แŸ’แž›แŸ‚แž„โ€‹แž‡แŸ†แž“แžฝแžŸโ€‹แžขแž“แžถแž‚แžโ€‹แžšแž”แžŸแŸ‹โ€‹แžœแžถโ€‹แŸ” แž”แž“แŸ’แžแŸ‚แž˜แž–แžธแž›แžพแž€แžถแžšแžŸแž˜แŸ’แžšแŸแž…แž”แžถแž“แž“แžผแžœแž—แžถแž–แž†แž”แž‚แŸ’แž“แžถ OpenCL 3.0 แž‚แž˜แŸ’แžšแŸ„แž„ Rusticle แžแžปแžŸแž–แžธ Clover แž€แŸ’แž“แžปแž„แž€แžถแžšแž‚แžถแŸ†แž‘แŸ’แžšแž•แŸ’แž“แŸ‚แž€แž”แž“แŸ’แžแŸ‚แž˜ OpenCL แžŸแž˜แŸ’แžšแžถแž”แŸ‹แžŠแŸ†แžŽแžพแžšแž€แžถแžšแžšแžผแž”แž—แžถแž– แž”แŸ‰แžปแž“แŸ’แžแŸ‚แž˜แžทแž“แž‘แžถแž“แŸ‹แž‚แžถแŸ†แž‘แŸ’แžšแž‘แž˜แŸ’แžšแž„แŸ‹ FP16 แž“แŸ…แžกแžพแž™แž‘แŸแŸ”

ะ”ะปั ะณะตะฝะตั€ะฐั†ะธะธ ะฑะธะฝะดะธะฝะณะพะฒ ะดะปั Mesa ะธ OpenCL, ะฟะพะทะฒะพะปััŽั‰ะธั… ะฒั‹ะทั‹ะฒะฐั‚ัŒ Rust-ั„ัƒะฝะบั†ะธะธ ะธะท ะบะพะดะฐ ะฝะฐ ะกะธ ะธ ะฝะฐะพะฑะพั€ะพั‚, ะฒ Rusticl ะทะฐะดะตะนัั‚ะฒะพะฒะฐะฝ rust-bindgen. ะ’ะพะทะผะพะถะฝะพัั‚ัŒ ะธัะฟะพะปัŒะทะพะฒะฐะฝะธั ัะทั‹ะบะฐ Rust ะฒ ะฟั€ะพะตะบั‚ะต Mesa ะพะฑััƒะถะดะฐะตั‚ัั ั 2020 ะณะพะดะฐ. ะ˜ะท ะฟะปัŽัะพะฒ ะฟะพะดะดะตั€ะถะบะธ Rust ัƒะฟะพะผะธะฝะฐะตั‚ัั ะฟะพะฒั‹ัˆะตะฝะธะต ะฑะตะทะพะฟะฐัะฝะพัั‚ะธ ะธ ะบะฐั‡ะตัั‚ะฒะฐ ะดั€ะฐะนะฒะตั€ะพะฒ ะทะฐ ัั‡ั‘ั‚ ะธะทะฑะฐะฒะปะตะฝะธั ะพั‚ ั‚ะธะฟะพะฒั‹ั… ะฟั€ะพะฑะปะตะผ ะฟั€ะธ ั€ะฐะฑะพั‚ะต ั ะฟะฐะผัั‚ัŒัŽ, ะฐ ั‚ะฐะบะถะต ะฒะพะทะผะพะถะฝะพัั‚ัŒ ะฒะบะปัŽั‡ะตะฝะธั ะฒ ัะพัั‚ะฐะฒ Mesa ัั‚ะพั€ะพะฝะฝะธั… ะฝะฐั€ะฐะฑะพั‚ะพะบ, ั‚ะฐะบะธั… ะบะฐะบ Kazan (ั€ะตะฐะปะธะทะฐั†ะธั Vulkan ะฝะฐ Rust). ะ˜ะท ะฝะตะดะพัั‚ะฐั‚ะบะพะฒ ะพั‚ะผะตั‡ะฐะตั‚ัั ัƒัะปะพะถะฝะตะฝะธะต ัะธัั‚ะตะผั‹ ัะฑะพั€ะบะธ, ะฝะตะถะตะปะฐะฝะธะต ะฟั€ะธะฒัะทั‹ะฒะฐั‚ัŒัั ะบ ะฟะฐะบะตั‚ะฝะพะน ัะธัั‚ะตะผะต cargo, ั€ะฐััˆะธั€ะตะฝะธะต ั‚ั€ะตะฑะพะฒะฐะฝะธะน ะบ ัะฑะพั€ะพั‡ะฝะพะผัƒ ะพะบั€ัƒะถะตะฝะธัŽ ะธ ะฝะตะพะฑั…ะพะดะธะผะพัั‚ัŒ ะฒะบะปัŽั‡ะตะฝะธั ะบะพะผะฟะธะปัั‚ะพั€ะฐ Rust ะฒ ัะฑะพั€ะพั‡ะฝั‹ะต ะทะฐะฒะธัะธะผะพัั‚ะธ, ะพะฑัะทะฐั‚ะตะปัŒะฝั‹ะต ะดะปั ะฟะพัั‚ั€ะพะตะฝะธั ะบะปัŽั‡ะตะฒั‹ั… ะบะพะผะฟะพะฝะตะฝั‚ะพะฒ ั€ะฐะฑะพั‡ะตะณะพ ัั‚ะพะปะฐ ะฒ Linux.

แž”แŸ’แžšแž—แž–: opennet.ru

แž‘แžทแž‰แž€แžถแžšแž”แž„แŸ’แž แŸ„แŸ‡แžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แžŸแž˜แŸ’แžšแžถแž”แŸ‹แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แž˜แžถแž“แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS, แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS ๐Ÿ”ฅ แž‘แžทแž‰แžŸแŸแžœแžถแž”แž„แŸ’แž แŸ„แŸ‡แž‚แŸแž แž‘แŸ†แž–แŸแžšแžŠแŸ‚แž›แžขแžถแž…แž‘แžปแž€แž…แžทแžแŸ’แžแž”แžถแž“แž‡แžถแž˜แžฝแž™แž“แžนแž„แž€แžถแžšแž€แžถแžšแž–แžถแžš DDoS แž“แžทแž„แž˜แŸ‰แžถแžŸแŸŠแžธแž“แž˜แŸ VPS VDS | ProHoster