OpenCL開発環境
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/08/04 15:23 UTC 版)
「OpenCL」の記事における「OpenCL開発環境」の解説
OpenCLを使用したクライアント プログラムを開発するための代表的なソフトウェア開発キット(SDK)として、主に各ハードウェア ベンダーから下記のSDKが提供されている。 NVIDIA CUDA Toolkit Windows, Linux, macOS用が提供されている。"CUDA Toolkit 7.5"時点でOpenCL 1.2に対応している 。 かつてNVIDIAのOpenCL SDKは"NVIDIA GPU Computing SDK"に含まれていて、CUDA SDKとは独立していたが、CUDA 5.0からはCUDA Toolkitにすべて含まれるようになった。以前のバージョンのGPU Computing SDKはアーカイブとして公開されている 。 AMD APP SDK AMD Stream SDKの後継。Windows, Linux用が提供されていた。AMD APP SDK 3.0の時点でOpenCL 2.0、SPIR(英語版) 1.2に対応していた 。GPUOpen(英語版)のGitHubサイトにて必要最低限の軽量なOCL-SDK (OCL_SDK_Light) が公開されているが、2017年を最後に更新されていない。 Intel SDK for OpenCL Applications Windows および Linux 用が提供されている。開発ツールの OpenCL Tools もある。OpenCL 2.0、SPIR(英語版) 1.2をサポートしている 。IntelのICDと対応ハードウェアを搭載するAndroid環境でもOpenCLを利用することができる。 Intelの現行のOpenCL実装 (Neo) はマルチプラットフォームでオープンソースとなっている。以前はクローズドソースの古い実装 (Classic) とLLVMベースのオープンソース実装 (Beignet) の二つが存在した。また、以前は統合ツールとして Intel Integrated Native Developer Experience (Intel INDE) も提供されていたが、2018年に提供終了となった。 Qualcomm Adreno SDK Snapdragon 向け ARM Mali OpenCL SDK ARM Mali(英語版)を採用したSoC向けだった。SDK v1.1時点でOpenCL 1.1に対応していた。ARM Compute Libraryに置き換えられた。 Imagination PowerVR SDK iPhone 7 以前などで使われている PowerVR 向け IBM OpenCL SDK PowerPC 上の Linux に向けたもの。Cell Broadband Engine (Cell/B.E.) にも対応していた。 OpenCL for macOS macOSの標準機能としてOpenCLをサポートしている。OpenCL 1.2までをサポートするが、対応バージョンはハードウェアにもよる。macOS Mojave以降では非推奨である。 Intel FPGA SDK for OpenCL 旧Altera SDK for OpenCL。FPGA上で動作するOpenCLプログラムを開発することができる。x86プロセッサ対応のエミュレータも提供されている。 Xilinx Vitis FPGA上で動作するOpenCLプログラムを開発することができる。 なお古い開発環境としてXilinx SDAccelも存在したが2019.2を最後にVitisへと統合された。 LLVM/Clang OpenCLに対応している。 SPIR-Vでの出力にはまだ対応しておらず、"LLVM/SPIR-V Bi-Directional Translator"や LLVM-SPIRV-Backend (LLVMに合流予定) が必要になる。 clspv (Google) OpenCL CのサブセットをVulkanのコンピュートシェーダーとして実行できるようにするためのコンパイラ。 OpenCLを正式サポートしていないAndroidにおいてOpenCLアプリケーションの移植を促進するために開発が始まった。clspvはいくつかのAndroidアプリケーションにて利用されている。 OpenCLOn12 (Microsoft) Direct3D 12上に実装されたOpenCL 1.2 APIの互換レイヤー。 各SDKには、標準OpenCL API用のC/C++言語用ヘッダーなどのほか、ベンダーごとに拡張された機能を使うためのライブラリなども含まれるため、ハードウェア ベンダーやOSに依存しないOpenCLプログラムを開発する場合は注意が必要となる。
※この「OpenCL開発環境」の解説は、「OpenCL」の解説の一部です。
「OpenCL開発環境」を含む「OpenCL」の記事については、「OpenCL」の概要を参照ください。
- OpenCL開発環境のページへのリンク