はじめに
Intel Alder Lakeを搭載したNUC12をProxmoxのテスト機として利用するにあたり、GPUのPassthroughを実現する実験プロジェクトの記事にしたがい、セットアップと動作確認を行った。セットアップ手順は、紹介する記事によくまとめられているので、そちらに譲り、留意点と動作確認状況を補足する。
2023/11/08記
カーネルのバージョンを6.2.16-19-pveに更新したところ、dkms moduleのbuildに失敗し、セットアップできなくなりました。
2023/11/13記
エラーメッセージに従い、比較的軽微なコード修正でbuildが通るようになりました(当方、intel_dp.c 5609行の#else以下が致命的なエラーを起こしていました)。腕に自信のない方は、むやみにUpdateをかけないほうが無難です。
セットアップと留意点
Proxmox VE 8の標準では、Alder LakeのGPUのPassthroughに対応していない。
これに対し、dkms moduleとして、SR-IOVに対応したi915ドライバの開発プロジェクトがある。ただし、'highly experimental(まだまだ、とっても実験段階)' とされているので注意。
このドライバーを用いて、Win11の環境を構築する手順については、以下の記事に詳しいので繰り返さない。以下、手間取りやすい箇所を留意点に示す。
なお、Virt-IOドライバーの導入手順が記されているが、GPU導入には関係しない。
留意点1 PCIデバイスの導入
NodeのHardwareにGPUに対応するPCIデバイスを登録する際、
pcie=1 (設定箇所はAdvanced内), x-vga=1を指定する。
留意点2 グラフィックスドライバーの導入
Intelのグラフィックスドライバーを導入する際、「インテル© ドライバー & サポート・アシスタント」を用いると、GPUが無効とされたので、グラフィックスドライバー(本記事では、gfx_win_101.4676.exe)を直接導入するのが安全と思われる。
動作確認状況
Win11でグラフィックスドライバーの導入に成功したあとの、確認状況を示す。
HWiNFOの表記
HWiNFOの表記で、EU数やALU数が表示される。'DISABLED'の表記はそのままだが。
デバイスマネージャーの表記
ディスプレイアダプターの項にIntelのグラフィックスアダプターが表記される。
また、タスクマネージャーでもGPUの欄が表示される。
留意点2で示したグラフィックスドライバーの導入が正常に行われない場合、デバイスマネージャーには表示されても、タスクマネージャーに表示されない状況になる。
DirectX診断ツール
レンダーとディスプレイに分かれて表示される。ここの意味するところは、理解が及ばないので、状況のみ示す。
GPUは、レンダーとして表示。
他の機能は、Remote Display Adapterの方に表示。
3Dベンチマーク
3DMark(2.10.6797のSky Diver, Night Raid)、FFベンチ(14,15)、DQベンチ(10)、いずれも動作せず。
ゲーム自体は、MicrosoftのSolitareなどは問題なく動作する。
OpenTKを用いたOpenCLのデモアプリの動作
次のデモアプリを用いて、動作を確認した。使用したOpenTKのバージョンは、4.8.0。
これは、OpenTKプロジェクト内のテストコードを元にしたもの。ただし、テストコードは、このままではOpenTK 4では動作しない。ToGrayscaleが未対応のようである。
なお、Form上のプラットフォーム名の表記部分('Intel(R) OpenCL Graphics')は、こちらで付け加えたもの。
おわりに
曲がりなりにもAlder Lake内蔵のGPUのPassthroughを確認できた。軽めのゲームなら実行できそう、というのもあるが、GPUを使ったアプリ開発ができそう、というのが大きい。演算力は大きくないが、NUC12の最大メモリ量(64GB)の半分をGPUメモリとして利用できるのは面白いかもしれない。