第10章 OpenCL C言語プログラミング

目次

10.1. カーネルプログラミング
10.2. 組み込みデータ型
10.2.1. 組み込みスカラデータ型
10.2.2. ホストAPIとの対応
10.2.3. バイト順序
10.2.4. 組み込みベクトルデータ型
10.2.5. その他の組み込みデータ型
10.2.6. 予約組み込みデータ型
10.2.7. ベクトル・コンポーネント
10.2.8. ラウンド・端数処理モード
10.2.9. 整数型OpenCLマクロ
10.3. その他の関数
10.3.1. printf関数
10.4. 組み込み関数
10.4.1. ワークアイテム関数
10.4.2. 数学関数
10.4.3. half型、native型数学関数
10.4.4. 浮動小数点定数
10.4.5. 倍精度
10.5. 整数関数
10.5.1. MADと乗算
10.5.2. 飽和演算
10.6. 型変換
10.6.1. 暗黙型変換
10.6.2. 明示的型変換(キャスト)
10.6.3. 変換関数
10.7. 幾何関数
10.8. 比較関数
10.8.1. 比較分岐
10.9. ベクトルデータ読み出し・変換関数
10.9.1. ベクトルload・store関数
10.9.2. 同期関数
10.9.3. 明示的メモリフェンス関数
10.9.4. 非同期複製・先読み関数
10.9.5. アトミック関数
10.9.6. shuffle
10.10. OpenCL-Cイメージ処理関数
10.10.1. 正規化整数チャンネルデータ型の活用による浮動小数点変換
10.10.2. サンプラー
10.10.3. イメージ読み込み・書き込み関数
10.11. サンプラー無し読み込み
10.12. イメージ書き込み関数
10.13. イメージ情報の取得
10.13.1. イメージチャンネルのマッピング

重要

本項目ではOpenCL1.2の規格書を著者が意訳・要約したものを掲載します。重複する解説についてはオリジナルの規格書を可能な限り忠実に意訳しました。

本章では、前章までのJOCLによるカーネルやプログラムオブジェクトの設定からステップアップして、カーネル内でロジック・アルゴリズムのプログラミングを解説していきます。

また文法や書式といったものだけでなく、OpenCL C言語を用いてプログラミングするために役立つ組込み関数やデータ型も解説していきます。その際、レファレンスも解説と合わせて掲載します。これからOpenCLを学ぶエンジニアにとってレファレンスは膨大な情報なので処理しきれないでしょうが、APIやOpenCL C言語に慣れてきてサンプルのソースコードを解読したい人や、手を動かして試したい方には便利なので付録ではなく、解説と併記することにしました。若干読みにくくなるはずですが、多少の読みにくさについてはご辛抱頂きたくお願い致します。

もちろん、レファレンスとはいってもOpenCL 1.2の規格を完璧に複製・網羅したものではないので、理解できない表現などがあれば規格書を読んで頂くことを前提とします。ただし本書で使う関数やデータ型については、カバーされています。

Copyright 2018-2019, by Masaki Komatsu