Mesa ํ๋ก์ ํธ๋ฅผ ์ํด ๊ฐ๋ฐ ์ค์ธ Rust๋ก ์์ฑ๋ ์๋ก์ด OpenCL ๊ตฌํ(rusticl)์ OpenCL 3.0 ์ฌ์๊ณผ์ ํธํ์ฑ์ ํ๊ฐํ๊ธฐ ์ํด Khronos ์ปจ์์์์์ ์ฌ์ฉํ๋ CTS(Kronos Conformance Test Suite) ํ ์คํธ ์ค์ํธ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ํต๊ณผํ์ต๋๋ค. ์ด ํ๋ก์ ํธ๋ Mesa, Nouveau ๋๋ผ์ด๋ฒ ๋ฐ OpenCL ์คํ ์คํ ๊ฐ๋ฐ์ ์ฐธ์ฌํ๊ณ ์๋ Red Hat์ Karol Herbst๊ฐ ๊ฐ๋ฐ ์ค์ ๋๋ค. Carol์ Rustl์ OpenCL 3.0 ์ง์ ๊ณต์ ์ธ์ฆ๊ณผ ๊ด๋ จํ์ฌ Khronos์ ๋ฌธ์ํ ๊ฒ์ผ๋ก ๋ํ๋ฌ์ต๋๋ค.
ํ ์คํธ๋ 12์ธ๋ Intel GPU(Alder Lake)๊ฐ ํ์ฌ๋ ์์คํ ์์ ์๋ฃ๋์์ต๋๋ค. ์์ ์ Mesa Iris ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ ์ํ๋์์ง๋ง ํ๋ก์ ํธ๋ NIR ์ ฐ์ด๋์ ์ ํ ์๋ IR(์ค๊ฐ ํํ)์ ์ฌ์ฉํ๋ ๋ค๋ฅธ Mesa ๋๋ผ์ด๋ฒ์์๋ ์๋ํด์ผ ํฉ๋๋ค. Rusticle๊ณผ Mesa๋ฅผ ๋ณํฉํ๋ ค๋ ์์ฒญ์ ์์ง ๊ฒํ ์ค์ด๋ฉฐ Mesa์ Rust ์ฝ๋๋ฅผ ํฌํจํ ์ง ์ฌ๋ถ์ ๋ํ ๊ฒฐ์ ์ ๋ด๋ ค์ง์ง ์์์ต๋๋ค. Rusticl์ด ๋ฉ์ธ Mesa ๊ตฌ์ฑ์ ์ ์ฉ๋๊ธฐ ์ ์, ์ปดํ์ผํ ๋ ๋น๋ ๋งค๊ฐ๋ณ์ "-Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm=์ ์ง์ ํด์ผ ํ๋ ๋ณ๋์ ๋น๋ ๋ถ๊ธฐ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ง์ค".
Rusticle์ Mesa์ OpenCL ํ๋ก ํธ์๋ Clover์ ์ ์ฌํ ์ญํ ์ ํ๋ฉฐ Mesa์์ ์ ๊ณต๋๋ Gallium ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ๋์์ต๋๋ค. Clover ์ง๋ถ์ ์ค๋ซ๋์ ๋ฒ๋ ค์ก์ผ๋ฉฐ Rustel์ด ํฅํ ๋์ฒด ์ง๋ถ์ผ๋ก ์๋ฆฌ๋งค๊นํ์ต๋๋ค. OpenCL 3.0 ํธํ์ฑ์ ๋ฌ์ฑํ๋ ๊ฒ ์ธ์๋ Rusticle ํ๋ก์ ํธ๋ ์ด๋ฏธ์ง ์ฒ๋ฆฌ๋ฅผ ์ํ OpenCL ํ์ฅ์ ์ง์ํ๋ค๋ ์ ์์ Clover์ ๋ค๋ฅด์ง๋ง ์์ง FP16 ํ์์ ์ง์ํ์ง ์์ต๋๋ค.
Mesa ๋ฐ OpenCL์ ๋ํ ๋ฐ์ธ๋ฉ์ ์์ฑํ์ฌ C ์ฝ๋์์ Rust ํจ์๋ฅผ ํธ์ถํ๊ฑฐ๋ ๊ทธ ๋ฐ๋๋ก ํธ์ถํ ์ ์๋๋ก ํ๊ธฐ ์ํด Rusticle์์๋ Rust-bindgen์ด ์ฌ์ฉ๋ฉ๋๋ค. Mesa ํ๋ก์ ํธ์์ Rust ์ธ์ด๋ฅผ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ 2020๋
๋ถํฐ ๋
ผ์๋์์ต๋๋ค. Rust ์ง์์ ์ฅ์ ์ค์๋ ๋ฉ๋ชจ๋ฆฌ ์์
์ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ๋ฅผ ์ ๊ฑฐํ๊ณ Kazan(Vulkan ๊ตฌํ)๊ณผ ๊ฐ์ ํ์ฌ ๊ฐ๋ฐ์ Mesa์ ํฌํจํ ์ ์๋ ๊ธฐ๋ฅ์ผ๋ก ์ธํด ํฅ์๋ ๋ณด์ ๋ฐ ๋๋ผ์ด๋ฒ ํ์ง์ด ์ธ๊ธ๋ฉ๋๋ค. ๋ฌ์คํธ์์). ๋จ์ ์ผ๋ก๋ ๋น๋ ์์คํ
์ ๋ณต์ก์ฑ ์ฆ๊ฐ, ์นด๊ณ ํจํค์ง ์์คํ
์ ๋ํ ๊ฑฐ๋ถ๊ฐ, ๋น๋ ํ๊ฒฝ์ ๋ํ ์๊ตฌ ์ฌํญ ํ์ฅ, Linux์์ ์ฃผ์ ๋ฐ์คํฌํฑ ๊ตฌ์ฑ ์์๋ฅผ ๋น๋ํ๋ ๋ฐ ํ์ํ ๋น๋ ์ข
์์ฑ์ Rust ์ปดํ์ผ๋ฌ๋ฅผ ํฌํจํด์ผ ํ๋ค๋ ์ ๋ฑ์ด ์์ต๋๋ค.
์ถ์ฒ : opennet.ru