ืžื™ืงืจื•ืกื•ืคื˜ ืžื™ื™ืฉืžืช ื”ืืฆืช ืฉืจืชื™ื ื’ืจืคื™ื™ื ื•-GPU ื‘-WSL

ืžื™ืงืจื•ืกื•ืคื˜ ื”ื•ื›ืจื– ืขืœ ื™ื™ืฉื•ื ืžืฉืžืขื•ืชื™ ืฉื™ืคื•ืจื™ื ื‘ืชืช-ืžืขืจื›ืช WSL (Windows Subsystem for Linux), ื”ืžื‘ื˜ื™ื—ื” ื”ืฉืงืช ืงื‘ืฆื™ ื”ืคืขืœื” ืฉืœ ืœื™ื ื•ืงืก ื‘-Windows:

  • ื ื•ืกืฃ ืชืžื™ื›ื” ื‘ื”ืคืขืœืช ื™ื™ืฉื•ืžื™ ืœื™ื ื•ืงืก ืขื ืžืžืฉืง ื’ืจืคื™, ื•ืžื‘ื˜ืœืช ืืช ื”ืฆื•ืจืš ืœื”ืฉืชืžืฉ ื‘ืฉืจืชื™ X ืžื—ื‘ืจื•ืช ืื—ืจื•ืช. ื”ืชืžื™ื›ื” ืžื™ื•ืฉืžืช ื‘ืืžืฆืขื•ืช ื•ื™ืจื˜ื•ืืœื™ื–ืฆื™ื” ืฉืœ ื’ื™ืฉื” ืœ-GPU.

    ืžื™ืงืจื•ืกื•ืคื˜ ืžื™ื™ืฉืžืช ื”ืืฆืช ืฉืจืชื™ื ื’ืจืคื™ื™ื ื•-GPU ื‘-WSL

    ื”ื•ื›ืŸ ืžื ื”ืœ ื”ืชืงืŸ ืคืชื•ื— ืขื‘ื•ืจ ืœื™ื‘ืช ืœื™ื ื•ืงืก dxgkrnl, ื”ืžืกืคืง ืœืžื›ืฉื™ืจ /dev/dxg ืฉื™ืจื•ืชื™ื ื”ืžืฉื›ืคืœื™ื ืืช ื”-WDDM D3DKMT ืฉืœ ืœื™ื‘ืช Windows. ื”ื ื”ื’ ื™ื•ืฆืจ ื—ื™ื‘ื•ืจ ืœ-GPU ื”ืคื™ื–ื™ ื‘ืืžืฆืขื•ืช ืืคื™ืง ื”-VM. ืœื™ื™ืฉื•ืžื™ ืœื™ื ื•ืงืก ื™ืฉ ืื•ืชื” ืจืžืช ื’ื™ืฉื” ืœ-GPU ื›ืžื• ืœื™ื™ืฉื•ืžื™ Windows ืžืงื•ืจื™ื™ื, ืœืœื ืฆื•ืจืš ื‘ืฉื™ืชื•ืฃ ืžืฉืื‘ื™ื ื‘ื™ืŸ Windows ื•-Linux.

    ืžื™ืงืจื•ืกื•ืคื˜ ืžื™ื™ืฉืžืช ื”ืืฆืช ืฉืจืชื™ื ื’ืจืคื™ื™ื ื•-GPU ื‘-WSL

    ื™ืชืจื” ืžื›ืš, ืกืคืจื™ื™ืช libd3d12.so ืžืกื•ืคืงืช ืขื‘ื•ืจ ืœื™ื ื•ืงืก, ื”ืžืกืคืงืช ื’ื™ืฉื” ื™ืฉื™ืจื” ืœ-API ื”ื’ืจืคื™ ืฉืœ Direct3D 12 ื•ื‘ื ื•ื™ื” ืžืื•ืชื• ืงื•ื“ ื›ืžื• ืกืคืจื™ื™ืช Windows d3d12.dll. ื’ืจืกื” ืคืฉื•ื˜ื” ืฉืœ โ€‹โ€‹ื”-API ืฉืœ dxgi ืžืกื•ืคืงืช ื’ื ื‘ืฆื•ืจื” ืฉืœ ืกืคืจื™ื™ืช DxCore (libdxcore.so). ื”ืกืคืจื™ื•ืช libd3d12.so ื•-libdxcore.so ื”ืŸ ืงื ื™ื™ื ื™ื•ืช ื•ืžืกื•ืคืงื•ืช ืจืง ื‘ืžื›ืœื•ืœื™ื ื‘ื™ื ืืจื™ื™ื (ืžื•ืจื›ื‘ื™ื ื‘- /usr/lib/wsl/lib) ื”ืชื•ืืžื•ืช ืขื ืื•ื‘ื•ื ื˜ื•, Debian, Fedora, Centos, SUSE ื•ื”ืคืฆื•ืช ืื—ืจื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ Glibc.

    ืžื™ืงืจื•ืกื•ืคื˜ ืžื™ื™ืฉืžืช ื”ืืฆืช ืฉืจืชื™ื ื’ืจืคื™ื™ื ื•-GPU ื‘-WSL

    ืชืžื™ื›ืช OpenGL ื‘-Mesa ืžืกื•ืคืงืช ื“ืจืš ืฉื›ื‘ืช ื‘ื™ื ื™ื™ื, ืฉืžืชืจื’ื ืงืจื™ืื•ืช ืœ-API ืฉืœ DirectX 12. ืฉื™ื˜ืช ื”ื”ื˜ืžืขื” ืฉืœ Vulkan API ืขื“ื™ื™ืŸ ื‘ืฉืœื‘ ื”ืชื›ื ื•ืŸ.

    ืžื™ืงืจื•ืกื•ืคื˜ ืžื™ื™ืฉืžืช ื”ืืฆืช ืฉืจืชื™ื ื’ืจืคื™ื™ื ื•-GPU ื‘-WSL

  • ื ื•ืกืคื” ืชืžื™ื›ื” ื‘ืžื—ืฉื•ื‘ ื‘ื›ืจื˜ื™ืกื™ ืžืกืš, ื”ืžืืคืฉืจืช ืœืš ืœื”ืฉืชืžืฉ ื‘ื”ืืฆืช ื—ื•ืžืจื” ืœืžืฉื™ืžื•ืช ื›ืžื• ืœืžื™ื“ืช ืžื›ื•ื ื” ื•ื‘ื™ื ื” ืžืœืื›ื•ืชื™ืช. ื‘ืฉืœื‘ ื”ืจืืฉื•ืŸ, ืกื‘ื™ื‘ื•ืช WSL ื™ืกืคืงื• ืชืžื™ื›ื” ืขื‘ื•ืจ CUDA ื• DirectML, ืคื•ืขืœ ืขืœ ื’ื‘ื™ ื”-API ืฉืœ D3D12 (ืœื“ื•ื’ืžื”, ื‘ืกื‘ื™ื‘ืช ืœื™ื ื•ืงืก ื ื™ืชืŸ ืœื”ืจื™ืฅ ืืช TensorFlow ืขื ืงืฆื” ืื—ื•ืจื™ ืขื‘ื•ืจ DirectML). ืชืžื™ื›ื” ื‘-OpenCL ืืคืฉืจื™ืช ื‘ืืžืฆืขื•ืช ืฉื›ื‘ื” ื”ืžื‘ืฆืขืช ืžื™ืคื•ื™ ืฉืœ ืงืจื™ืื•ืช ืœ-DX12 API.

    ืžื™ืงืจื•ืกื•ืคื˜ ืžื™ื™ืฉืžืช ื”ืืฆืช ืฉืจืชื™ื ื’ืจืคื™ื™ื ื•-GPU ื‘-WSL

  • ื”ืชืงื ืช WSL ืชืชืžื•ืš ื‘ืงืจื•ื‘ ื‘ืคืงื•ื“ื” ืคืฉื•ื˜ื” "wsl.exe --install".

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”