В майском обновлении Windows 10 появилось второе поколение Windows Subsystem for Linux (WSL 2), которое привнесло значительно улучшение производительности для выполняемых в новой среде Linux-программ, «родную» поддержку графического интерфейса и аппаратное ускорение графики. Последнее касается не только GUI, но и работы с CUDA — в июне NVIDIA объявила о ранней поддержке этой возможности в WSL 2.
Реализовано это посредством технологии виртуализации GPU-PV, которая уже давно является частью модели WDDM —вызовы ПО пользовательского окружения пробрасываются непосредственно к драйверу, работающему с ядром ОС. Таким образом любые приложения, использующие слой виртуализации Windows — Sandbox, гости Hyper-V и, собственно, WSL 2 — могут получить доступ к GPU. А это, в свою очередь, позволяет исполнять требовательные к GPU задачи в отдельном окружении практически без потерь в производительности. В теории, конечно.
На практике поддержка этих возможностей со стороны NVIDIA всё ещё носит предварительный характер. В последнем обновлении, выпущенном вчера, компания исправила некоторые проблемы и добавила новые возможности. В частности, повышена производительность в случае запуска небольших, не сгруппированных нагрузок. Добавлена поддержка DirectML для аппаратного ускорения работы с DirectX 12 и включена возможность PTX JIT. Всё это делается на стороне драйвера, для доступа к которому надо быть участником программ NVIDIA Developer Program и Microsoft Windows Insider Program.
В следующей версии драйвера обещана поддержка OptiX, оптимизация работы с памятью, поддержка NVML и nvidia-smi, а также улучшения в работе систем с несколькими GPU. Всё это позволит упростить разработку и отладку ПО для ускорителей NVIDIA, сохранив доступ к привычному Linux-окружению и инструментам в Windows 10.