

macOS 10.13.4では外部グラフィックスがサポートされ、AppleはSonnet eGFX Breakaway BoxなどのeGPUをMacに追加することを公式に許可しました。残念ながら、Macの内蔵ディスプレイにアプリを表示しながらeGPU経由でレンダリングする機能は、開発者向けアプリのアップデートで可能になるものの、非常に稀です。
eGPU.ioの卒業生@mac_editorが最近リリースしたスクリプト「set-eGPU」を使うと、GPUレンダリングをより細かく制御できるようになります。このスクリプトは、macOS 10.13.4以降で利用可能なGPUSelectionPolicyに割り当てられたplist値を、インストール済みアプリに対して動的に上書きします。
つまり、このスクリプトはmacOSの最新バージョンにすでに組み込まれているツールを利用して、エンドユーザーがeGPUの使用をより細かく制御できるようにします。主な利点は、外部GPUを使用してインストール済みのアプリケーションをレンダリングし、Macの内蔵ディスプレイに表示できることです。このスクリプトを使用すると、外部ディスプレイがなくても、多くのインストール済みアプリケーションでeGPUレンダリングを強制的に使用できるようになります。
ご想像のとおり、最初にテストしたアプリの一つはFinal Cut Pro Xでした。結果は期待通りでした。詳しくは、ハンズオン動画のウォークスルーをご覧ください。
Macにset-eGPUをインストールする方法
まず第一に、set-eGPU は mayankk2308 によるオープンソーススクリプトなので、コードを自由に確認して、実際に何をしているのかを確認できます。また、スクリプト自体はシンプルで、使用するために SIP を無効にするといった特別な操作は必要ありません。
すべてのテストは、2017 年モデルの 13 インチ MacBook Pro ベースモデルで実行されました。
ステップ1:まず最初に、 macOS 10.13.4以降を搭載したThunderbolt 3対応MacにeGPUを接続する必要があります。set-eGPUはmacOS 10.14 Mojaveでも動作しますが、Mojaveがベータ版であることを考えると、バグが発生する可能性があります。
ビデオウォークスルー
9to5MacのYouTubeチャンネルに登録して、さらに多くの動画をご覧ください。
ステップ 2:「アプリケーション」→「ユーティリティ」→「ターミナル」からターミナル ウィンドウを開きます。
ステップ 3:次のコードをコピーしてターミナルに貼り付け、スクリプトをインストールします。
curl -s "https://api.github.com/repos/mayankk2308/set-egpu/releases/latest" | grep '"browser_download_url":' | sed -E 's/.*"([^"]+)".*/\1/' | xargs curl -L -s -0 > set-eGPU.sh && chmod +x set-eGPU.sh && ./set-eGPU.sh && rm set-eGPU.sh
必要に応じて、いつでもスクリプトをダウンロードして手動でインストールできます。
ステップ 4:キーボードの Return キーを押して、管理者パスワードを入力します。
インストール スクリプトは 1 回限りのものなので、この手順ではインストール スクリプトを入力して管理者パスワードを入力するだけでよいことに注意してください。
Macでset-eGPUを実行する方法
set-eGPUを実行するには、ターミナルウィンドウで「set-eGPU」と入力し、キーボードのReturnキーを押すだけです。すると、GPUレンダリングに関連するさまざまなオプションを選択できる、使いやすいインターフェースが表示されます。
最初のオプションはグローバル オプションで、/Applications にインストールされているすべてのアプリケーションで eGPU レンダリングを優先するように設定できます。
私が主に使っている2つ目のオプションでは、特定のアプリケーションをターゲットにしてeGPUを優先させることができます。オプション2を選択すると、高速化したいアプリケーションの正確な名前(Launchpadに表示される名前)を入力するように求められます。
3つ目のオプションでは、Mac上の特定のアプリケーションの状態を確認できます。この場合も、アプリケーションの正確な名前を入力する必要があります。
最後の 2 つのオプションを使用すると、グローバル アプリ レンダリングを無効にすることができます。
…または、アプリごとに eGPU レンダリングを無効にします。
上級ユーザーは、メニューインターフェースをバイパスしてコマンドラインオプションを直接実行することもできます。例えば、-ssオプションを使用すると、eGPUアクセラレーションを優先するアプリを素早く指定できます。
利用可能なオプションの全リストについては、mayankk2308 の set-eGPU GitHub ページの「オプション」セクションをご覧ください。eGPU に関するサポートが必要な場合は、外付け GPU 愛好家の間で定番となっている eGPU.io の優れたコミュニティをおすすめします。set-eGPU に関する専用のスレッドがあります。そこでは、バンドル ID を使って特定のアプリケーションをターゲットにする方法も学べます。これは、/Applications 内のフォルダにネストされたアプリに役立ちます。
macOSでeGPUの使用状況を監視する方法
macOS には、内部および外部の GPU の使用状況を監視するためのツールが組み込まれています。
ステップ 1:「アプリケーション」→「ユーティリティ」→「アクティビティ モニタ」からアクティビティ モニタを開きます。
ステップ 2:メニュー バーで [Windows] → [GPU History] を選択するか、キーボード ショートカット ⌘+4 を使用します。
ステップ 3:メニュー バーで、[表示] → [更新頻度] → [非常に頻繁 (1 秒)] を選択します。
ベンチマーク
eGPU のセットアップでどれほどの違いが出るのでしょうか?set-eGPU を使うと、かなり顕著な違いが出ることがわかりました。これらはすべて、外部ディスプレイなしの2017 年モデルの 13 インチ MacBook Pro ベースモデルを使用して実行しました。
Unigine ValleyとHeavenを使用した最初のベンチマークでは、FPSが顕著に向上しました。外部ディスプレイ接続時ほどではありませんが、それでも内蔵GPUと比べるとかなりの改善が見られます。
注:HeavenとValleyを内蔵ディスプレイで動作させるには、GPUのDisplayPortコネクタの1つにDisplayPortディスプレイエミュレータ(ヘッドレスダミーアダプタ)を接続する必要がありました。Final Cut Pro Xなど、私がテストした他のアプリでは、この作業は必要ありませんでした。
次のベンチマークは、Final Cut Pro Xユーザーに人気のBruceX 5Kエクスポートです。エフェクトを多用したこの5KプロジェクトはGPUに負荷をかけます。内蔵グラフィックスと外付けグラフィックスの違いが一目瞭然です。
set-eGPU のおかげで、実際のプロジェクトでも Final Cut Pro X の eGPU セットアップから大きなメリットが得られます。Vega 64 を搭載した eGPU を使用すると、シングル パスとマルチ パスの両方のエクスポート時間がほぼ半分に短縮されました。
Radeon Pro Vega 56を搭載したiMac Proで行ったベンチマーク結果をもう一つご紹介します。ご覧の通り、BruceXベンチマークでは外付けのRX Vega 64 GPUが内蔵GPUを上回っています。Vega 64はVega 56よりも明らかにパワフルですが、Thunderbolt 3接続のオーバーヘッドも考慮に入れる必要があります。eGPUがオンデマンドでどれだけのパワーを発揮できるか、改めて実感できるのではないでしょうか。
どのeGPUですか?
市場にはMacで問題なく動作するeGPUボックスがいくつかありますが、すべてがAppleの公式認定を受けているわけではありません。今のところ私のお気に入りのeGPUは、ハンズオンレビューで紹介したRazer Core Xです。
私のお気に入りのeGPUシャーシ
SonnetもeGPUシャーシの有力な選択肢であり、AppleのeGPUドキュメントで公式に推奨されています。Sonnetは非常に手頃な価格のローエンドeGPUモデルをいくつか提供しており、AMD RX 580などのカードと組み合わせると優れたパフォーマンスを発揮します。ただし、最新世代以上のカードに対応できるユニットをお探しの場合は、Sonnetの最上位モデルであるeGFX Breakaway Box 650(現在在庫切れ)とRazerのCore Xがどちらも優れた選択肢です。
eGPU
- ソネット eGFX ブレイクアウェイボックス 350W
- ソネット eGFX ブレイクアウェイボックス 550W
- Sonnet eGFX Breakaway Box 650W(在庫切れ)
- Sonnet eGFX Breakaway Box 350W と RX580 バンドル
- レイザー コア X
- アキティオノードプロ
GPU
macOSでは、外付けGPUとして公式にサポートされているAMDカードは一部のみです。いずれのカードでも、パフォーマンスに明らかな違いが見られるはずです。
RX Vega 64 – 最も強力なMac対応GPU
- AMD Radeon RX 570
- AMD Radeon RX 580
- Radeon Pro WX 7100
- AMD Radeon RX Vega 56
- AMD Radeon RX Vega 64
- ベガ フロンティア エディション エア
- Radeon Pro WX 9100
比較的持ち運びやすいオールインワンソリューションをお探しなら、GigaByteのRX 580 Gaming Boxをぜひチェックしてみてください。数ヶ月前にレビューした際に、そのサイズと消費電力の比率に感銘を受けました。
結論
eGPU構成で外部ディスプレイを使用しない場合のデメリットは、内蔵ディスプレイを駆動できるのは内蔵GPUのみであるということです。つまり、描画データはeGPUとiGPUの間でネゴシエーションする必要があり、オーバーヘッドが増加します。外部GPUから内蔵ディスプレイを駆動する内蔵GPUに描画データをコピーすることでパフォーマンスが低下しますが、それでも大幅なパフォーマンス向上が得られます。
macOS 内に、ユーザーが特定のアプリケーションを eGPU でレンダリングするように簡単にターゲットできるネイティブ オプションがあればいいと思います。各アプリのメニュー バー内のスイッチや、eGPU を接続した後に現れる SafeEjectGPU ボタン内のアプリのグローバル リストなどです。
MacでeGPUを使ったことはありますか?set-eGPUは外付けグラフィックに対する考え方を変えましたか?ぜひ下のコメント欄でフィードバックをお聞かせください。
havebin.com を Google ニュース フィードに追加します。
FTC: 収益を生み出す自動アフィリエイトリンクを使用しています。詳細はこちら。