「Windows 10」の「Linux System for Windows」(WSL)では、近い将来GUIを使用するLinuxアプリを動かせるようになる。また、ゲストOSのLinux側からGPUのハードウェアアクセラレーションを利用する機能も追加される。
現在のWSLはコンソールでしか使えないが、WSL 2では、サードパーティーのXサーバーがなくても、LinuxのGUIアプリケーションを実行できるようになる。WSL 2は、2020年5月にリリース予定とされるWindows 10の機能アップデートと一緒に配信される予定だ。
Microsoftは、WSL 2上で実行されるLinuxベースの機械学習ワークロードでGPUのハードウェアアクセレレーションを利用できるようにするために、通常はWindows PCでゲームを動かすのに使用される、「DirectX」のグラフィック用APIを使用している。
同社はこれを実現するために、WSL 2のLinuxカーネルに、DirectXベースのLinux用カーネルドライバー(「dxgkrnl」のLinux版)を導入した。このドライバーは、サポート対象のGPUハードウェアに接続するためのものだ。
Microsoftによると、これはLinuxコンテナーを使ってクラウドに展開するワークロードを、WSL 2を使ってPCでテストしたい開発者の要望に対応している。
Microsoftが説明しているように、これまでのGPUの仮想化は、ゲストOSのLinuxではなく、VMやコンテナの中で実行されているWindows向けのものだった。しかし、「WDDM」(Windows Display Driver Model)のバージョン2.9では、ゲストOSのLinuxも仮想化されたGPUを使えるようになった。
Microsoftのパートナー開発リードであるSteve Pronovost氏は、「Linux環境で実行されているアプリケーションは、Windowsのネイティブアプリケーションと同じようにGPUにアクセスできる」と述べている。
「LinuxとWindowsの間でリソースが分割されているわけでもないし、Linuxアプリケーションに対する制限もない。リソースの共有は、完全にどれが何を必要としているかに応じて動的に決定される。
基本的に、GPUを共有する2つのWindowsアプリケーションと、同じGPUを共有するLinuxアプリケーションとWindowsアプリケーションの間に違いはない。GPUを使っているのがLinuxアプリケーションだけなら、すべてのリソースを独占できる」(Pronovost氏)