Основная цель — повысить комфорт Linux-разработчиков и ML-специалистов и позволить им эффективнее тестировать и развивать свои приложения, в том числе и через использование ресурсов штатного GPU-ускорителя.
По словам представителей Microsoft, поддержку DirectX в Windows Subsystem они внедрили на основании многочисленных запросов со стороны коммьюнити, причиной которых была недоступность GPU-ускорителей в Bash.
Теперь работа GPU-ускорителей в WSL будет обеспечиваться стандартным для Windows драйвером WDDMv2.9, для работы в WSL будет использоваться драйвер Dxgkrnl.
Однако не все так гладко, как показывают специалисты Microsoft. По факту, Dxgkrnl — абстракция-костыль, который работает в стиле прокси поверх WSL и общается из виртуальной машины через VM-шину с основным драйвером WDDM. Впрочем, Microsoft сами показывают это на своем слайде:
Для полноценной работы этого решения потребуется WSL 2 — вторая версия WSL для Windows, на первой версии доступа к GPU не будет.
Поддержка DX12 и DxCore тоже сомнительна. Microsoft заявляют, что для корректной работы WSL им потребовалось связываться с партнерами-производителями — для того чтобы перекомпилировать D3D12 UMD под Linux. Фактически, мы получаем еще один закрытый проприетарный DirectX, адаптированный конкретно под условия WSL.
Поверх DX12 в текущей реализации работает только OpenCL и OpenGL, а над внедрением поддержки Vulkan в показанную выше схему инженеры компании «еще думают и ищут варианты». Однако, по заверениям Microsoft, уже созданный инструментарий позволит решать задачи в области ML и AI с помощью библиотеки ML Framework.
Также была анонсирована доступность DirectML — API машинного обучения поверх API D3D12, которое позволит эффективнее решать задачи из сферы AI и обучения нейросетей. В основной своей массе DirectML ориентирован на студентов и новичков для того, чтобы снизить порог вхождения в работу в ML. Изначально DirectML будет поставляться с пакетом Tensorflow.
Из прочих важных вещей в анонсе стоит выделить то, что скоро в WSL подвезут поддержку графических приложений, хотя изначально эта среда задумывалась исключительно как консоль. Также реализована поддержка NVIDIA CUDA.
Этими шагами компания Microsoft в очередной раз показала, что придерживается курса повышения комфорта разработчиков, в том числе Linux-разработчиков, за счет внедрения новых возможностей в свои среды и расширения инструментария. Однако насколько удачными и комфортными окажутся предлагаемые решения, покажет только практика. Много вопросов вызывает закрытый перекомпилированный код, а также общая «костыльность» всей системы, в которой WSL не может напрямую общаться с GPU и делает это через шину VM в самой Windows. Также вызывает вопрос отсутствие во всей этой истории Vulkan.
lain8dono
Embrace, Extend, and Extinguish