RADV Vulkan ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ACO ์…ฐ์ด๋” ์ปดํŒŒ์ผ ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Mesa 20.2 ๋ฆด๋ฆฌ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ, ๊ตฌํ˜„ ์…ฐ์ด๋” ์ปดํŒŒ์ผ์„ ์œ„ํ•ด ๊ธฐ๋ณธ ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก AMD ์นฉ์šฉ Vulkan ๋“œ๋ผ์ด๋ฒ„์ธ RADV๋ฅผ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.ACO"๋Š” LLVM ์…ฐ์ด๋” ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋Œ€์•ˆ์œผ๋กœ Valve์—์„œ ๊ฐœ๋ฐœ ์ค‘์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ์œผ๋กœ ์ธํ•ด ๊ฒŒ์ž„ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜๊ณ  ์‹คํ–‰ ์‹œ๊ฐ„์ด ๋‹จ์ถ•๋ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฐฑ์—”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ํ™˜๊ฒฝ ๋ณ€์ˆ˜ "RADV_DEBUG=llvm"์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

RADV ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ƒˆ๋กœ์šด ๋ฐฑ์—”๋“œ๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ์€ ACO๊ฐ€ RadeonSI OpenGL ๋“œ๋ผ์ด๋ฒ„์—์„œ ๊ณ„์† ์‚ฌ์šฉ๋˜๋Š” AMDGPU ๋“œ๋ผ์ด๋ฒ„์šฉ์œผ๋กœ AMD๊ฐ€ ๊ฐœ๋ฐœํ•œ ์ด์ „ ๋ฐฑ์—”๋“œ์™€ ๊ธฐ๋Šฅ ๋ฉด์—์„œ ํŒจ๋ฆฌํ‹ฐ๋ฅผ ๋‹ฌ์„ฑํ•œ ํ›„์— ๊ฐ€๋Šฅํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ๋ฐธ๋ธŒ์— ์˜ํ•œ ํ…Œ์ŠคํŠธ ๋ณด์—ฌ ์ฃผ๋Š”ACO๋Š” ์ปดํŒŒ์ผ ์†๋„ ์ธก๋ฉด์—์„œ AMDGPU ์…ฐ์ด๋” ์ปดํŒŒ์ผ๋Ÿฌ๋ณด๋‹ค ๊ฑฐ์˜ ๋‘ ๋ฐฐ ๋น ๋ฅด๋ฉฐ RADV ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์žˆ๋Š” ์‹œ์Šคํ…œ์—์„œ ์‹คํ–‰ํ•  ๋•Œ ์ผ๋ถ€ ๊ฒŒ์ž„์—์„œ FPS๊ฐ€ ์ฆ๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

RADV Vulkan ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ACO ์…ฐ์ด๋” ์ปดํŒŒ์ผ ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

RADV Vulkan ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ACO ์…ฐ์ด๋” ์ปดํŒŒ์ผ ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์ „ํ™˜๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ACO ๋ฐฑ์—”๋“œ๋Š” ๊ฒŒ์ž„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์…ฐ์ด๋”์— ์ตœ๋Œ€ํ•œ ์ตœ์ ํ™”๋œ ์ฝ”๋“œ ์ƒ์„ฑ์„ ์ œ๊ณตํ•˜๊ณ  ๋งค์šฐ ๋†’์€ ์ปดํŒŒ์ผ ์†๋„๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ACO๋Š” C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ JIT ์ปดํŒŒ์ผ์„ ์—ผ๋‘์— ๋‘๊ณ  ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ ํฌ์ธํ„ฐ ๊ธฐ๋ฐ˜ ๊ตฌ์กฐ๋ฅผ ํ”ผํ•˜๊ณ  ๋น ๋ฅธ ๋ฐ˜๋ณต ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ ์ค‘๊ฐ„ ํ‘œํ˜„์€ ์ „์ ์œผ๋กœ SSA(Static Single Assignment)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ ์…ฐ์ด๋”์— ๋”ฐ๋ผ ๋ ˆ์ง€์Šคํ„ฐ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ์‚ฌ์ „ ๊ณ„์‚ฐํ•˜์—ฌ ๋ ˆ์ง€์Šคํ„ฐ ํ• ๋‹น์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€: ํ˜„์žฌ ACO๋Š” Mesa RADV Vulkan ๋“œ๋ผ์ด๋ฒ„์—์„œ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ACO ๊ฐœ๋ฐœ์ž ํ™•์ธ ๋œ๋‹ค์Œ ๋‹จ๊ณ„๋Š” RadeonSI OpenGL ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ACO์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๋Š” ์ž‘์—…์„ ์‹œ์ž‘ํ•˜์—ฌ ํ–ฅํ›„ ์ด ๋“œ๋ผ์ด๋ฒ„์— ๋Œ€ํ•ด ACO๊ฐ€ ๊ธฐ๋ณธ LLVM ์…ฐ์ด๋” ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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