インテル® Fortran コンパイラーの新しいベクトル化診断

インテル® Fortran コンパイラーインテル® Parallel Studio XE

この記事は、インテル® デベロッパー・ゾーンに掲載されている「New Vectorization Diagnostics starting from Intel® Fortran Compiler 15.0」(https://software.intel.com/en-us/articles/intel-fortran-15-vectorization-diagnostics) の日本語参考訳です。


インテル® C++ コンパイラーのベクトル化診断についてはこちらを参照してください。

以下は、インテル® Fortran コンパイラーによって生成されるベクトル化レポートの診断メッセージです。インテル® Fortran コンパイラーでベクトル化レポートを取得するには、オプション -qopt-report -qopt-report-phase=vec (Linux* および macOS*) または /Qopt-report /Qopt-report-phase:vec (Windows*) を使用します。

診断番号

診断の説明

診断 15552 (英語) ループは "simd" でベクトル化されませんでした。
診断 15300 (英語) ループがベクトル化されました。
診断 15304 マルチバージョンのベクトル化できないループ・インスタンスです。
診断 15310 ループはベクトル化されませんでした: 操作はベクトル化できません。
診断 15319 ループはベクトル化されませんでした: novector ディレクティブが使用されています。
診断 15328 (英語) ベクトル化のサポート: 不規則インデックス・ロードがエミュレートされました (変数 <a(index(i))>)
診断 15331 precise FP モデルがベクトル化を妨げています。
診断 15335 ベクトル化は可能ですが非効率です
診断 15316 (英語) simd ループはベクトル化されませんでした: simd ループでのスカラー代入は許可されていません。private、lastprivate、または reduction 句の使用を検討してください。
診断 15340 プラグマは以前の設定に置き換わります。
診断 15344 ループはベクトル化されませんでした: ベクトル依存関係がベクトル化を妨げています。
診断 15346 ベクトル依存関係: ANTI の依存関係が 行 x と行 x の間に仮定されました。
診断 15378 xxxx はベクトル化されませんでした: /Qfreestanding オプションが整数除算/剰余のベクトル化を妨げています。
診断 15398 ループはベクトル化されませんでした: ループは memset または memcpy に変換されました。
診断 15414 ループはベクトル化されませんでした: 最適化後にループ本体が空になりました。
診断 15415 (英語) ベクトル化のサポート: 集約 (gather) が生成されました (変数 a): 間接アクセス
診断 15423 (英語) ループの反復数が 1 です。
診断 15516 ループはベクトル化されませんでした: 効率化のためベクトル長 x を選択しました。vectorlength 句を含むプラグマ/ディレクティブでオーバーライドされます。
診断 15517 インライン・アセンブリーで EBX/RBX レジスターが使用されているため、このサブルーチンのループはベクトル化できません。
診断 15520 (英語) ループはベクトル化されませんでした: 早期終了を含むループはベクトル化できません。
診断 15521 ループはベクトル化されませんでした: ループを実行する前に反復数を計算できる式に置き換えてください。
診断 15522 ループはベクトル化されませんでした: ループの制御フローが複雑すぎます。制御フローを単純化してください。
診断 15523 ループはベクトル化されませんでした: ループを実行する前に反復数を計算できません。
診断 15524 ループはベクトル化されませんでした: すべてのメモリー参照をアライメントされたベクトルロードにできなければ検索ループはベクトル化できません。
診断 15527 ループはベクトル化されませんでした: xxxx への関数呼び出しはベクトル化できません。
診断 15529 ループはベクトル化されませんでした: volatile 代入はベクトル化されませんでした。非 volatile 代入を使用してください。
診断 15532 ループはベクトル化されませんでした: コンパイル時定数がループの最適化を妨げています。
診断 15534 (英語) ループはベクトル化されませんでした: ループに算術 if または計算型 goto 文が含まれています。。if-else 文の使用を検討してください。
診断 15535 xxxx はベクトル化されませんでした: ループに switch 文が含まれています。if-else 文の使用を検討してください。
診断 15537 ループはベクトル化されませんでした: 暗黙の FP 例外モデルが、切り捨てまたは整数除算/剰余に必要な SVML ライブラリーの使用を妨げています。
診断 15541 外部ループは自動ベクトル化されませんでした: SIMD ディレクティブの使用を検討してください。
診断 15542 ループはベクトル化されませんでした: 内部ループがすでにベクトル化されています。
診断 15543 ループはベクトル化されませんでした: 関数の呼び出しを持つループは最適化の候補と見なされません。
診断 25463 このルーチンの最適化はコンパイル時間を制限するためスキップされました。制限の変更を検討してください (-qoverride-limits)。
診断 25464 一部の最適化はコンパイル時間を制限するためスキップされました。制限の変更を検討してください (-qoverride-limits)。

コンパイラーの最適化に関する詳細は、最適化に関する注意事項を参照してください。

タイトルとURLをコピーしました