GAP による出力結果を解析し、特定の推奨内容がソースコードに適しているかどうかを判断します。このチュートリアルのサンプルでは、GAP は scalar_dep.cpp のループに対してレポートを生成します。
for (i=0; i<n; i++) { if (A[i] > 0) {b=A[i]; A[i] = 1 / A[i]; } if (A[i] > 1) {A[i] += b;} }
このサンプルで GAP レポートは、自動並列化を向上するために -parallel オプションを追加するよう推奨しています (リマーク #30761)。リマーク #30515 は、if 変数 b が無条件で割り当てられれば、コンパイラーはループをベクトル化できることを示しています。
GAP レポート記録開始 リマーク #30761: コンパイラーに自動並列化を向上させるアドバイスを生成させる場合は -parallel オプションを追加します。 scalar_dep.cpp(51): リマーク #30515: (VECT) 行 51 のループ は、次の変数への条件付き代入があるため並列化できません: b。このループをベクトル化するには、この変数を各反復の最初で無条件に初期化します。 [確認] ループの各反復で変数の値を読み取る場合は、同じ反復でそれ以前に書き込まれた値でなければなりません。 このコンパイルセッションで出力されたアドバイス・メッセージの数: 1。 GAP レポート記録終了
© 2010 Intel Corporation. 無断での引用、転載を禁じます。