ProxmoxVEでPCI-Passthrouphはできる状態になっている前提で進める。
以下参照
https://qiita.com/disksystem/items/0879f379e2bbc7a08675
PART1 VMの作成
UbuntuServer18.04 LTSをインストールする。
https://ubuntu.com/download/server
Windowsのときと同じようにPCI-Passthroughできる状態のVMを用意する
グラフィックカードは「VMWare互換」を選択する。noVNCでの表示不具合が少ない。BIOSはOVMF、マシンはq35。PCI-Passthroughすると管理画面からUbuntuの画面が見えなくなるので、一旦コンソールで見える状態でUbuntuのインストール作業を行い、SSHでアクセスできる状態まで完了してからGPU-Passthroughを有効化する
SSDの場合、Trimの問題があるのでDiscardにチェックを入れると良いかもしれない。
CPUの種別は「host」
RNGの追加。
PART2 UbuntuServerのインストール
「English」
「Japanese」
SSHのインストールを行うかどうかの選択肢が表示されるのでチェックを入れる
ISOファイルを読まないように管理画面側で変更してからENTERする
再起動後にSSHでログインできるか確認する
QEMU-Agentをインストールする。管理画面からシャットダウン、IPの確認等できるようになる
$ sudo apt install qemu-guest-agent
その他、キー配列・タイムゾーンを設定する
sudo localectl set-keymap jp106
sudo timedatectl set-timezone Asia/Tokyo
PART3 PCI-Passthroughを有効化
/etc/pve/qemu-server/110.conf
にVMの追加修正
# 追加行。必須なのは「host」「hv_vendor_id=whatever」「kvm=off」あとはパフォーマンス調整のおまけ
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=whatever,kvm=off,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,smep=off,-pcid,-spec-ctrl,-ssbd,-hv-evmcs,+aes'
# 変更1(Windowsでグラボ経由でのオーディオに不具合があったため念の為。q35でも動くは動くはず)
# before
machine: q35
# after
machine: pc-q35-3.1
# 変更2(RyzenなどCPUに内蔵GPUがない場合のみ)
# before
hostpci0: 26:00,pcie=1,x-vga=1
# after
hostpci0: 26:00,pcie=1,x-vga=1,romfile=Z_1050Ti_Mod.rom
起動してSSHでアクセス。GPUを認識しているか確認
$ lspci | grep NVIDIA
01:00.0 VGA compatible controller: NVIDIA Corporation GP107 [GeForce GTX 1050 Ti] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP107GL High Definition Audio Controller (rev a1)
PART4 CUDAのインストール
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/7fa2af80.pub
sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/ /"
sudo apt update
sudo apt -y install cuda-drivers cuda
echo 'export PATH="/usr/local/cuda/bin:$PATH"' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH="/usr/local/cuda/lib64:$LD_LIBRARY_PATH"' >> ~/.bashrc
sudo reboot
再起動後にCUDAが動作しているか確認する
$ nvidia-smi
Mon Apr 13 06:51:55 2020
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.64.00 Driver Version: 440.64.00 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce GTX 105... On | 00000000:01:00.0 Off | N/A |
| 30% 19C P8 N/A / 75W | 1MiB / 4040MiB | 0% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
| No running processes found |
+-----------------------------------------------------------------------------+
おしまい