OpenCL SDKはアプリケーションから各ベンダーが実装するOpenCLライブラリを呼ぶことを可能とします。
MacではSDKではなくフレームワークが提供されていますが、WindowsやLinuxでアプリケーションを動作させるにはOpenCL SDKをインストールする必要があります。
IntelはSDK for OpenCL、AMDはAccelerated Parallel Processing SDK(簡略するとAppSDK)、NVIDIAはGPU Computing SDK(最新版はCUDA Tookitに統合、OpenCL-1.2サポートはCUDA Toolkit 7.5)をそれぞれ提供しています。
SDKはハードウェア附属のメディアキットや、各ベンダーの開発者向けホームページからダウンロードできます。
Mac OS XではOpenCLは標準でインストールされています。そのためインストールは不要です。
以下がMac OS XでのOpenCLのシステムコンポーネントの種類です。
ICDはベンダーから独立した共通ライブラリとなるOpenCL.dllや、libOpenCL.soライブラリが、各ベンダーが提供するハードウェアのドライバとリンクする仕組みを提供します。
ICDはクロノスのヘッダーを使ってOpenCLライブラリを呼び出したアプリケーションが、個々のベンダーに毎回リンクしたりする手間を省いてくれます。
強いてICDを評するのであれば、開発者が普段意識したりする必要はなく、OpenCLヘッダーをインクルードすると自動でデバイスドライバとリンクしてくれるライブラリがバックグランドにあるという認識を持つだけで十分です。
WindowsではOpenCL.dll、OpenCL.lib(dllのスタティックラッパー)といった共通ライブラリを呼び出すと、自動的にクライアントのICDライブラリ(例:amdocl64.dll、nvcuda.dll)にリンクされます。
項番 | システムコンポーネント | |
1 | OpenCLアプリケーション | |
2 | OpenCL.dll | |
3a | クライアントドライバ(ICD) | |
3b | amdocl.dll | nvcuda.dll |
4 | OpenCL準拠デバイス |
Copyright 2018-2019, by Masaki Komatsu