インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス

vector

ユーザー定義の関数とループをベクトル化できるようにします。

構文

Windows®:

__declspec(vector(clauses))

Linux*:

__attribute__((vector(clauses)))

引数

clauses

次のいずれかです。

processor 節: processor(cpuid) 形式。 指定されたターゲット・プロセッサー (cpuid) 向けに関数のベクトルバージョンを作成します。 サポートされる値のリストは、cpu_specific を参照してください。 デフォルトのプロセッサーは、コンパイラー・コマンドラインの暗黙的または明示的なプロセス固有/アーキテクチャー固有のフラグによって決定されます。

vector length 節: vectorlength(n) 形式。n はベクトル長 (vl) で、整数値 2、4、8、または 16 でなければなりません。 この節は、各ルーチンの呼び出しで、スカラー関数を n 回実行するのと同じ分の計算を実行するようにコンパイラーに指示します。

linear 節: linear(param1:step1 [, param2:step2]…) 形式。param はスカラー変数、step はコンパイル時の整数定数式です。 この節は、シリアル実行においてルーチンの連続した呼び出しで、param1 の値は step1 ずつ、param2step2 ずつというように増分されるようにコンパイラーに指示します。 特定の変数に複数の step が指定されている場合は、コンパイル時にエラーが発生します。 複数の linear 節は結合されます。

uniform 節: uniform(param [, param,]…) 形式。param は、指定された関数の仮引数です。 この節は、パフォーマンスを最適化するために、指定された引数の値をすべての反復にブロードキャストするようにコンパイラーに指示します。

mask 節: [no]mask 形式。 ルーチンのマスク付きのベクトルバージョンを生成するようにコンパイラーに指示します。

説明

このキーワードは、呼び出しで map 演算と組み合わせて、データ並列セマンティクスを提供します。 並列コンテキスト内に vector 宣言の複数のインスタンスが起動する場合、順次に実行されません。