В официальном блоге разработчиков Microsoft специалисты компании сообщили о внедрении поддержки аппаратного ускорения на GPU для среды Windows Subsystem for Linux 2. Она представляет собой слой совместимости для запуска Linux-приложений в ОС Windows 10. Среда виртуализации направлена в первую очередь на программистов, желающих разрабатывать и тестировать рабочие нагрузки Linux локально на ПК с Windows 10.
Ключевым нововведением является драйвер ядра для Linux под названием Dxgkrnl, работающий на основе протокола паравиртуализации графического ядра GPU-PV для WDDM (Windows Display Driver Model). Dxgkrnl позволяет Linux-приложениям подключаться через шину VM к драйверу графики на хосте Windows и использовать это соединение для связи с физическим графическим процессором.
Если на физическом ПК установлено несколько графических процессоров, все они проецируются и доступны для среды Linux (при условии использования WDDMv2.9 и выше). Приложения, работающие в среде Linux, имеют полный доступ к графическому процессору, как и собственные приложения Windows, без ограничений и разделения ресурсов.
Для совместимости с API DirectX 12 разработчики Microsoft создали библиотеки D3D12 on Linux (libd3d12.so) и DxCore (libdxcore.so). На данный момент еще не реализована интеграция с WSL, поэтому библиотеки могут использоваться для закадрового рендеринга и вычислений, без поддержки вывода изображения на экран. В будущем этот вопрос обещают решить.
В дополнение к D3D12 on Linux и DxCore говорится о поддержке API машинного обучения DirectML, а также параллельных вычислений CUDA и инструментов Nvidia-Docker на видеокартах GeForce. Также ведутся работы по обеспечению совместимости API Vulkan в WSL, но эта часть проекта пока далека от сформированного вида.
Указанные нововведения для WSL появятся в сборках Windows Insider в ближайшее время.