Graphics Execution Manager

Graphics Execution Manager（GEM）は、グラフィックスチップセット用のデバイスドライバのメモリ管理を行うためにインテルが開発したコンピュータソフトウェアシステム。 

GEMは、グラフィックスメモリ（現代のグラフィックスチップセット上の非均一メモリアクセス（NUMA）を扱うことを意味する）を管理し、グラフィックス関連のコードの実行コンテキストを制御する。複数のアプリケーションが切り替えの間で全体のグラフィックスカードの状態を保存および復元することなく、グラフィックスデバイスのリソースを共有することができる。 GEMは、メモリの同期を管理することでアプリケーション間のデータの矛盾のない共有を保証する。その操作に多くの既存のカーネルサブシステムを使用するので、コードサイズは非常に控えめである。

GEMは、バージョン 2.6.28 のLinuxカーネルから含まれていて、Intelのグラフィックスハードウェア用のドライバで使用されている。ATI RadeonおよびVIA S3のチップセット用ドライバは、現在、GEMと同じインタフェースを提供する"GEM化されたTTMマネージャ"を使用しているが、内部的にTTMを使用している。GEMはまた"*BSD"カーネルと互換性を持つように設計されている。 

GEMのAPIは、GEMのオリジナルの発表に記載されている。

Intel 915 チップセットで、openarena で 50%、glxgears で 60%高速化した。

歴史 
GEMは、Tungsten Graphics によって開発された Translation Table Maps メモリマネージャに代わるミニマリストで使いやすいものとして、インテルによって2008年5月に開発が開始された。

しかし、GEMは、インテル以外の開発者のための問題を引き起こし、現在のX.Orgサーバの開発（特にDRI2と新しいEXAアクセラレーションアーキテクチャ）と衝突し、一部の開発者は、"GEM化されたTTMマネージャ"を使用することへとつながった。

参照

外部リンク 
 GEM update - Keith Packard, 2008年7月4日
 TTM - X.org の wiki のエントリ
 GEM - the Graphics Execution Manager - Keith Packard による詳細な GEM の情報

Linux
コンピュータグラフィックス