高レベルな最適化 (HLO) の概要

高レベルな最適化 (HLO) とは、高水準プログラミング言語で開発されたアプリケーションに含まれているソースコード上の特性 (ループや配列など) を利用した最適化手法です。HLO では、ループ変換の手法に次のものがあります。

デフォルトの最適化レベル、-O2 (Linux* OS および Mac OS* X) オプションまたは /O2 (Windows* OS) オプションでもいくつかの高レベルの最適化 (データ・プリフェッチやアンロールなど) が行われますが、-O3 (Linux* および Mac OS* X) または /O3 (Windows*) を指定すると、メモリーアクセスを最適化するループ変換を実行する機会が得られます。これらのオプションで有効になる最適化は、サポートされるすべてのインテル® アーキテクチャーで異なります。

IA-32 アーキテクチャーとインテル® 64 アーキテクチャーのアプリケーション

ベクトル化オプション -ax および -x (Linux* および Mac OS* X)、/Qax および /Qx (Windows*) と -O3 オプション (Linux* および Mac OS* X)、/O3 オプション (Windows*) を組み合わせて指定すると、-O2 (Linux* および Mac OS* X)、/O2 (Windows*) よりも詳細にデータの依存性を解析します。

プロセッサーで利用できるプリフェッチのサポートのため、コンパイラーのプリフェッチは無効にされます。

IA-32 アーキテクチャーのアプリケーション

-O3 オプション (Linux* および Mac OS* X)、/O3 オプション (Windows*) は、-O2 オプション (Linux* および Mac OS* X)、/O2 オプション (Windows*) を有効にして、さらに強力な最適化 (ループ変換など) を追加します。O3 は、速度が最大になるように最適化を行いますが、パフォーマンスが向上しないプログラムもあります。

一般的なアプリケーション・チューニング

一般に、次の手法で複数のアーキテクチャー向けのアプリケーションをチューニングできます。


このヘルプトピックについてのフィードバックを送信

© 1996-2010 Intel Corporation. 無断での引用、転載を禁じます。