質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VMware

VMwareとは、 ハードウェアで動作するOS上で仮想マシンを作成、実行するソフトウェアです。 Windows上でUNIX系OSを動作させたり、他のOS上で別の仮想OSを動作することが可能です。

Q&A

解決済

2回答

15765閲覧

VMware上の仮想マシンでGPUを使いたい

kaisen

総合スコア28

VMware

VMwareとは、 ハードウェアで動作するOS上で仮想マシンを作成、実行するソフトウェアです。 Windows上でUNIX系OSを動作させたり、他のOS上で別の仮想OSを動作することが可能です。

0グッド

1クリップ

投稿2018/02/24 03:50

###実現したいこと
VMwareを使った仮想マシンに
GPUを認識させたいです。

###試したこと
対象とする仮想マシンの「仮想マシンの設定の編集」を開き、
「ハードウェア」タブの「追加」からグラフィックボードを追加できそうな設定を
探しましたが、見つかりませんでした。
今は色々検索して調べています。知識も足りないので勉強しながらです。

###補足情報
Windows10にて、VMware Workstation 12 Playerを使っています。
仮想OSはLinuxです。グラボはnvidiaです。

知恵をお貸しいただきたければ幸いです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

仮想マシン上でホストに接続されたGPUを認識させて使う方法があるかどうかと言うとあります。ただし、かなりハードルが高いです。

まずは、下記の記事を読んでください。

ESXi でGPUパススルーしてみた - Qiita

質問でやりたかったことを実現できていると思います。では、質問者さんの環境ですぐにできるのかというと、それはできません

上の機能はVMware ESXiのVMDirectPath I/Oという機能を使っています。通常のGPUはPCIe経由ですが、任意のPCIeを仮想マシンに割り当てるという機能です。また、この他に、対応しているGPUであれば、複数の仮想マシンでシェアするという機能もvGPUという機能もあります。どちらも、仮想マシンからホストを通さずに直接GPUを利用することになります。

お気づきかも知れませんが、VMware Workstation 12 PlayerではなくVMware ESXiでの話です。調べる限り、VMware Workstation 12 PlayerにESXiと同様のような機能は見受けられませんでした。仕組み上、仮想マシンに接続されるGPUはOSから切り離す必要がありますが、一般的なOS上で動作させる仮想化ソフトウェアはそのOSから切り離しがかなり厳しいと思われます(実際は切り離せますが、他にGPUが無ければディスプレイがないという状態になってしまいます。少なくともタスクマネージャーでGPUが二つ見える環境でないと無理でしょう)。ESXiのようなOS自体がHypervisorであれば、後付けのGPUをホスト側で使わずに起動できるので、実現ができるのでしょう。他には、XenDesktopでもできるという情報がありました。

ということで、どうしてもしたいのであれば、VMware ESXiをインストールしてください。いくつか制限はありますが、無償で使用できます(記事でも無償版を使用しています。なお、無償版の製品名としてはVMware vSphere Hypervisorです。ESXiはOSの名前で製品名ではありません)。ただし、次のことに注意してください。

  • OSを入れ直すことになりますので、今動いているWindows 10は無くなります。WindowsとESXiのデュアルブート構成もできません(少なくとも私はやり方を知りませんし、できるという情報も見たことがありません。そもそもESXiインストール時に「ディスクの中身が全て消えますが良いですか?」の意味の英語のメッセージが出ます)。(Windows 10のライセンスはなくなるわけではありません。しかし、仮想マシンにWindows 10をいれられるかどうかですが、それはよくわかりません。Windowsのライセンスは購入方法によってかなり複雑であるため、Microsoftに問い合わせしてください。OEMとかですとライセンスキーもどうするかも一緒に聞く必要があると思います。)
  • ESXiのコンソール画面で仮想マシンを管理することはできません。別途管理用にWindowsマシンが必要になります
  • 一部の仮想化環境専用GPU(GRID向けがほとんど)を除き、ほとんどのGPUは動作がサポートされていません。何もしなくてもそのまま動く場合もあれば、記事のように色々して動く場合もあれば、どうやっても動かない場合もあります。サポートされていないハードをESXi上で動作させるにはかなり敷居は高く、ESXiに関する高度な知識が必要です。かなりの覚悟を持って行ってください。試している人がほとんどいないため、完全な人柱です。

