グラフィックスAPIとの関連性および相互運用性
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/05 05:56 UTC 版)
「OpenCL」の記事における「グラフィックスAPIとの関連性および相互運用性」の解説
OpenCL類似技術にNVIDIAのCUDA(後述)が存在するが、OpenCLにはCUDA同様に、3DグラフィックスAPIであるOpenGL(クロスプラットフォーム)およびDirect3D(Windowsプラットフォーム専用)との相互運用性(Interoperability)がAPIレベルで確保されている。 なお、OpenCLの動作ターゲットとしての用件を満たしたGPU(主にDirectX 10世代以上の統合型シェーダーアーキテクチャを採用したGPU)で使用できるDirect3D API(Direct3D 10およびDirect3D 11)との相互運用機能は、クロノスが管理しているOpenCL API公式拡張でサポートされるが、旧来のDirect3D 9との相互運用機能は、OpenCL 2.0時点でもベンダーごとの拡張機能依存となっている(cl_d3d9_ext.h)。 OpenCLでのhalf/double型のサポート状況は、CUDAなどのほかのAPIとよく似ており、サポートされるかどうかはハードウェアデバイス次第である。また、OpenGL/Direct3Dでは浮動小数点テクスチャすなわちデータストレージのフォーマットとしてFP32形式のほかにFP16形式を選択できるが、通例GPUが得意とする演算精度は単精度であるため、シェーダープログラム中で利用できる演算精度は一般的には単精度となり、倍精度や半精度はオプション扱いとなる。 OpenCLのイメージオブジェクトをサポートするデバイス (CL_DEVICE_IMAGE_SUPPORT) では、バイリニアフィルタリングなどの高速なハードウェア機能を利用することもできる。 以下にOpenGL関連の拡張を列挙する。 cl_apple_gl_sharing, cl_khr_gl_sharing: OpenCL 1.0の拡張。 cl_khr_gl_event: OpenCL 1.2の拡張。 cl_khr_egl_image, cl_khr_gl_msaa_sharing: OpenCL 2.0の拡張。
※この「グラフィックスAPIとの関連性および相互運用性」の解説は、「OpenCL」の解説の一部です。
「グラフィックスAPIとの関連性および相互運用性」を含む「OpenCL」の記事については、「OpenCL」の概要を参照ください。
- グラフィックスAPIとの関連性および相互運用性のページへのリンク