AI用語集
人工知能の完全辞典
ワークアイテム
OpenCLにおける実行の基本単位。他の並列計算モデルにおけるスレッドに類似。各ワークアイテムはカーネルのインスタンスを実行し、一意の識別子を使用してデータの異なる部分にアクセスする。
ワークグループ
特定のリソースを共有し、バリアを介して実行を同期できるワークアイテムの集合。ワークグループはOpenCL計算ユニットのスケジューリング単位を構成し、ローカルメモリの使用を最適化する。
NDRange
カーネルの実行対象となるワークアイテムの完全なグリッドを定義するN次元インデックス空間。NDRangeはデータを並列計算のためにワークグループとワークアイテムに分割する方法を決定する。
コンテキスト
OpenCLの実行環境。デバイス、メモリオブジェクト、関連するコマンドを含む。コンテキストは同じOpenCLプラットフォーム内のデバイス間で共有リソースの一貫性を保証する。
コマンドキュー
特定のデバイスへのOpenCL操作(メモリ転送、カーネル実行)を順序付けるメカニズム。コマンドはキューの作成パラメータに応じて順序どおりまたは順不同で実行できる。
メモリモデル
グローバル、ローカル、プライベート、定数の空間を含むOpenCLの階層的メモリ構造。このモデルはワークアイテムによるデータの場所と使用頻度に基づいてデータアクセスを最適化する。
ローカルメモリ
同じワークグループ内のワークアイテム間で共有されるメモリ。協力のための非常に高速なアクセスを提供する。リダクションや不規則なアクセスパターンなどの効率的なアルゴリズムを実装できる。
プライベートメモリ
各ワークアイテム専用のメモリ空間。通常レジスタまたはローカルスタックで実装される。一時変数を格納し、並行ワークアイテム間の分離を保証する。
イベントオブジェクト
OpenCLコマンドのファイングレイン同期を可能にし、操作間の依存関係を定義します。イベントは、複雑な実行グラフを作成することで並列処理の最適化を容易にします。
プラットフォームモデル
ドライバーを介して1つ以上のデバイスに接続されたホストを定義するOpenCLの抽象化です。プラットフォームモデルは、ホストCPUとアクセラレータ間の相互作用を標準化し、コードの移植性を保証します。
バッファオブジェクト
カーネルからアクセス可能な線形データを格納するためのOpenCLメモリコンテナです。バッファは、パフォーマンスを最適化するために、ホストとデバイス間の様々な割り当てと転送戦略をサポートします。
SVM (共有仮想メモリ)
単一の仮想アドレス空間でホストとデバイス間のポインタ共有を可能にするOpenCL 2.0の拡張機能です。SVMは明示的な転送を排除し、統合アーキテクチャ向けのプログラミングを簡素化します。
SPIR (標準ポータブル中間表現)
ソースコードなしでカーネルを配布可能にするOpenCLのバイナリ中間形式です。SPIRは、デバイス固有の最適化を維持しながら、異なるOpenCL実装間の移植性を保証します。
ベクトル型
並列アーキテクチャ上でのベクトル操作を最適化するOpenCLのネイティブSIMDデータ型(float4、int8など)です。ベクトル型は、計算スループットを最大化するために、GPUのSIMDユニットをネイティブで活用します。
バリア同期
続行する前に、ワークグループ内のすべてのワークアイテムが特定のポイントに到達することを強制する同期プリミティブです。バリアは、協調アルゴリズム中のローカルメモリ内の共有データの一貫性を保証します。