AI News HubLIVE
站内改写

Thunderbolt eGPUをMacに接続してゲームやAI推論を高速化できるように

本記事では、NVIDIA RTX 5090 GPUをThunderbolt経由でM4 MacBook Airに接続し、Linux仮想マシンでPCIパススルーを利用してゲームやAI推論を実行する方法を解説します。macOSのドライバ不足、PCI BARマッピングによるカーネルパニック、DMA問題などの技術的課題とその解決策、ベンチマーク結果を詳述。

記事インテリジェンス

エンジニア上級

要点

  • Thunderbolt eGPUをMacに接続するには、Linux VMへのPCIパススルーが必要。
  • Apple SiliconのmacOSはNVIDIA/AMD GPUドライバ非対応のため、Hypervisor.frameworkを活用。
  • PCI BARマッピングによるカーネルパニックやDMA設定が技術的課題。
  • ベンチマークでは1080pゲームとAI推論で良好なパフォーマンスを示すが、ネイティブデスクトップには劣る。

重要な理由

このニュースが重要なのは、Thunderbolt eGPUをMacに接続するには、Linux VMへのPCIパススルーが必要ためです。

技術的影響

モデル選定、推論コスト、プロダクト能力、評価基準に影響する可能性があります。

デスクトップGPUをMacBook Airに接続できたらどうだろうか?Thunderbolt eGPU技術により、それが現実になった。本記事の著者は、NVIDIA RTX 5090グラフィックスカードをThunderbolt 4経由でM4 MacBook Airに接続し、Linux仮想マシン内でGPUパススルーを実現してゲームとAI推論を実行した。

Thunderbolt eGPUは、PCIe信号をUSB-Cケーブルでトンネリングする仕組みで、コンピュータから見るとやや遅いPCIeデバイスとして認識される。LinuxやWindowsでは基本的にプラグアンドプレイで動作するが、macOS(特にApple Siliconモデル)にはNVIDIAやAMD GPU向けのドライバがなく、直接利用できない。

この問題を解決するため、著者はmacOS上でLinux ARM64仮想マシンを実行し、Hypervisor.frameworkを介してGPUをVMにパススルーする方法を採用した。VMマネージャであるQEMUは、PCI BAR(ベースアドレスレジスタ)のマッピングとDMA(ダイレクトメモリアクセス)の処理を担当する。当初、PCI BARをマッピングしようとするとホストカーネルが頻繁にパニックを起こし、システム全体がフリーズした。調査の結果、原因はメモリマッピングフラグにHV_MEMORY_EXECが欠けていたことだった。このわずかな違いが、QEMUがデバイスメモリにアクセスした際にカーネルエラーを引き起こしていた。

もう一つの大きな課題は、Apple SiliconでのDMAサポートである。AppleのI/O仮想化アーキテクチャはVM内での物理DMAアドレス直接使用を許可しないため、著者は「apple-dma-pci」というドライバを開発し、物理アドレスを仮想アドレスにマッピングしてDMA操作をブリッジした。さらに、NVIDIA GPUのアライメント要件などの互換性問題も処理した。最終的な解決策は、QEMU内でMMIO領域から実行権限を削除し、カスタムドライバによるDMA再マッピングを実装することだった。

パフォーマンスについては、著者は一連のベンチマークを実施した。『サイバーパンク2077』1080p低設定で144 FPSを達成(MacBook Air内蔵GPUでは30 FPS)。『シャドウ オブ ザ トゥームレイダー』4Kでは33 FPS(内蔵GPUは8 FPS)。AI推論では、tinygradフレームワークを用いたテストで、ネイティブMetal推論と比較して約10分の1の性能だったが、最適化されたLinuxドライバとCUDAサポートにより実用的な速度が得られた。

著者は、この方法は一般ユーザー向けではなく、技術愛好家がMacで高性能GPUを活用するための道筋を示すものだと述べている。将来、macOSの仮想化フレームワークが改善され、新しいドライバが登場すれば、MacでのeGPU利用はさらに成熟するだろう。現在、このプロジェクトはオープンソースで公開されており、興味のある読者は自分で試すことができる。