Appleは、「Macで使用するための複数の仮想GPUを実装するグラフィック処理装置(GPU)」に関する特許(特許番号10,120,728)を取得しました。AppleとBlackmagicは2つのeGPU(写真はeGPU Pro)で提携していますが、この発明はそれをさらに一歩進めたものです。
Appleは2月にmacOS High Sierra 10.13.4をリリースし、外付けグラフィックプロセッサ(eGPU)のサポートを追加しました。従来の物理コンピュータでは、GPUがキャプチャ、エンコード、レンダリングのすべてを担い、3Dアプリや動画などの複雑なタスクを処理できます。一方、仮想eGPU(VGPU)は、物理的なエンドポイントデバイスではなく、仮想マシンのホストサーバー上でグラフィックをレンダリングするコンピュータプロセッサです。

NVIDIAは2012年にこの問題を解決するために初の仮想GPUを導入しました。これにより、リモートユーザーへのグラフィックス配信時の遅延が短縮され、PCと同等のパフォーマンスを実現しました。これは、コンピュータ支援設計(CAD)や3Dグラフィックスアプリケーションを必要とするユーザーにとって特に便利です。
Appleは特許出願において、GPUが「ダウンタイム」(停止期間)と呼ばれる、1つまたは複数の実行ユニットが計算を実行しない状態になる場合があると述べています。ダウンタイムは、例えばメモリアクセス時に発生する可能性があり、これは実行ユニットが新しいデータの到着を待機しているためです。そのため、1つまたは複数のGPU実行ユニットがアイドル状態になる場合があります。
さらに、GPUで第1のプログラムが実行されている間、第2のプログラムは待機しなければならない場合があります。第2のプログラムは、第1のプログラムが停止している間(メモリアクセス中など)、待機しなければならない場合があります。第1のプログラムが停止している間、アイドル状態のGPU実行ユニットを第2のプログラムが使用できれば有利ですが、第2のプログラムに切り替えるオーバーヘッドコストが法外に高くなる可能性があります。つまり、第1のプログラムが停止している間にGPUで第2のプログラムを実行するように設定するには、膨大な時間と労力(つまり消費電力)がかかるため、その手間をかける価値がない可能性があります。
最初のプログラムが停止している間、GPU実行ユニットはアイドル状態のままになる可能性があります。そのため、AppleはGPU実行は「特に複数のコンピューティングタスクが実行される環境では非効率になる可能性がある」と述べています。同社はVGPU計画によってこの問題が解決されると考えています。
Appleによる発明の概要は次のとおりです。「VGPUはソフトウェアからは独立したハードウェアGPUのように見える場合があります。しかし、制御構造を使用し、GPUの一部(すべてではありません)のハードウェア要素を複製することで、同じGPU上に2つ以上のVGPUを実装できます。例えば、複数のVGPUをサポートするGPUに、追加のレジスタやストレージスペースを追加することができます。」
「サポートされる異なるVGPUに対応するタスクとスレッドには、それぞれ異なる実行優先度を設定できます。また、異なるVGPUの仮想アドレス空間の使用を含め、VGPUのメモリアドレス空間も管理できます。異なるVGPUの実行を停止および再開することで、様々な実施形態できめ細かな実行制御が可能になります。」
もちろん、Appleは米国特許商標庁に数多くの特許を申請し、そして取得しています。その多くは日の目を見ることのない発明です。しかし、どの発明が実際の製品に実現されるかは、決して予測できません。