FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

VMware vSphere ESXiを試す + GPGPUの認識に挑戦

VMware vSphere ESXi を試してみよう。目的は、WindowsLinuxを同時に起動して、GPGPUが扱えるかテストすることだ。

msyksphinz.hatenablog.com

1. VMware vSphere ESXiの仕組み。

ここで、VMware ESXiのプログラムを起動したとき出てくるイラストを見てみよう。

f:id:msyksphinz:20160319023409p:plain

最初はホストマシンの上から全て制御できるのかと思っていたけれども、違うのね。ハイパーバイザにより管理されたコンピュータ(サーバ)が存在し、これに対してクライアントからアクセスする。 今回は、ホストマシンの上にWindows 7Ubuntuをインストールしてみた。

ホストマシンのインストール自体は、すぐに完了できる。ESXiのブートイメージを作成して、起動、インストールすれば終了だ。

ただし、はまったのは、ESXiの5.x系から、RealTekのLANのドライバが認識されなくなったらしい。このため、僕の使っているマザーボードでは、LANポートを見つけることができず、ESXiのインストールに失敗してしまう。

そこで、カスタムのイメージを作成してインストールする。参考にしたのは、以下のサイトだ。

zokibayashi.hatenablog.com

ESXi 6.0で実行したので、PowerShellVMware CLIをインストールして、以下のコマンドを実行するだけでISOイメージを作成することができた。

.\ESXi-Customizer-PS-v2.4.ps1 -v60 -vft -load sata-xahci,net55-r8168

という訳で、ESXiのインストールは完了し、その上のクライアントOSとしてWindows 7Ubuntu 15.10をインストールするところまで完了した。クライアントはノートPCを利用し、サーバにVMware ESXi, Windows7, Ubuntu 15.10をインストールしたという訳だ。

f:id:msyksphinz:20160319024251p:plain

Windows 7Ubuntuを同時起動した図。なかなか壮観だ。

2. で、結局ハイパーバイザ上のOSでGPGPUは使えるのか?

今回のトライをする前にいろいろ調査していたのだが、結論としては僕の持っているGeForce系では無理っぽい。nVIDIAの提供するGRID系とか、Tesla系のGPGPUならばダイレクトパッシングによるゲストOSからのアクセスをサポートしているらしいが、GeForceでは無理っぽい。

やったこととしては、ESXi Clientの設定画面にて、まずはゲストマシン上に接続されたGeForceカードが仮想マシンに直接アクセスできるように設定する。 [仮想マシンの設定]ページから[構成]→[詳細設定] で行ける。

f:id:msyksphinz:20160319025023p:plain

次に、Ubuntu 15.10の仮想マシンの設定で、ハードウェアとしてGeForceを追加する。

仮想マシンのメニューから[設定の編集]→[ハードウェア]ペイン→[追加]で、[PCIデバイス]でGeForceが選択できるようになっている。これを追加した。

f:id:msyksphinz:20160319025215p:plain

この結果、lspciによってGeForceが認識されたのだが、何故かCUDAから認識されない。

一応、debパッケージを使って最新のCUDAのドライバを入れたんだけどなあ。。。

$ lspci | grep NVIDIA
0b:00.0 VGA compatible controller: NVIDIA Corporation GK110B [GeForce GTX 780 Ti] (rev a1)
$ nvidia-detector
none

もうちょっとなんだけど、そもそもこれって、Ubuntuをネイティブにインストールしてもちゃんと認識できるんだろうか? そこも調査する必要があるなあ。