インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス
ユーザー定義の関数とループをベクトル化できるようにします。
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 ずつ、param2 は step2 ずつというように増分されるようにコンパイラーに指示します。 特定の変数に複数の step が指定されている場合は、コンパイル時にエラーが発生します。 複数の linear 節は結合されます。 uniform 節: uniform(param [, param,]…) 形式。param は、指定された関数の仮引数です。 この節は、パフォーマンスを最適化するために、指定された引数の値をすべての反復にブロードキャストするようにコンパイラーに指示します。 mask 節: [no]mask 形式。 ルーチンのマスク付きのベクトルバージョンを生成するようにコンパイラーに指示します。 |
このキーワードは、呼び出しで map 演算と組み合わせて、データ並列セマンティクスを提供します。 並列コンテキスト内に vector 宣言の複数のインスタンスが起動する場合、順次に実行されません。