MacにおけるeGPUについてあまり知られてない10のこと

Macにおいて外付けGPU(eGPU)が使えるのは恐らくほとんどのMacユーザーが知っていると思うが、MacにおけるeGPUについてあまり知られていないことを10個ほど上げてみる。

eGPUとの伝送は実は32Gbps

画像出典 Reddit

Macに限らずWindowsでもeGPUを利用する際は40Gbpsという高帯域のThunderbolt 3ポートを介して接続するのはよく知られている。

ただ、このThunderbolt 3の総帯域幅は40Gbpsであるが、eGPUを利用する際はPCI-E 3.0 x4レーンでの伝送になるため実際の帯域は32Gbpsである

そもそも40Gbpsというのは総帯域幅(Maximum Total Bandwidth)であり、実効帯域幅(Maximum Total Data Rate)ではない。

総帯域幅が40Gbpsあってもその伝送において一部の信号などがエンコード用途で使用されるため帯域幅は総帯域幅より小さくなる。

総帯域幅はあくまで「全ての信号がこの帯域で伝送される」ということを表しており、eGPUなどが利用出来る帯域は限られる。

複数のeGPUを繋いでパフォーマンスアップ出来る

WWDC 2018 基調講演

実はeGPUはデスクトップPCで言うSLICrossFireのように複数のeGPUを繋ぐことが可能であり同一のeGPUを複数繋げればパフォーマンスがアップする。

なお何台まで複数eGPUを繋げられるのかはAppleはアナウンスしていない。

基調講演の画像を見ると3台までのように見えるがThunderbolt 3を4ポート搭載しているMacでは理論上は4台まで可能に思える。

注意点として、一部のMacコンピュータ(2017年までのMacBook Pro 13インチなど)では例え4つのThunderbolt 3ポートを搭載していても内部のコントローラーのバージョンの違いで全てのポートでは最大帯域で使用できない場合があり、eGPUを複数繋げたとしても帯域不足でパフォーマンスが低下する可能性がある。

The two ports on the right side of the machine have Thunderbolt 3 functionality but with reduced PCI Express bandwidth. For that reason, Apple recommends plugging higher-performance devices into the left-hand ports on that machine.


右側のThunderbolt 3ポートはPCI-Expressのレーン数不足のため、ハイパフォーマンスデバイスは左側のポートで使用することをAppleは推奨している。

MacRumors

また、eGPUを複数繋げる際はデイジーチェーン(数珠繋ぎ)での利用はThunderbolt 3がオーバーロードするため直接MacのThunderbolt 3ポートに接続することを、少なくともBlackmagicは推奨している。

複数のBlackmagic eGPUを接続することでDaVinci Resolve Studioのパフォーマンスは改善されますが、Blackmagic eGPUを互いにデイジーチェーン接続することは推奨しません。Thunderbolt 3の接続がオーバーロードになるためです。各Blackmagic eGPUを、それぞれのThunderbolt 3コネクターで直接コンピューターに接続してください。通常、ゲームでは一度に1台のBlackmagic eGPUのみ使用できます。

Vook

更にeGPUを複数繋げてもゲームにおいては1台しか使用されない。

アクティビティモニタでeGPUの使用率をチェック出来る

macOSのアクティビティモニタは誰もが使うと思うが、実はアクティビティモニタを起動し”メニューバー””ウィンドウ”から”GPUの履歴”をクリックすることでGPUの使用率を表示することができ、これはeGPU接続時においても有効である。

eGPUを接続中はFireVaultログイン・復元・ソフトウェアアップデートが出来ない

少なくともmacOS Mojaveにおいては現時点でeGPUを接続中はFireVaultログイン及びソフトウェアアップデートmacOSの復元を利用出来ない。

FireVaultが有効な状態のMacにeGPUを繋ぎ起動や再起動などを行うと、外付けディスプレイで使用するMac miniなどは画面が真っ暗になり何も表示されなくなる。

これを回避するには起動・再起動時にはeGPUを接続しないか、FireVaultを無効化する必要がある。

また、何らかのトラブルでmacOSを復元中やソフトウェアアップデートの際もeGPUは利用出来ない。

2019年8月6日追記
管理人が最近改めてテストをしたところ、Mojave 10.14.6を導入したシステムにおいて、eGPU接続中でもソフトウェアアップデートが可能になっていることを確認しました。
ただ、Appleは依然としてソフトウェアアップデート中はeGPUを利用できないという立場のため、念の為ソフトウェアアップデート中はeGPUを外しておいた方がいいでしょう。

eGPUは実はThunderbolt 2でも使える

Appleは非推奨であるが、実は裏技的にeGPUはThunderbolt 2ポートを搭載したMacでも接続することができ伝送帯域によるパフォーマンスの低下はあるが、それなりのパフォーマンスアップを見込める。

必要なものはPurgeWranglerというスクリプトとmacOS 10.13.4以降を搭載したMacThunderbolt 3>Thunderbolt 2変換アダプタと当たり前だがeGPU一式の4つ。

macOS Mojave以降ではGeForceは使えない

そもそもMacにeGPUを導入する上でGeForceの使用はAppleは全くサポートも推奨もしていないのだが、macOS High Sierraまでは海外の有志が作った特殊なスクリプトを実行することで安定性に問題はあるもののGeForceの使用が出来ていた。

しかしmacOS Mojave以降ではNVIDIAのドライバーが削除されたため、macOS Mojave以降では現状どのようなことをしてもGeForceの利用は出来ない。

