コンピュート機能(GPGPU機能)とウィンドウ/レンダリングコンテキスト
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/04 13:13 UTC 版)
「OpenGL」の記事における「コンピュート機能(GPGPU機能)とウィンドウ/レンダリングコンテキスト」の解説
DirectCompute (Direct3D 11) ではCUDAおよびOpenCL同様に、OSのウィンドウシステム(ユーザーインターフェイス)とは直接関連しない完全なオフスクリーンオブジェクトであるDirect3Dデバイスおよびデバイスコンテキストを作成するだけで、コンピュート機能を利用することが可能となっている(コンピュートシェーダーの実行つまりコンピュートカーネルの発行には、DXGIスワップチェーンの作成およびプレゼンテーションは不要)。一方、OpenGL APIは必ずレンダリングコンテキストを作成してから使用する必要があり、また描画命令を発行するためにはレンダリングコンテキストをバインドするサーフェイスを、OSのウィンドウシステムに関与するAPIを利用して作成する必要がある(例えばWindowsの場合はウィンドウDCまたはメモリDCといったGDIのデバイスコンテキストが必要)。OpenGL 4.3では汎用計算向けのコンピュートシェーダーが搭載されたが、この制約のためにOpenGLでコンピュートシェーダーを利用する場合は必ずOSのウィンドウシステムへのアクセスが必要となってしまう。シミュレーションの可視化など、OpenGLコンピュートシェーダーを必ずグラフィックス連携用途に使うことを前提としている場合は大きな問題にならないが、完全なオフスクリーンで純粋にコンピュート機能を利用しようとする場合には障壁となりうる(OpenGL 4.5時点での代替策、すなわち完全オフスクリーンでのコンピュート実行はOpenCLに頼らざるを得ない)。
※この「コンピュート機能(GPGPU機能)とウィンドウ/レンダリングコンテキスト」の解説は、「OpenGL」の解説の一部です。
「コンピュート機能(GPGPU機能)とウィンドウ/レンダリングコンテキスト」を含む「OpenGL」の記事については、「OpenGL」の概要を参照ください。
- コンピュート機能とウィンドウ/レンダリングコンテキストのページへのリンク