前回もお伝えしたように、Windows 10上でLinuxのGUIアプリを実行できるWSLg(Windows Subsystem for Linux GUI)が、Windows 10 Insider Preview ビルド21364から利用可能になった。ここで気になるのはGPUパフォーマンスだ。下記はMicrosoftの公式ブログで公開したベンチマーク結果だが、Surface Book 3のGPUであるIntel Iris Plus Graphics(CPU内蔵)でも、Windows版およびLinux版ともに18~19fpsしか出ていない。
GPU | ネイティブWin32 (Mesa) |
WSLg (vGPU・Mesa) |
WSLg (Software・Mesa) |
---|---|---|---|
NVIDIA RTX 3090 | 540fps | 350fps | 4fps |
Surface Book Gen3 (Intel・GPU) |
19fps | 18fps | 1fps |
そこで手元の実機でもベンチマークを試すことにした。まずは3DMarkで確認しようと思ったが、Linux版が用意されていないため、Basemark GPUも試してみたところ、Linux版が動作せず。よって、Microsoftと同じくGpuTestを使用した。ベースとなるPCはSurface Pro 7(Intel Core i7・16GBメモリ・Intel Iris Plus Graphics)で、WSLg環境はUbuntu on Windows Community Previewで構築している。
OpenGL 4.0を必要とするベンチマークタイプ(PixMark JuliaやTessMark)はLinux版で動作せず、今回はOpenGL 2.1/3.0用のFurMarkで比較している。結果はWindows版が73fps、Linux版が46fps。何度か試しているとLinux版はスコアにばらつきが生じたが、メインメモリーへのコピー時にオーバーヘッドが発生しているためと思われる。だが、WSLgが十分な能力を備えていることは確認できた。
冒頭で紹介したMicrosoftのベンチマークは、PixMark Piano(同じくOpenGL 2.1/3.0用)の実行結果との記載があることから筆者も試してみたが、確かにWindows版は19fpsに達したものの、Linux版は9fpsと奮わなかった。
Microsoftは現在のWSLgについて、以下のように説明し、今後はMesa 3Dの非同期処理などを模索していくという。
「Mesa 3Dはシステムメモリーを介してWeston(Waylandの合成機能)と相互運用している。レンダリングしたコンテンツを合成する前にシステムメモリーにコピーし、Windows 10のRDPクライアントのGPUに戻さなければならないことから、オーバーヘッドが発生している」
加えて、「WSLg v1は一定のパフォーマンスを提供しながらUXに注力し、WSLg v2以降はWin32アプリとLinuxアプリのパフォーマンスギャップを改善する」と、上記の公式ブログで述べている。
十分に期待できるWSLgだが、Microsoftの本気度を探ってみたい。先日、日本マイクロソフトの発表会で「WindowsとLinuxの融合を目指しているのか」と尋ねたところ、日本マイクロソフト Azure ビジネス本部 マーケットデベロップメント部 シニアプロダクトマネージャー/Azure SME 廣瀬一海氏は、個人的見解としながらも、以下のようにコメントした。
「2004年4月にWix(Windows Installer)をオープンソースとしてSourceForge.netにリリースしたことからも分かるように、当初から融合を目指してきたと思う。WSLからTensorFlow経由で機械学習し、その結果をgnuplotでグラフ化できる利便性は大きい」
また、日本マイクロソフト Azure ビジネス本部 マーケットデベロップメント部 プロダクトマネージャー/Azure SME 佐藤壮一氏も同じく個人的意見として、「開発者目線では統合を狙っていると思う。1つのプラットフォームでWindowsとLinuxアプリの実行環境を実現し、統合に向かっている印象を受ける」と回答している。
筆者自身はKDEやGnomeをWindows 10上で使いたいとは思っていないのだが、長年蓄積してきたLinuxアプリの恩恵をWindows 10で透過的に得られるのは大きなメリットだろう。WSLg v1の安定化や同v2の性能向上と今後の進化に期待したい。