Rusticl์˜ ๊ฐœ๋ฐฉํ˜• ๋“œ๋ผ์ด๋ฒ„๋Š” OpenCL 3.0 ํ˜ธํ™˜ ์ธ์ฆ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

Mesa ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ฐœ์ž๋“ค์€ CTS(Kronos Conformance Test Suite) ์„ธํŠธ์˜ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ํ†ต๊ณผํ–ˆ์œผ๋ฉฐ API ๋ฐ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋ณ‘๋ ฌ ์ปดํ“จํŒ…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ C ์–ธ์–ด์˜ ํ™•์žฅ์ž…๋‹ˆ๋‹ค. ์ธ์ฆ์„œ๋ฅผ ํš๋“ํ•˜๋ฉด ๊ณต์‹์ ์œผ๋กœ ํ‘œ์ค€ ์ค€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ๊ด€๋ จ Khronos ์ƒํ‘œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๋Š” Gallium3.0D Iris ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 12์„ธ๋Œ€ ํ†ตํ•ฉ Intel GPU๊ฐ€ ํƒ‘์žฌ๋œ ์‹œ์Šคํ…œ์—์„œ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ด ๋“œ๋ผ์ด๋ฒ„๋Š” Rust๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ Mesa, Nouveau ๋“œ๋ผ์ด๋ฒ„ ๋ฐ OpenCL ์˜คํ”ˆ ์Šคํƒ ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ•œ Red Hat์˜ Karol Herbst๊ฐ€ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. Rusticle์€ Mesa์˜ OpenCL ํ”„๋ก ํŠธ์—”๋“œ Clover์™€ ์œ ์‚ฌํ•œ ์—ญํ• ์„ ํ•˜๋ฉฐ Mesa์—์„œ ์ œ๊ณต๋˜๋Š” Gallium ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Clover๋Š” ์˜ค๋žซ๋™์•ˆ ๋ฒ„๋ ค์กŒ๊ณ  Rustel์€ ํ–ฅํ›„ ๋Œ€์ฒดํ’ˆ์œผ๋กœ ์ž๋ฆฌ ์žก์•˜์Šต๋‹ˆ๋‹ค. OpenCL 3.0 ํ˜ธํ™˜์„ฑ์„ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„ Rusticle ํ”„๋กœ์ ํŠธ๋Š” ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ OpenCL ํ™•์žฅ์„ ์ง€์›ํ•œ๋‹ค๋Š” ์ ์—์„œ Clover์™€ ๋‹ค๋ฅด์ง€๋งŒ ์•„์ง FP16 ํ˜•์‹์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Mesa ๋ฐ OpenCL์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ์„ ์ƒ์„ฑํ•˜์—ฌ C ์ฝ”๋“œ์—์„œ Rust ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ๊ทธ ๋ฐ˜๋Œ€๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด Rusticle์—์„œ๋Š” Rust-bindgen์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

Rust ์–ธ์–ด ์ง€์› ์ฝ”๋“œ์™€ Rustel ๋“œ๋ผ์ด๋ฒ„๋Š” Mesa ์ฃผ๋ฅ˜์— ์ฑ„ํƒ๋˜์—ˆ์œผ๋ฉฐ 22.3์›” ๋ง์— ์˜ˆ์ƒ๋˜๋Š” Mesa 2021 ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ณต๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. Rust ๋ฐ Rustic ์ง€์›์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜๋ฉฐ "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=XNUMX" ์˜ต์…˜์ด ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •๋œ ๋นŒ๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œํ•  ๋•Œ ์ถ”๊ฐ€ ์ข…์†์„ฑ์œผ๋กœ Rustc ์ปดํŒŒ์ผ๋Ÿฌ, Bindgen ๋ฐ”์ธ๋”ฉ ์ƒ์„ฑ๊ธฐ, LLVM, SPIRV-Tools ๋ฐ SPIRV-LLVM-Translator๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Mesa ํ”„๋กœ์ ํŠธ์—์„œ Rust ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ๊ฐ€๋Šฅ์„ฑ์€ 2020๋…„๋ถ€ํ„ฐ ๋…ผ์˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Rust ์ง€์›์˜ ์žฅ์  ์ค‘์—๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ž‘์—… ์‹œ ์ผ๋ฐ˜์ ์ธ ๋ฌธ์ œ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  Kazan(Vulkan ๊ตฌํ˜„)๊ณผ ๊ฐ™์€ ํƒ€์‚ฌ ๊ฐœ๋ฐœ์„ Mesa์— ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด ํ–ฅ์ƒ๋œ ๋ณด์•ˆ ๋ฐ ๋“œ๋ผ์ด๋ฒ„ ํ’ˆ์งˆ์ด ์–ธ๊ธ‰๋ฉ๋‹ˆ๋‹ค. ๋Ÿฌ์ŠคํŠธ์—์„œ). ๋‹จ์ ์œผ๋กœ๋Š” ๋นŒ๋“œ ์‹œ์Šคํ…œ์˜ ๋ณต์žก์„ฑ ์ฆ๊ฐ€, ์นด๊ณ  ํŒจํ‚ค์ง€ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๊ฑฐ๋ถ€๊ฐ, ๋นŒ๋“œ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ ํ™•์žฅ, Linux์—์„œ ์ฃผ์š” ๋ฐ์Šคํฌํ†ฑ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋นŒ๋“œ ์ข…์†์„ฑ์— Rust ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํฌํ•จํ•ด์•ผ ํ•œ๋‹ค๋Š” ์  ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Carol Herbst๊ฐ€ ์ˆ˜ํ–‰ํ•œ Nouveau ๋“œ๋ผ์ด๋ฒ„ ๊ฐœ๋ฐœ ์ž‘์—…์— ๋Œ€ํ•ด์„œ๋„ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Nouveau ๋“œ๋ผ์ด๋ฒ„๋Š” 30๋…„ 2020์›” ์ดํ›„ ์ถœ์‹œ๋œ Ampere ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜์˜ GNU NVIDIA GeForce RTX 6.2xx์— ๋Œ€ํ•œ ๊ธฐ๋ณธ OpenGL ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์นฉ ์ง€์›๊ณผ ๊ด€๋ จ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ Linux 22.3 ์ปค๋„ ๋ฐ Mesa XNUMX์— ํฌํ•จ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€