Bootcampでなら使用可能だがそれならそもそもMacにする必要もあまりない。

海外ではこの変更は大きな騒動となり署名活動までやっているほどだ。

この問題についてはAppleはいかなる発表もしていないが、正直もうちょっとユーザーに寛容であってほしいと思う。

アプリケーションによってはeGPU非対応アプリも強制的に対応させることが可能

MacでeGPUを使用する上で、アプリケーションによってはeGPUをサポートせず、内蔵グラフィックやMacBook Proなどに搭載されてるディスクリートGPUを代わりに使用してeGPUの恩恵を全く受けられない場合があるがmacOS Mojaveからは一部のeGPU非対応アプリケーションでも強制的にeGPUを使用させるようにする設定が可能だ。

設定は単純で、アプリケーションのアイコンを右クリックして情報を表示させ”外部GPUを優先”にチェックを付ける。

このオプションは必ずしもどのアプリケーションにも存在するわけではなく、またこのオプションを有効にしたとしてもeGPUが正常に動作するのを保証するものでもないが、Mojaveからの大きな変更点の一つと言えると思う。

Blackmagic eGPUはWindowsでの使用を推奨していない

大半のeGPUはThunderbolt 3端子を搭載したものであればWindows PCでも動作が可能でありWindows自体もeGPUをサポートしている。

ただし、Blackmagic eGPUに限ってはWindows PCでの使用を推奨しておらず現時点では非サポートである。

これはBlackmagic eGPU Radeon Pro 580モデルがMac向けにカスタムされた特別なRadeon GPUであることに起因している。

Radeon Pro 580はMac向けの特別仕様であるため、Windows PCに接続してもAMDのRadeon Pro 580向けのドライバーがないのだ。

ただ、僕は検証出来る環境がないがRadeon RX Vega 56を搭載しているBlackmagic eGPU ProはWindows PCでの使用も可能と思われる(Vega 56は単体でも販売されている一般向けGPUであるため)。

とはいえBlackmagic側は将来的にBlackmagic eGPUのWindows PCでの利用はアップデートで対応されるであろうことを示唆している。

Q. Blackmagic eGPUはWindowsコンピューターで使用できますか?


A. Blackmagic eGPUをWindows OSで使用する上での制限はありません。しかし現時点ではWindows OSとの互換性の問題が確認されているため、Windows OSでのBlackmagic eGPUの使用は推奨されません。これは将来的にWindowsコンピューターのベンダーからのアップデートで修正される予定です。

Vook

一方で、Bootcamp上のWindowsについてはAppleもBlackmagicも”eGPUをサポートしていない”と言い切っているのだが、海外では多くのユーザーがRadeonやGeForceをeGPUボックスに搭載してBootcamp上のWindowsで使いまくっているのでこの発言には首を傾げてしまう。

ただ、少なくともMac向けにカスタムされたRadeon Pro 580がBootcamp上のWindowsでまともに動作しないことは僕も確認済みなので、Radeon Pro 580についてはWindows PCにしろBootcamp上にしろ利用は出来ないと思っていい。

eGPUを接続すると基本的にMacにあらかじめ搭載されているGPUよりeGPUが優先される

当たり前の話ではあるが、Mac mininなどのCPU内蔵グラフィック搭載MacやMacBook Pro 15インチモデルなどのディスクリートGPU搭載MacにeGPUを接続すると基本的にeGPUの方が優先される。

またMac miniにしろMacBookシリーズにしろ、eGPUを接続した状態でマルチモニター(MacBookの内蔵ディスプレイも含む)を構築している場合はメインディスプレイに関連づけられたeGPUを優先して使用する。

ちなみにeGPUをサポートしていないソフトウェアでは代わりに内蔵グラフィックやディスクリートGPUを使用するが、基本的にはmacOSの描画も含めてeGPUが他のGPUより優先されて動作するようになっている。

そのため、それなりのディスクリートGPUを搭載したMacBook Pro 15インチモデルなどでは性能が低いeGPUを導入した場合、パフォーマンスアップがほとんどない場合もある。

eGPUはPCI-Express x16接続と比べて最大30%ほどパフォーマンスが落ちる

こちらにPCI-Express x16接続とThunderbolt 3 eGPUとの比較ベンチマークがあるが、冒頭で触れた通りThunderbolt 3はPCI-E 3.0 x4レーン@32Gbpsでの伝送となるため自作PCなどのPCI-Express x16接続と比べると最大30%ほどパフォーマンスが落ちる。

それでもMacに搭載される大半のディスクリートGPUよりは速いが、PCI-Express x16接続と比べるとまだまだThunderbolt 3では帯域が足りない。

まとめ

長々と偉そうに書いてしまったが僕にもまだまだeGPUについては勉強するべき点が沢山あり、上に挙げた事柄も一部は間違っている可能性があるのでご容赦願いたい。

ただ、eGPUは自作PCに挿すだけでサクッと動作するPCI-Express接続のGPUと違って様々な制限・ハードルが存在し、まだまだ気軽に手を出せるものではないということをお伝えしたい。

僕もeGPUを導入して数々のトラブルを経験して、正直「こんな不安定ではeGPUの未来はないのでは」と思ったこともある。

もっとも、今はまだこのように混沌としたeGPU界隈ではあるが数年後はノートPCやグラフィック性能が低いPCでは当たり前に導入するものとなる可能性もある。

技術は日進月歩なのでこれからもMacに限らずeGPU界隈の動向を見守っていきたいと思う。