Collabora์์ ๋น๋์ค ์ฝ๋ฑ ๊ฐ๋ฐ์ ๋ด๋นํ๋ ๋ค๋์ ์๋ฉ์ด๋ค๋ ๊ฐ๋ฐ์ ๋ฉ์ผ๋ง ๋ฆฌ์คํธ์ ๊ธ์ ์ฌ๋ ธ์ต๋๋ค. Linux- Mali G310, G510, G710๊ณผ ๊ฐ์ด CSF(Command Stream Frontend) ๊ธฐ์ ์ ์ฌ์ฉํ๋ ARM Mali GPU์ฉ Tyr ๋๋ผ์ด๋ฒ์ ์ด๊ธฐ ๊ตฌํ์ ๋๋ค. ๋๋ผ์ด๋ฒ ์ฝ๋๋ Rust๋ก ์์ฑ๋์์ผ๋ฉฐ 600์ค์ด ์กฐ๊ธ ๋๋ ๋ถ๋์ ๋๋ค. Tyr ๋๋ผ์ด๋ฒ ๊ฐ๋ฐ์ Collabora, Arm, Google์ด ๊ณต๋์ผ๋ก ์งํํ๊ณ ์์ต๋๋ค.
์ ๋๋ผ์ด๋ฒ๋ฅผ ์์ฑํ๊ธฐ ์ํ ํ๋ ์์ํฌ๋ NVIDIA GPU์ฉ์ผ๋ก ๊ฐ๋ฐ๋๊ณ Rust๋ก ์์ฑ๋์ด 6.15 ์ปค๋์ ๋ถ๋ถ์ ์ผ๋ก ์ถ๊ฐ๋ ์ถ์ rust_platform_driver ๋๋ผ์ด๋ฒ์ Nova ๋๋ผ์ด๋ฒ์ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํฉ๋๋ค. Mali GPU์ ์ํธ ์์ฉํ๋ ๊ธฐ๋ฅ์ C๋ก ์์ฑ๋ ๊ธฐ์กด Panthor(Direct Rendering Manager) DRM ๋๋ผ์ด๋ฒ์์ ํฌํ ๋์์ต๋๋ค. Tyr ๋๋ผ์ด๋ฒ์ uAPI๋ Panthor ๋๋ผ์ด๋ฒ์ uAPI์ ๋์ผํ๋ฏ๋ก ๊ธฐ์กด ์ฌ์ฉ์ ๊ณต๊ฐ ๊ตฌ์ฑ ์์๋ฅผ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค.
10์ธ๋ Mali GPU๋ถํฐ ์ฌ์ฉ๋ CSF ๊ธฐ์ ์ ์ผ๋ถ ๋๋ผ์ด๋ฒ ๊ธฐ๋ฅ์ ํ์จ์ด ์ธก์ผ๋ก ์ด๋ํ๊ณ GPU์์ ์์ ์คํ์ ๊ตฌ์ฑํ๋ ์๋ก์ด ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค๋ ์ ์์ ์ฃผ๋ชฉํ ๋งํฉ๋๋ค. CSF ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ถ GPU์์๋ ์์ ์ฒด์ธ ์ ์ก ๊ธฐ๋ฐ ๋ชจ๋ธ ๋์ , ํ์จ์ด ์ธก์์ ๋ช ๋ น ํ๋ฆ ํ๋ฅผ ์ค์ผ์ค๋งํ๋ ๋ช ๋ น ํ๋ฆ ๊ธฐ๋ฐ ๋ชจ๋ธ์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ค์ผ์ค๋ฌ์ ์์ ์ ๊ตฌ์ฑํ๊ธฐ ์ํด ๋ณ๋์ Cortex-M7 ๋ง์ดํฌ๋ก์ปจํธ๋กค๋ฌ๊ฐ GPU์ ๋ด์ฅ๋์ด ์์ผ๋ฉฐ, CSF ๋ช ๋ น์ด๋ฅผ ์คํํ๋ ํน์ ๋ช ๋ น ์คํ ์ฅ์น(Command Execution Unit)๊ฐ ์ ๊ณต๋ฉ๋๋ค.
Tyr์ ๊ธฐ๋ฅ์ ์ฌ์ ํ โโPanthor ๋๋ผ์ด๋ฒ๋ณด๋ค ๋ค์ฒ์ ธ ์์ง๋ง, ๊ฐ๋ฐ์๋ค์ ๋๋ผ์ด๋ฒ ์ฑ๋ฅ์ ๋๋ฑ์ฑ์ ๋ฌ์ฑํ ๋๊น์ง ๊ฒฉ์ฐจ๋ฅผ ์ ์ง์ ์ผ๋ก ์ค์ฌ๋๊ฐ ๊ณํ์
๋๋ค. ๋๋ฝ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด Rust์์ ๋๋ผ์ด๋ฒ๋ฅผ ๊ฐ๋ฐํ๊ธฐ ์ํด ์ปค๋์ ์ถ๊ฐ ์ถ์ํ๋ฅผ ํตํฉํด์ผ ํ๋ฏ๋ก, Tyr ๋๋ผ์ด๋ฒ ๊ฐ๋ฐ์ ์ด๋ฌํ ์ถ์ํ๋ฅผ ์ปค๋์ ์ถ๊ฐํ๋ ๊ฒ๊ณผ ๋์์ ์งํ๋ ๊ฒ์
๋๋ค. ์๋ฅผ ๋ค์ด, ์ปค๋์๋ ์์ง GPU์ฉ Rust ๋๋ผ์ด๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ๋งคํ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์ด ๊ธฐ๋ฅ์ GPUVM ํจ์น ์ธํธ์์ ๊ฐ๋ฐ ์ค์ด์ง๋ง ์์ง ์ฑํ๋์ง ์์์ต๋๋ค.
์ถ์ฒ : opennet.ru
