はじめに
Proxmoxのホストになっているワークステーションはオンボードグラフィックがない代わりにPCIにGPUが刺さってた。
ゲームも画像AIも全然やったことないので、よくわからないけど、使わないのはもったいないので「GPUパススルー」ってのをやってみる。
環境
仮想化のホスト機はこんな感じ
- HP Z640
- CPU: Xeon E5-2650L v3 × 2(24コア48スレ)
- メモリ: DDR4 128GB (2400MHzがCPUで2133MHz駆動)
- ストレージ: M.2 NVMe 1TB (HP Z Turboドライブ経由)
- GPU: NVIDIA Quadro K620
このうちのGPUをホストからVMにパススルーしてWindows10で利用できるようにしてみる。
ホスト側の設定変更
作業前にBIOSでVT-dを有効にする必要がある。
HP Z640の場合はVT-xもVT-dもセキュリティ設定の中にいるので、ちょっとわかりにくい。
BIOS設定を修正したら、GRUB設定を修正する。
# 初期状態では以下
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
# これを以下のように修正する
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"
update-grub
これでホストを再起動したら dmesg
にVT-dが出ているか確認する。
# dmesg | grep -i virtualization
[ 7.116733] DMAR: Intel(R) Virtualization Technology for Directed I/O
WindowsVMを作成
WindowsのMediaCreationTool を利用してISOファイルを生成する。
ISOファイルが作成できたらpveのストレージ(local)の「ISOイメージ」→「アップロード」でホストに転送する
以下のようにWindowsVMを作成する。
このあとでGPUを指定するので start=1
しないでおく。
qm create 999 \
--name win-gpu \
--cores 4 \
--cpu host \
--memory 8192 \
--machine q35 \
--bios ovmf \
--efidisk0 local-lvm:0 \
--boot order='sata0;sata1' \
--sata0 local-lvm:32 \
--sata1 local:iso/Windows.iso,media=cdrom \
--net0 e1000,bridge=vmbr0,tag=10
# 失敗したら以下のように削除
# qm stop 999 && qm destroy 999 --purge
作成できたら「VM」→「ハードウェア」→「追加」から「PCIデバイス」を選択
別ダイアログが表示されるので「RawDevice」のプルダウンメニュから型番ぽいのを選択
「全機能」をオン「PCI-Express」をオンにして「追加」する
Windows上でのGPUの認識
これでVMを起動してWindowsをインストールしたらK620のドライバもインストールしておく。
で、リモートデスクトップ経由でVMに接続して状態を確認する。
さいごに
自分には縁がない機器なので、そもそも使いどころがよくわからないのですが、GPU使って画像生成?とか高速計算とかで使うんですかね?
とりあえず、つかえた。ってことで。