Windows 10 の為の vSphere Hypervisor(=ESXi)、NVIDIA GPU、キーボードとマウスのパススルー 令和2年1月版

# はじめに
- ESXi の GPU パススルーを使い Windows 10 で DQ 10 ベンチマークの動作確認をしました。
- 先日は、Ubuntu で、Keras MNIST で動作確認をしました。
    - [vSphere Hypervisor(=ESXi) と NVIDIA GPU のパススルー 令和2年1月版](https://qiita.com/maeda_mikio/items/cb185e93c890dcfca144)
- これで、Windows でゲームをしたり、Ubuntu で機械学習をしたり、GPUの有効活用が出来ます。


# 環境
- MSI MPG Z390 GAMING PLUS ATX
- MSI NVIDIA GeForce GT710 (管理用)
- MSI GeForce GTX 1650 AERO ITX 4G OC (GPUパススルー用)
- オウルテック USB 3.0 カード OWL-PCEXU3E4 (キーボード、マウス用)


# パススルー設定
- GPU の他に、USB カードのパススルーを設定します。
- マザーボードの USB は、パススルー出来ないからです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/a0a0da89-407b-a7f6-e7c7-d971f1356919.png)


# 仮想マシンの作成
- 名前は `windows-nvidia` 互換性 `ESXi 6.7 仮想マシン` ゲスト OS ファミリ `Windows` ゲスト OS のバージョン `Microsoft Windows 10 (64 ビット)` に設定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/e554a947-b013-f422-a3f4-ca0a5a7b17ba.png)

- ストレージは、以下のキャプチャの通り。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/c23c0f37-d918-1252-639a-7cd6e538c408.png)

- パススルーの場合は `すべてのゲスト メモリを予約(すべてロック)` にする必要があります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/4e19f000-b848-8b2c-98a2-47d990153edb.png)


- GPU と USB の追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/6e591f68-c61d-870a-c1f6-12b205a56dfe.png)

- 起動オプションのファームウェアは　`EFI` にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/a3280d12-ff5f-2eb3-10d6-6eb90e8c913a.png)

- 構成の編集を実施します。キー `hypervisor.cpuid.v0` 値 `FALSE` を追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/9e7c66a7-ef95-9e40-2bcf-8b6946ad36a8.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/f1f89a2c-5539-4efd-7f8c-fe7cdef7a773.png)


# Windows 10 のインストール
- ESXi の仮想コンソール画面を使い、通常の手順でインストールを進めます。
- この時点では、GPUからの出力は出来ません。私は `HDMI` で出力する予定です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/fcc33185-5c1c-cd2c-e638-fc0143a4485b.png)

- 無事インストールが終わりました。
- この後、しばらく待つと、NVIDIA のドライバーが自動的にインストールされます。
- ドライバーのインストールが終わると、GPU の HDMI から出力が出来ました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/198eaec3-cb7a-93ef-b63b-cbf6f34fbdab.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/0a93f88d-bb96-a8b7-7637-d025c56e7425.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/3ac8ac3c-16cb-536b-10c4-ece4b9f02f09.png)

- 一旦、シャットダウンします。


# 仮想コンソール画面の停止
- ESXi の 構成の編集を実施します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/7a15dd76-53db-d16a-7f01-87e5fc54eefd.png)

- `svga.present` を `FALSE` にします。
- `svga.autodetect` を `FALSE` にします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/7ea83f82-c126-8ade-07b2-c1c7f7fdb44c.png)


# 仮想マシンを再起動
- USB カードに、キーボード、マウスを接続します。
- 仮想マシンを再起動します。
- 画面出力は、GPU パススルーのみ表示されます。
- キーボード、マウスを使える様になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/2cd01725-75cd-bfc5-24d3-931284d4f18f.png)


# DQ 10 ベンチマークの動作確認
- 以下の通り、普通に動作します。はぐれメタルだ!!!

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/e6ddfabd-bc51-8e43-c90e-b57627c41ef9.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/4dcd5b28-11e8-11ef-3bf9-79979508766f.png)

- もし、仮想コンソール画面の停止 していないと、以下の様にエラーが出て動作しません。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/68632/3a4007c7-05cb-698e-2a49-16a301045e78.png)


# おわりに
- ESXi、GPU、キーボードとマウスのパススルーで Windows 10 の動作確認をしました。
- これで、Windows 10 でゲームをしたり、Ubuntu で機械学習をしたりできますね。
- 普通は、デュアルブートなんでしょうが、個人的には ESXi でスナップショットをとれるのは、ありがたいです。