Microsoft wdraża akcelerację serwera graficznego i GPU w WSL
Microsoftu ogłosił w sprawie wdrożenia znaczących ulepszenia w podsystemie WSL (Windows Subsystem for Linux), który zapewnia uruchomienie plików wykonywalnych systemu Linux w systemie Windows:
Dodany wsparcie dla uruchamiania aplikacji linuksowych z interfejsem graficznym, eliminując konieczność korzystania z serwerów X innych firm. Wsparcie realizowane jest poprzez wirtualizację dostępu do GPU.
Dla jądra Linux przygotowano otwarty sterownik dxgkrnl, który zapewnia urządzeniu /dev/dxg usługi replikujące WDDM D3DKMT jądra Windows. Sterownik nawiązuje połączenie z fizycznym procesorem graficznym za pomocą magistrali VM. Aplikacje systemu Linux mają ten sam poziom dostępu do procesora graficznego, co natywne aplikacje systemu Windows, bez konieczności współdzielenia zasobów między systemami Windows i Linux.
Co więcej, dla systemu Linux dostępna jest biblioteka libd3d12.so, która zapewnia bezpośredni dostęp do graficznego API Direct3D 12 i jest zbudowana z tego samego kodu, co biblioteka d3d12.dll systemu Windows. Dostępna jest także uproszczona wersja API dxgi w postaci biblioteki DxCore (libdxcore.so). Biblioteki libd3d12.so i libdxcore.so są zastrzeżone i są dostarczane wyłącznie w zestawach binarnych (zamontowanych w /usr/lib/wsl/lib) kompatybilnych z Ubuntu, Debianem, Fedorą, Centosem, SUSE i innymi dystrybucjami opartymi na Glibc.
Obsługa OpenGL w Mesie jest zapewniona poprzez warstwa, który tłumaczy wywołania na API DirectX 12. Sposób wdrożenia Vulkan API jest jeszcze na etapie planowania.
Dodano obsługę obliczeń na kartach graficznych, co pozwala na wykorzystanie akceleracji sprzętowej do zadań takich jak uczenie maszynowe i sztuczna inteligencja. W pierwszym etapie środowiska WSL zapewnią wsparcie dla CUDA i DirectML, działający na bazie interfejsu API D3D12 (na przykład w środowisku Linux można uruchomić TensorFlow z zapleczem dla DirectML). Obsługa OpenCL możliwa jest poprzez warstwę realizującą mapowanie wywołań do API DX12.
Instalacja WSL będzie wkrótce obsługiwana za pomocą prostego polecenia „wsl.exe --install”.