gatherhint/scatterhint 命令の選択的使用

同カテゴリーの次の記事

メモリー割り当てとファーストタッチ

この記事は、インテル® デベロッパー・ゾーンに掲載されている「Selective Use of gatherhint/scatterhint Instructions」の日本語参考訳です。


概要

この記事では、初期バージョンのインテル® Xeon Phi™ コプロセッサー (A0 ステッピング、2011 年) の既知のハードウェア問題と、その問題の回避方法について説明します。

gatherhint/scatterhint 命令を生成するには、-mGLOB_default_function_attrs= ”use_gather_scatter_hint=on” コンパイラー・オプションを指定します。このオプションは、コードで非ユニットストライド方式のメモリーアクセスを行っていたり、ポインターまたはインデックス配列による間接アドレス指定を使っている場合に役立ちます。

トピック

gatherhint/scatterhint 命令の生成に関連するコンパイラーの動作を次に示します。

コンパイラーの動作:

1. デフォルトでは、コンパイラーは gatherhint と nop を生成しません。

2. -mGLOB_default_function_attrs=”use_gather_scatter_hint=on” オプションが指定されると、コンパイラーは gatherhint と nop を生成します。

gatherhint
gatherhint
nop
gather

このオプションにより現在のコンパイラーは gather ヒントの効果が得られます。

まとめ

gatherhint/scatterhint 命令は、コードで非ユニットストライド方式のメモリーアクセスを行っていたり、ポインターまたはインデックス配列による間接アドレス指定を使っている場合に役立ちます。

次のステップ

この記事は、「インテル® メニー・インテグレーテッド・コア (インテル® MIC) アーキテクチャー向けプログラミングとコンパイル」の一部です。インテル® Xeon Phi™ コプロセッサー上にアプリケーションを移植し、チューニングを行うには、各リンクのトピックを参照してください。アプリケーションのパフォーマンスを最大限に引き出すために必要なステップを紹介しています。

インテル® メニー・インテグレーテッド・コア (MIC) アーキテクチャー向けの高度な最適化」に戻る

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

関連記事