< 目次

メモリーアクセスの問題を解決

チュートリアルのこのステージでは、ソースコードを編集し、アプリケーションを再コンパイルして、メインメモリーのアクセスのボトルネックを解決します。

インテル® oneAPI DPC++/C++ コンパイラーを使用して修正および再コンパイルするには、次の手順に従います。

  1. ‘/opt/intel/oneapi/compiler/latest/env’ フォルダーで、次のコマンドを実行してコンパイラー環境変数を設定します。

    source env.vars
  2. マシン上の matrix サンプル・アプリケーションのフォルダーを見つけます。デフォルトは以下です。

    $HOME/intel/vtune/samples/matrix

  3. 任意のテキストエディターを使用して、’../matrix/linux/’ フォルダーにある makefile を開きます。

  4. 42 行目を以下のように変更します。

    CFLAGS = -g -O3 -fno-asm

    変更後:

    CFLAGS = -g -O1
  5. 43 行目を以下のように変更します。

    OPTFLAGS = -xSSE3

    変更後:

    OPTFLAGS =
  6. makefileを保存して閉じます。

  7. ‘../matrix/src’ フォルダーにある multiply.h ヘッダーファイルをテキストエディターで開きます。

  8. 36 行目を以下のように変更します。

    #define MULTIPLY multiply1

    変更後:

    #define MULTIPLY multiply2

    これにより、プログラムは multiply.c ソースファイルの multiply2 関数を使用するように変更され、メモリーアクセスの問題を解決するループ変換テクニックが適用されます。

  9. multiply.h ファイルを保存して閉じます。

  10. ‘../matrix/linux’ フォルダーに移動し、次のコマンドを使用してアプリケーションを再コンパイルします。

    make icc

次のステップ: 最適化後のパフォーマンスを解決します。