Apple Engine

Apple, iPhone, iOS, その周辺のことについて

eGPU、外部拡張 GPU のはじまりとこれから

Razor Core など Windows で使用されていた外付けの GPU である eGPU が、Apple の High Sierra に際に正式対応した。

多分、Apple 製品でインプットデバイスやオーディオ機器以外で Mac を拡張する機能やデバイスを追加するのは久しぶりな感じ。

基本的には単体製品での使いやすさを求める Apple において eGPU の拡張機能という選択肢を取ったのは理由があると思われる。


現行の Mac は基本 GPU の変更ができないため、eGPU で拡張させる選択肢を提供するのもわかる。

また、筐体の小型化や軽量化をする際、GPU による発熱の排熱や消費電力を考えると、eGPU を使い外部にグラフィックボートを分けて、電源を別で供給するのは理にかなっている。


以下、eGPU を使用して機能が向上する例

  • 3DCG で AMD ProRender などの GPU レンダリング
  • 2DCG アプリのプレビュー
  • 編集や動画のエンコード
  • Unity や Unreal Engine などのゲームエンジンのエディター 
  • ゲームの高画質化などの体験向上
  • Metal を使用した機械学習

 

eGPU の利用ケースとして、ラップトップに対して持ち運びしていない状態では GPU を強化するというケースがもっと適しているだろう。

それ以外でも、複数の GPU を繋ぎさらに加速させる利用ケースがある。


一般的な利用方法ではないので 2018 の MacBook Pro の Web ページでは紹介されていないが、WWDC 2018 では iMac Pro に eGPU を3台繋ぎ使用したデモを行なっていたり、動画編集アプリの Davinci Resolve の有料版では複数使用できるようになっている。

(一応、アプリ開発者向けだが Mojave の Metal 2 ではさらに複数の GPU を使用時の動作に対して施策を行なっている)


利点しかないようだが、問題がないわけではなく、Thunderbolt 3 で接続するため最大40 Gbpsのデータ転送しかできない。

現状でロジックボード (マザーボード) へ直接 GPU を繋ぐ PCI Express 3.0 x16 では 128 Gbps なので 1/3 しかでない。

Metal での演算性能の差はそこまで劇的ではないが、ゲームなどは PCI Express で接続した GPU の方が速さは顕著になる。

 

また、USB-C のケーブルも注意。使える種類もあるし、転送の問題点で長いケーブルが使えない。

 

あと、一応アプリ側の対応も必要。

現状、Adobe 系のアプリは Metal 2 には完全に最適化されていないので eGPU の効果を受けられない可能性がある。

(Adobe さんは iOS の Photoshop をつくる前に Metal をちゃんと対応して欲しい)

 


これからの eGPU


Thunderbolt 3 で繋いでいるため、転送スピードが問題になる。

もしかすると今後 Apple が新しい規格のコネクタをつくるかもしれない。


グラフィックボード側の改善を行う可能性もある。Radeon Pro SSG のようにストレージを持ち、前処理やリソースをあらかじめそこに置き処理を向上させる可能性もある。

 

8K ディスプレイは内部処理の問題でファンが付いている。ディスプレイ自体をコントロールする構造を考えると、今後、ディスプレイ自体に GPU を積んだり、グラフィックボードを装填できるようになるかもしれない。

ディスプレイへ繋ぐだけになり、ケーブルの取り回しが楽になるので、こういうプロダクトを Apple が出しそうではある。


また、ソフトウェア面から考えると、GPU は CPU からの命令を受けて処理をしており、そのため CPU や GPU で処理待ちが起こってしまうと全体の処理が遅くなってしまう。

Apple は Metal 2 で最適化しており、本来は全体の処理スピードを速めるために使用しているものだが、eGPU にも良い影響はあるだろう。

 


実現できるかわわからないが、いつか eGPU は無線で接続できるようになるのではないかと思っている。

ただ、次期 Wi-Fi の規格 IEEE 802.11ax でも最大転送速度が 9.6 Gbps なのでまだまだだけど。

(ちなみに docomo は 8K 映像配信をセルラー回線で実験成功しているので論理値ではThunderbolt 3 を大幅に超える)


自分が無線で eGPU を使用できるようにしてほしい理由は iOS や tvOS での使用できるようにして欲しいから。

もうそろそろスマートフォンなどの SoC のプロセッサをファンレスで動かし高めの処理をする場合、発熱が厳しくなると思われるので。