B.26. コンパイラ(ビルド)オプション

表B.70 コンパイラ・ビルドオプション

プリプロセッサオプション
実際のコンパイルの
前に各プログラムソース
に適用されるOpenCL C
プリプロセッサを制御す
るオプション。
-D name
nameを定義「1」のマク
ロとして事前定義します。
-D name=definition
definitionの内容は
トークン化され、`#define`
ディレクティブを第3翻訳
フェーズで扱う時と同様に処理。
改行文字が埋め込まれている
とそこで定義を打ちきる。
-D options
 clBuildProgramまたは
clCompileProgramに指定
したoptions引数内での並
びの順に処理。
-I dir
dirを、ヘッダファイルを
検索する際の対象ディレク
トリの一覧に加えます。
組み込み数学機能に関
するオプション
浮動小数点演算に関する
コンパイラのふるまいを制御。
これらのオプションは、
処理速度と正確性との
トレードオフになる。
-cl-single-
precision-constant
倍精度浮動小数点定数を
単精度浮動小数点定数と
して扱う。
-cl-denorms-are-zero
単精度および倍精度非正規
化数をどのように扱うかを制
御するオプション。このオプ
ションを指定すると、単精度
非正規化数を0に丸めることが
でき、倍精度浮動小数点数が
サポートされている場合はこ
ちらも0に丸めることができる。
このオプションはパフォーマ
ンスに関して求める要件をコ
ンパイラに伝えることを意図
しており、OpenCLコンパイラ
はデバイスが単精度(または
倍精度)非正規化数をサポート
しているときに非正規化数を
0に丸めないという選択が可能。

―CL_DEVICE_SINGLE_
FP_CONFIGにCL_FP_
DENORMビットが立ってい
ない場合、単精度浮動小数
点数に関しては無視。

このオプションは、
デバイスが倍精度浮動小数
点数をサポートしていない
または倍精度浮動小数点数
をサポートしているが倍精
度非正規化数をサポートし
ていない―CL_DEVICE_
DOUBLE_FP_CONFIGに
CL_FP_DENORMビットが
立っていない場合、倍精度
浮動小数点数に関しては
無視する。

このフラグは、スカラお
よびベクトル単精度浮動
小数点変数とこれら浮動
小数点変数へのプログラム
内での演算処理にのみ適用。
イメージオブジェクトか
らの読み込みやイメージ
オブジェクトへの書き込
みには適用されない。
-cl-fp32-correctly-
rounded-divide-sqrt
-cl-fp32-correctly-
rounded-divide-sqrt
ビルドオプションを使った
clBuildProgramまたは
clCompileProgramコマ
ンドは、プログラムソース
内で単精度浮動小数点で割
り算(x/y and 1/x)や
sqrtを正しく丸めること
を指定することを可能と
する。

このビルドオプションは
CL_FP_CORRECTLY_
ROUNDED_DIVIDE_SQRTが
デバイスのCL_DEVICE_
SINGLE_FP_CONFIGに設
定された場合に限り指定できる。
最適化オプション
様々な種類の最適化を
制御するオプション。
最適化フラグを有効にす
ると、コンパイラはコン
パイル時間や場合によっ
てはプログラムのデバッグ
のしやすさと引き換えに、
パフォーマンスおよび/
またはコードサイズの改
善を試みます。
-cl-opt-disable
すべての最適化を無効
にするオプション。既定
では最適化は有効化され
ている。
-cl-mad-enable
a*b+cをmadに交換する。
madは(a*b+c)を減少し
た正確性で計算。例えば、
OpenCLのいくつかは、
cを加算するまえにa*b
の結果を切り捨て(縮
めて)る。
-cl-no-signed-zeros
0の符号の有無を無視
した浮動小数点演算の
最適化をする。
-cl-unsafe-
math-optimizations
引数と結果が有効、
IEEE 754規格を侵害、
OpenCLの数値コンプライ
アンス要件を侵害を前提
とする浮動小数点演算の
最適化を可能とする。

このオプションは-cl-no
-signed-zerosと-cl-
mad-enableを含む。
-cl-finite-
math-only
引数と結果がNaNs
または±∞でないという
前提の浮動小数点演算
の最適化をする。
-cl-fast-
relaxed-math
-cl-finite-math-only
と-cl-unsafe-math-
optimizationsを設定する。
このオプションにより、プリプロセッ
サマクロに
`__FAST_RELAXED_MATH__`
が定義される。
警告の要求また
は抑制をするオプション
警告はリスクのあ
る問題をレポートする診断メッセージ。
-w
警告メッセージを抑制。
-Werror
全ての警告をエラーにする。
OpenCL Cバージョン
の管理をするオプション
以下のオプションは
コンパイラが許容するO
penCL Cのバージョンの管理をする。
-cl-std=
使用するOpenCL C言語
のバージョンを決定。

有効な値には以下のものがある。

CL1.1
CL1.2
カーネル引数情報の
取得についてのオプション
-cl-kernel-
arg-info
このオプションは
コンパイラがカーネル引数
についての情報を格納す
ることを可能とする。

Copyright 2018-2019, by Masaki Komatsu