正直に言うと、仮想マシン上でGPUを確実に動かしたいというのであれば、仮想化をサポートしたサーバーとGPUとESXiをセットで購入した方が早いです。100万円はくだらないので個人で買うレベルではないと思いますが…。


【追記】

ESXiとXenDsektop以外でもPCI Passthrouh(上記のVMDirectPath I/Oに相当する機能)ができる物があるようです。参考:State of GPU Virtualization for CUDA Applications 2014 | Acceleware Ltd.

  • Oracle VirtualBox

ただし、2014年の段階ではホストはLinuxのみでExtension Pack(個人・教育向けは無償だが、商用利用は有償)が必要のようです。ホストがWindows 10の場合はうまくいかなかったという報告ばかりで、できたというのは見つけられませんでした。

  • Hyper-V

2014年の段階ではできていませんでしたが、最新のWindows Server 2016であれば可能です。しかし、Windows 10については機能が無効にされていてできないようです。

Hyper-VについてはRemoteFX vGPUというGPUを共有して使う機能もあり、こちらはホストがWindows 10もサポートしているようです。ただし、ゲストはWindowsクライアントのEnterprise版(企業向けなので個人への販売はありません)またはWindows Serverになります。Linux等は不明ですが、厳しいと思われます。

なお、仮想化とは異なりますが、WSLでのUbuntu上で認識できるかどうかですが、こちらもできないという報告があります。

ホストがどうしてもWindowsであってほしいというのであれば、Windows Server 2016に乗り換えるのが一番現実的かも知れません。

当たり前ですが、仮想マシンでGPUを使う場合は、ホスト側からそのGPUは切り離されます。CPU・チップセット内蔵、PCIe接続、外付け(Thunderbolt3経由)等をあわせて二つ以上のGPUが存在しなければそもそも不可能になります。

投稿2018/02/24 14:34

編集2018/02/25 00:20
raccy

総合スコア21733

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaisen

2018/02/24 15:10 編集

raccy様、回答ありがとうございます。 技術的な説明に関しては あまり多くは理解できていないと思うのですが、 確かに、私が調べた限りでもVMware ESXiに関する情報が多かったです。 そして、VMware ESXiについても、 あまり理解できていなかったのですが、 これは素人には扱えない方法だと思ってました。。。 raccy様の回答を受けて、なんとなく確証を得た気分です。 ただ、VMwarePlayerにて、 GPUが使えないという情報が 知識がなくても理解できるレベルで転がっていないので、 気になってしまっていました。 質問しといてあれですが、今回の質問はあきらめようかと思い始めてます。。。
kaisen

2018/02/24 15:29 編集

ありがとうございました。 あきらめて、 新しいPCなどにLinuxを入れて、 GPUを使う形になりそうです。 必要な知識をわかりやすくまとめて下さり、助かりました。 また機会があればよろしくお願いします。
kaisen

2018/02/25 13:16

>>[追記] 気づくのが遅れました。 付け加えていただきありがとうございます。 現時点では、[追記]のような感じなのですね。 近い将来にこれを試す人が増えて、 情報が増え、使えるようになればいいな(いずれは無償で。。。)、と思います。 それまでは色々可能な範囲で試していきます。
guest

0

ベストアンサー

VMwareというか仮想化ソフト一般には、そういう機能は無いと思います。
あくまで、仮想化ソフトで実現されたデバイスだけです。

投稿2018/02/24 11:46

otn

総合スコア84421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kaisen

2018/02/24 13:26 編集

otn様、回答ありがとうございます。 たとえば、 ディスプレイやUSB無線LANデバイスなどは、 認識されて使えますが、 これと同じように使うことはできないのですか? これには、 ライセンスなどの問題でもあるのでしょうか? それとも、仮想化ソフト一般には GPUを扱う技術がないということでしょうか? 変な二択でしたらごめんなさい。 そして、もしよろしければ、 この話題に関する情報のソースなどありましたら、 教えていただけますでしょうか。お願いします。
otn

2018/02/24 14:11

