1

インテル・アドバイザを使用してコード・ベクトル化についてのthisチュートリアルを読んでいます。特に、このページに彼らがすることをお勧め:インテル・アドバイザの最適なフラグと設定

は...コンパイラオプションをリリースモードでターゲットサンプルアプリケーションをビルドします-O2 -g

そして次

を構築するには最も正確な ベクトル化アドバイザーの解析結果を生成するには、次の設定を使用して、リリースモードでバイナリ を最適化します。今

-g -O2 (or higher) -qopt-report=5 -vec -simd -qopenmp 

、私が質問のカップルを持っている:

  1. 私はリリースモードでは、我々は(「デバッグモード」で生産された)すべてのデバッグ情報を生成しなかったことを考え、そう何-g
  2. 含まれるべきではない奇妙なことは、彼らが他のすべてのオプションが含まれていない理由は、サンプルコード(/opt/intel/advisor_*/...vec_samples)のために与えられたMakefileでのみ-g -O2を使用していることです。どうして?

答えて

1

新しいインテル・アドバイザー・チュートリアルの関連エントリ・ポイントは、Getting Startedです。ここで、適切なサブ・チュートリアルを選択して選択できます。 ベクトル化アドバイザーのサブチュートリアル(Linux用)はhereです。

-qopt-report = 5:Intelコンパイラのバージョン15.0に必要です。バージョン16.0に不要と高い機能適切なアドバイザ(-g、-O2に必要な -openmp、チュートリアルが若干混乱、-vec -simdフラグに関して

、必要に応じて-opt-レポート)と "適切な"コンパイラの機能(-vec、-simd、および-openmp)に必要なフラグを比較します。後者のものは、コンパイラのベクトルコード生成を制御するフラグに過ぎません。アドバイザのプロファイリング機能とは関係がないため、それらを使用する場合と使用しない場合があります。


はあなたのより深い理解を与えるために:インテル・アドバイザー調査「コンパイラの統合」と呼ばれている 顧問で重要な機能があります。 この機能は、オプトレポートと比較的類似していますが同一ではないデータを活用します。あなたは

インテル Coimpiler 14.xのベータ版を使用して
  1. 、15.x、16.xまたは17を必要とする作業この機能を作るために 。(デバッグ情報を有効にする)と-O2以上-g X
  2. 一部の最適化を可能にする)
  3. オプション(インテルコンパイラー15.xの場合のみ)-qopt-report5と

コンパイラのバージョン(上記の項目1)またはオプティレポートとバージョン(上記の項目3)にかかわらず、Intel Advisorのその他の機能はすべて同等に機能しますが、それらはすべて-g(上記のオプション2の一部)を必要とします。 -O2は一部の機能では必要ありませんが、パフォーマンスの側面を分析するときに-O0または-O1のコンパイル済みバイナリを処理することは通常無駄です。

関連する問題