macOS Catalinaで進化するGPU/eGPUの動作

Appleは先日開催されたWWDC 2019においてmacOS Catalinaを発表したが、発表会ではmacOSでのGPU/eGPU周りの動作については一切触れられなかった。

ただ、海外のeGPU.IOというeGPU専門コミュニティではmacOS CatalinaにおいてGPU/eGPU周りの調整や改善が報告されているので、今回はmacOS Catalinaで進化するGPU/eGPU周りの情報をまとめてみよう。

全てのmacOSのUIとフレームワークサブシステムはMetalで動作

画像出典 enjoyphone

macOS Catalinaでは全てのmacOSのUIとフレームワークのサブシステムがMetal 3.0(Open CL/GLに代わるmacOSのローレベルAPI)での動作になり、従来よりパフォーマンスが向上する。

Metal 3.0は現行のMetal 2.0に更に新たな機能・変更を加えており対応するアプリケーションであればパフォーマンスの向上が見込める。

これまでもmacOS High SierraなどでMission ControlなどのUIがMetalで動作するようになるなどの改善が行われたが、macOS Catalinaでは全てのmacOSのUIやフレームワークサブシステムはMetal(Metal 3.0)により描画される。

また、Appleは多くのデベロッパーに対して、アプリケーションをMetal対応にするようにアナウンスしているようであり、macOS Catalinaではこれまでより多くのアプリケーションがMetal対応になるようだ。

いくつかのアプリケーションではGPUのみの処理が可能になる

eGPU.IOのあるスレッドではMetal Indirect Compute Encodingと称する機能が報告されており、具体的にどのようなアプリケーションでこの動作が有効になるかは明示されていないが、CPUを介さずに処理を全てGPU側で実行することにより、結果としてCPUのパフォーマンスを向上させることが可能になっている。

複数のGPUを接続時のパフォーマンス改善

画像出典 ars TECHNICA

GPU Peer Group APIと呼ばれる機能により、macOS Catalinaでは主に新型Mac Pro向けの改善ではあるがAMD Infinity Fabricを利用したパフォーマンスが向上する。

AMD Infinity Fabricは新型Mac Proの発表の際に初めてMacに搭載されることが明かされたAMDによる新しいCPU/GPUを含むチップ間の接続技術(インターコネクト)であり、新型Mac Proでは複数のGPUを一つのモジュールにしたMPX(Mac Pro eXpansion)搭載時にGPU同士がAMD Infinity Fabricシステムで連携することにより今まで以上に複数GPU利用時のパフォーマンスが向上することが発表されていたが、macOS CatalinaではこのAMD Infinity Fabricシステム向けの調整が含まれているようだ。

MetalによるRay Tracingのパフォーマンス改善

画像出典 AnandTech

近年のGPUのトレンドである”Ray Tracing(レイトレーシング)”においても改善が加えられており、Ray TracingをMetalで実行することにより、今までのCPUを介した処理に比べて、新型Mac ProにおいてはRay Tracing性能は1000倍向上しているという。

このパフォーマンスの改善は前述したMetal 3.0の影響によるところが大きい。

Ray Tracingとは?
Ray Tracingとは日本語では”光線追跡法”と呼ばれ、現実世界の光の当たり方や反射・光が物体に与える影響を精密に再現することにより、よりリアリスティックなグラフィックを実現する方法だ。

近年においてはNVDIAのGeForce 2000シリーズがRay Tracingをサポートしたことで大きな話題になった。

複数eGPU利用時の使用可能GPU数が向上?

WWDC 2018 基調講演

これについてはeGPU IOのコミュニティでも確定した情報ではないようだが、macOS Catalinaでは複数eGPUの上限が6 eGPU程度まで上がっているのではないか?という情報がある。

eGPUは現在のmacOS Mojaveでも同一のeGPUを複数繋いでパフォーマンスをアップさせることが可能であるが、macOS Catalinaでは複数eGPUの利用可能数が向上している可能性がある。

その他

Purge Wranglerという海外の有志が製作したスクリプトによって、Thunderbolt 2しか搭載していないMacでもeGPUを利用可能にする方法があるが、このスクリプトは少なくとも現時点のmacOS Catalina Betaにおいては、依然として動作可能であるという。

また、macOS MojaveでNVIDIAのドライバが削除され、事実上MojaveではGeForceの利用が不可能になったが、macOS Catalinaにおいて、GeForceの利用が再び可能になったのかどうかについては現時点では情報がない。

ただ、macOS MojaveでGeForceが利用出来なくなった件に関しては、海外では署名活動まで行われたほど批判があったので、macOS Catalinaにおいて再びGeForceのサポートが復活する可能性もあるだろう。

まとめ

eGPUはまだ登場したばかりの技術のため、世に出ているeGPUボックスなどの製品もそれほど多くはなく、また、eGPUに関するトラブルや問題点も多いが、macOSやWindowsのコンスタントなアップデートとeGPU対応への積極的なアプローチにより、近年はeGPU利用者も急増し普及の兆しを見せている。

eGPUの動作が安定し、一般に完全に普及するまではまだまだ時間はかかるだろうが、今回のmacOS Catalinaのアップデートを見ても、着実に普及に向けて前進しているようだ。

僕は依然としてeGPU利用時のフリーズなどのトラブルに悩まされているため、macOS Catalinaでこうしたフリーズなどの問題点が少しでも改善されていることを願うばかりだ。