Microsoft реалізує у WSL графічний сервер та прискорення обчислень на GPU
компанія Microsoft оголосила про реалізацію значних покращень у підсистемі WSL (Windows Subsystem for Linux), що забезпечує запуск виконуваних файлів Linux у Windows:
Додана підтримка запуску Linux-програм з графічним інтерфейсом, що дозволяє відмовитися від необхідності використання X-серверів інших компаній. Підтримка реалізована через віртуалізацію доступу до GPU.
Для ядра Linux підготовлено відкритий драйвер dxgkrnl, що надає пристрій /dev/dxg з сервісами, що повторюють WDDM D3DKMT ядра Windows. Драйвер організує з'єднання з фізичним GPU за допомогою VM bus. Linux додатки мають той самий рівень доступу до GPU, як і рідні додатки для Windows, без застосування поділу ресурсів між Windows і Linux.
Більш того, для Linux надано бібліотеку libd3d12.so, що надає прямий доступ до графічного API Direct3D 12 і зібрана з того ж коду, що Windows-бібліотека d3d12.dll. У формі бібліотеки DxCore (libdxcore.so) також надано спрощений варіант API dxgi. Бібліотки libd3d12.so та libdxcore.so є пропрієтарними і поставляються лише у бінарних збірках (монтуються в /usr/lib/wsl/lib), сумісних з Ubuntu, Debian, Fedora, Centos, SUSE та іншими дистрибутивами на башті Glibc.
Підтримка OpenGL у Mesa забезпечена через прошарок, що транслює виклики в API DirectX 12. Метод реалізації API Vulkan поки що на стадії планування.
Додано підтримку комп'ютерних обчислень на відеокартах, що дозволяє використовувати апаратне прискорення для таких завдань як машинне навчання та штучний інтелект. На першому етапі у WSL-оточеннях буде забезпечена підтримка CUDA та DirectML, що працює поверх API D3D12 API (наприклад, в Linux-оточенні можна запустити TensorFlow з бекендом для DirectML). Підтримка OpenCL можлива через прошарок, що виконує мапінг дзвінків в API DX12.
Встановлення WSL незабаром буде підтримуватися за допомогою простої команди wsl.exe —install.