Microsoft๋Š” WSL์—์„œ ๊ทธ๋ž˜ํ”ฝ ์„œ๋ฒ„ ๋ฐ GPU ๊ฐ€์†์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ๋ฐœํ‘œํ–ˆ๋‹ค. ์ค‘์š”ํ•œ ๊ตฌํ˜„์— ๋Œ€ํ•ด ๊ฐœ๋Ÿ‰ Windows์—์„œ Linux ์‹คํ–‰ ํŒŒ์ผ์˜ ์‹คํ–‰์„ ๋ณด์žฅํ•˜๋Š” WSL(Linux์šฉ Windows ํ•˜์œ„ ์‹œ์Šคํ…œ) ํ•˜์œ„ ์‹œ์Šคํ…œ:

  • ์ถ”๊ฐ€๋จ ๊ทธ๋ž˜ํ”ฝ ์ธํ„ฐํŽ˜์ด์Šค๋กœ Linux ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์„ ์ง€์›ํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ ํšŒ์‚ฌ์˜ X ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ง€์›์€ GPU ์•ก์„ธ์Šค ๊ฐ€์ƒํ™”๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

    Microsoft๋Š” WSL์—์„œ ๊ทธ๋ž˜ํ”ฝ ์„œ๋ฒ„ ๋ฐ GPU ๊ฐ€์†์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

    Linux ์ปค๋„์šฉ ์˜คํ”ˆ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. dxgkrnl์ด๋Š” Windows ์ปค๋„์˜ WDDM D3DKMT๋ฅผ ๋ณต์ œํ•˜๋Š” ์„œ๋น„์Šค์™€ ํ•จ๊ป˜ /dev/dxg ์žฅ์น˜๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ฒ„๋Š” VM ๋ฒ„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌผ๋ฆฌ์  GPU์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Linux ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Windows์™€ Linux ๊ฐ„์— ๋ฆฌ์†Œ์Šค๋ฅผ ๊ณต์œ ํ•  ํ•„์š” ์—†์ด ๊ธฐ๋ณธ Windows ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๋™์ผํ•œ ์ˆ˜์ค€์˜ GPU ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

    Microsoft๋Š” WSL์—์„œ ๊ทธ๋ž˜ํ”ฝ ์„œ๋ฒ„ ๋ฐ GPU ๊ฐ€์†์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

    ๋˜ํ•œ Linux์šฉ libd3d12.so ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ œ๊ณต๋˜์–ด Direct3D 12 ๊ทธ๋ž˜ํ”ฝ API์— ๋Œ€ํ•œ ์ง์ ‘ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  Windows d3d12.dll ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋™์ผํ•œ ์ฝ”๋“œ๋กœ ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค. dxgi API์˜ ๋‹จ์ˆœํ™”๋œ ๋ฒ„์ „์€ DxCore ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(libdxcore.so) ํ˜•์‹์œผ๋กœ๋„ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. libd3d12.so ๋ฐ libdxcore.so ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋…์ ์ ์ด๋ฉฐ Ubuntu, Debian, Fedora, Centos, SUSE ๋ฐ Glibc ๊ธฐ๋ฐ˜์˜ ๊ธฐํƒ€ ๋ฐฐํฌํŒ๊ณผ ํ˜ธํ™˜๋˜๋Š” ๋ฐ”์ด๋„ˆ๋ฆฌ ์–ด์…ˆ๋ธ”๋ฆฌ(/usr/lib/wsl/lib์— ๋งˆ์šดํŠธ)๋กœ๋งŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

    Microsoft๋Š” WSL์—์„œ ๊ทธ๋ž˜ํ”ฝ ์„œ๋ฒ„ ๋ฐ GPU ๊ฐ€์†์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

    Mesa์˜ OpenGL ์ง€์›์€ ๋‹ค์Œ์„ ํ†ตํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ์ค‘๊ฐ„์ธตDirectX 12 API์— ๋Œ€ํ•œ ํ˜ธ์ถœ์„ ๋ณ€ํ™˜ํ•˜๋Š” Vulkan API ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์€ ์•„์ง ๊ณ„ํš ๋‹จ๊ณ„์— ์žˆ์Šต๋‹ˆ๋‹ค.

    Microsoft๋Š” WSL์—์„œ ๊ทธ๋ž˜ํ”ฝ ์„œ๋ฒ„ ๋ฐ GPU ๊ฐ€์†์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ธฐ๊ณ„ ํ•™์Šต ๋ฐ ์ธ๊ณต ์ง€๋Šฅ๊ณผ ๊ฐ™์€ ์ž‘์—…์— ํ•˜๋“œ์›จ์–ด ๊ฐ€์†์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋น„๋””์˜ค ์นด๋“œ ์ปดํ“จํŒ… ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ WSL ํ™˜๊ฒฝ์€ CUDA์— ๋Œ€ํ•œ ์ง€์›์„ ์ œ๊ณตํ•˜๊ณ  ๋‹ค์ด๋ ‰ํŠธML, D3D12 API ์œ„์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค(์˜ˆ๋ฅผ ๋“ค์–ด Linux ํ™˜๊ฒฝ์—์„œ๋Š” DirectML์šฉ ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ TensorFlow๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). OpenCL ์ง€์›์€ DX12 API์— ๋Œ€ํ•œ ํ˜ธ์ถœ ๋งคํ•‘์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ ˆ์ด์–ด๋ฅผ ํ†ตํ•ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    Microsoft๋Š” WSL์—์„œ ๊ทธ๋ž˜ํ”ฝ ์„œ๋ฒ„ ๋ฐ GPU ๊ฐ€์†์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ„๋‹จํ•œ "wsl.exe --install" ๋ช…๋ น์„ ํ†ตํ•ด WSL ์„ค์น˜๊ฐ€ ๊ณง ์ง€์›๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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