ディスプレイは、VMwareが提供する仮想的なディスプレイデバイスです。 ネットワークアダプタは、普通はVMwareが提供するネットワークアダプタ(ホストのネットワークアダプタとはブリッジ接続とか、NAT接続とか)を使いますが、USB接続のデバイスを直接使っているという事でしょうか? > 仮想化ソフト一般にはGPUを扱う技術 作れば作れると思いますよ。
kaisen

2018/02/24 14:50 編集

回答ありがとうございます。 >USB接続のデバイスを直接使っているという事でしょうか? いえ、USBコントローラというもので多分使えているのだと思います。 多少、仕組みの雰囲気が掴めてきました。 >作れば作れると思いますよ。 そうですか。 たとえば、USBコントローラだとかと同じように、 GPUコントローラ(仮名)でもあれば使える ということですね。 そして現状ではそれが無い、と。 この認識でよろしければ、解決済みにしてしまいます。
otn

2018/02/24 14:38

> USBコントローラというもので多分使えているのだと思います。 再度確認しますが、VMwareの設定で追加できるネットワークアダプタを使わずに、USBの先のデバイスを直接使っていると言うことですか? > たとえば、USBコントローラだとかと同じように、 > GPUコントローラ(仮名)でもあれば使える USBとはまた違いますね。USBコントローラーという物は物理PCに存在しますが、それを仮想的に実現しているのがVMwareのUSBコントローラーです。 GPUコントローラーのような物は物理PCに存在しません。
kaisen

2018/02/24 15:00

回答ありがとうございます。 >再度確認しますが、VMwareの設定で追加できるネットワークアダプタを使わずに、USBの先のデバイスを直接使っていると言うことですか? どうやら私が勘違いしていたようです。 初歩的な知識もなくて申し訳ありません。 USB無線LANデバイスをUSBコントローラを使って認識させたうえで ネットワークアダプタを使ってネットに接続しているのだと思います。 なにか、個人的に技術的なことをしてUSBの先のデバイスを直接使っているのではないと思います。 >GPUコントローラーのような物は物理PCに存在しません。 そうですか、GPUのデバイスドライバとかは似ているように思うのですが。。。 少し、私は知らなすぎるようです。
otn

2018/02/24 15:11

VMwareの設定画面のネットワークアダプタを使っているので有れば、USB無線LANデバイスを認識しているのは、ホストOSで、VMwareでもゲストOSでもありません。 この場合、VMwareの設定画面のUSBコントローラーは全く関係ありません。
kaisen

2018/02/24 15:29 編集

回答ありがとうございます。 >この場合、VMwareの設定画面のUSBコントローラーは全く関係ありません。 そうですか。 やはり、一度勉強しなおそうと思います。 このままでは手取り足取り教えてもらわなくてはならなくなりそうです。 今回の質問内容に関することはあきらめて、 新しいPCなどにLinuxを入れて、 GPUを使う形になりそうです。 詳しくありがとうございました。とても助かりました。 また機会がありましたらよろしくお願いします。
raccy

2018/02/24 23:52

このままだと誤解されていそうなので。 古いパソコンやCPU・チップセット組み込みでなければ、GPUが接続されるのはPCIe(PCI Express)です。USBと同じようにPCIeにもコントローラはあります。デバイスマネージャーで表示を「デバイス(接続別)」でみるとGPUがPCIe経由で接続されているのがわかるはずです。仮想マシンにも、技術的には、同じようにPCIeのコントローラーは実現できますし、USBのように接続を仮想マシン側のPCIeコントローラーに結びつけることもできます。ただ、VMware Workstaiton Playerにはその機能が無いと言うだけです。
otn

2018/02/25 04:52

なるほど。そうですね。言葉に捕らわれて狭く考えていました。 仮想PCIeコントローラーがあればいいのか。 (需要が少なそうな気がするので、搭載されないでしょうけど)
raccy

2018/02/25 05:43 編集

> 需要が少なそうな気がする エンタープライズ向けでは需要は決して少なくありません。仮想マシン上でのGPUを使った機械学習・AI、デスクトップ仮想化における仮想マシン上で3Dグラフィック処理(CADやグラフィックス分野で)、仮想通貨のマイニングと個人ではないレベルでは必要とされています。それに合わせてESXi、XenDesktop、サーバー向けHyper-Vでは既に実装されています。AMDもNVIDIA社も専用のグラフィックボードを発売しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問