高位ループ分析および変換の使用

高位変換は、交換、融合、アンロールなどの手法を用いて、特にループのパフォーマンスを向上させる最適化です。これらのループ最適化の目的は次のとおりです。

高位ループ分析および変換を使用可能にするには、 -qhot オプションを使用します。次の表は、 -qhot で使用できるサブオプションのリストです。

表 10. -qhot のサブオプション

サブオプション 振る舞い
vector コンパイラーに、いくつかのループを変換して、組み込みライブラリーにある各種の三角関数や演算 (逆数や平方根など) の、標準バージョンではなく最適化バージョンを使用するように指示します。最適化バージョンを使用すると、精度とパフォーマンスに関して、さまざまなトレードオフが発生します。このサブオプションは、 -qhot-O4、または -O5 を使用すると、デフォルトで使用可能になります。
novector コンパイラーに、上記の組み込みライブラリー関数を使用する最適化を避けるように指示します。プログラム結果の精度を落としたくない場合は、このサブオプションまたは -qstrict を使用してください。
arraypad コンパイラーに、メリットがあると思われる配列を、必要なだけ埋め込むように指示します。
simd コンパイラーに、SIMD 自動ベクトル化を試みるように指示します。すなわち、配列の連続するエレメントに適用されるループ内の一定の演算を、 VMX 命令呼び出しに変換します。この呼び出しは、いくつかの結果を一度に計算するため、個々の結果を連続して計算するよりは速くなります。このサブオプションは、Y-HPC ではデフォルトで使用可能になります。このサブオプションは、 -qarchppc970 に設定すると、SUSE 9 および Red Hat 4 ではデフォルトで使用可能になります。このサブオプションは、 -qarchppc970 に設定し、かつ -qenablevmx を使用すると、Red Hat 3 U3 で使用可能になります。

-qhot の最大活用

以下に、-qhot を使用する場合の提案事項を挙げます。

IBM Copyright 2003