表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