OpenCL
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

OpenCL 2.1およびVulkanとともに策定されるSPIR-Vでは、GPGPUだけでなく、グラフィックスにも対応している[80]
HSAIL
HSA Foundationで標準化されたヘテロジニアスシステムアーキテクチャ(英語版)(HSA) 向けのハードウェア非依存な中間言語。AMDやLLVMのOpenCL実装がHSAIL中間表現形式の出力に対応している[81]。異種コア間のスケジューリングを前提としており、グラフィックスには非対応[82]
OpenCL開発環境

この節に雑多な内容が羅列されています。事項を箇条書きで列挙しただけの節は、本文として組み入れるか、または整理・除去する必要があります。(2021年3月)

ウィキペディアはオンライン百科事典であって、情報を無差別に収集する場ではありません。改善やノートページでの議論にご協力ください。(2021年3月)

OpenCLを使用したクライアント プログラムを開発するための代表的なソフトウェア開発キット(SDK)として、主に各ハードウェア ベンダーから下記のSDKが提供されている。
NVIDIA CUDA Toolkit
Windows, Linux, macOS用が提供されている。CUDA Toolkit 7.5時点でOpenCL 1.2に対応している[83][84][85]。かつてNVIDIAのOpenCL SDKはNVIDIA GPU Computing SDKに含まれていて、CUDA SDKとは独立していたが、CUDA 5.0からはCUDA Toolkitにすべて含まれるようになった。以前のバージョンのGPU Computing SDKはアーカイブとして公開されている[86][87]
AMD APP SDK
AMD Stream SDKの後継。Windows, Linux用が提供されていた。AMD APP SDK 3.0の時点でOpenCL 2.0、SPIR(英語版) 1.2に対応していた[88][89][90]。GPUOpen(英語版)のGitHubサイトにて必要最低限の軽量なOCL-SDK (OCL_SDK_Light) が公開されている[91][92]が、2017年を最後に更新されていない。
Intel SDK for OpenCL Applications
Windows および Linux 用が提供されている。開発ツールの OpenCL Tools もある。OpenCL 2.0、SPIR(英語版) 1.2をサポートしている[93][94]。IntelのICDと対応ハードウェアを搭載するAndroid環境でもOpenCLを利用することができる[95][96][97][98][99]。Intelの現行のOpenCL実装 (Neo) はマルチプラットフォームでオープンソースとなっている[100]。以前はクローズドソースの古い実装 (Classic) とLLVMベースのオープンソース実装 (Beignet) の二つが存在した[100]。また、以前は統合ツールとして Intel Integrated Native Developer Experience (Intel INDE) も提供されていたが、2018年に提供終了となった[101]
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.) にも対応していた[102][103]
OpenCL for macOS
macOSの標準機能としてOpenCLをサポートしている[104]。OpenCL 1.2までをサポートするが、対応バージョンはハードウェアにもよる[105]。macOS Mojave以降では非推奨である。
Intel FPGA SDK for OpenCL
旧Altera SDK for OpenCL。FPGA上で動作するOpenCLプログラムを開発することができる。x86プロセッサ対応のエミュレータも提供されている。
Xilinx Vitis
FPGA上で動作するOpenCLプログラムを開発することができる。なお古い開発環境としてXilinx SDAccelも存在したが2019.2を最後にVitisへと統合された[106][107]
LLVM/Clang
OpenCL C 2.0までのカーネルソースコードのコンパイルに対応している[108]。Clang 14以降はSPIR-Vの生成にも対応している。以前はSPIR-V出力に対応しておらず、LLVM/SPIR-V Bi-Directional Translator[109]やLLVM-SPIRV-Backend[110]が必要だった。
clspv (Google)
OpenCL CのサブセットをVulkanのコンピュートシェーダーとして実行できるようにするためのコンパイラ。OpenCLを正式サポートしていないAndroidにおいてOpenCLアプリケーションの移植を促進するために開発が始まった[111]。clspvはいくつかのAndroidアプリケーションにて利用されている[112][113]
OpenCLOn12 (Microsoft)
Direct3D 12上に実装されたOpenCL 1.2 APIの互換レイヤー。

各SDKには、標準OpenCL API用のC/C++言語用ヘッダーなどのほか、ベンダーごとに拡張された機能を使うためのライブラリなども含まれるため、ハードウェア ベンダーやOSに依存しないOpenCLプログラムを開発する場合は注意が必要となる。
OpenCLプロファイラー

OpenCL対応のプロファイラーが各社からリリースされている。従来の非並列プログラムと比較するとOpenCLプログラムはデバッグチューニングが難しく、プロファイラーは性能ボトルネックの特定やコード改善に有効なツールである。
Intel VTune Amplifier(有償)
マルチコアCPU対応のプロファイラーだが、OpenCL[114]のほか、DirectXにも対応している[115]


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:95 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef