-qcache オプションは、特定の実行マシンのキャッシュ構成を指定する。 プログラムの実行システムの型がわかっていて、 システムにデフォルトのケースとは異なる構成の命令またはデータ・キャッシュがある場合は、 このオプションを使用して、正確なキャッシュ特性を指定します。 コンパイラーは、この情報を使用して、キャッシュに関連する最適化の利点を計算します。
.-:---------------------. V | >>- -q--cache--=----+-assoc--=--+-0---+-+-+-------------------->< | +-1---+ | | '-n>1-' | +-auto--------------+ +-cost--=--cycles---+ +-level--=--+-1-+---+ | +-2-+ | | '-3-' | +-line--=--bytes----+ +-size--=--Kbytes---+ '-type--=--+-C-+----' +-c-+ +-D-+ +-d-+ +-I-+ '-i-'
ここで、使用可能なキャッシュ・オプションは以下の通りです。
assoc=number | キャッシュの設定の結合順序を指定します。この場合、number は、以下のいずれかです。
|
auto | コンパイル・マシンの特定のキャッシュ構成を自動的に検出します。 これは、実行環境がコンパイル環境と同じであることを前提としています。 |
cost=cycles | キャッシュ・ミスの結果生ずるパフォーマンス・ペナルティーを指定します。 |
level=level | 影響されるキャッシュのレベルを指定します。この場合、level は、以下のいずれかです。
|
line=bytes | キャッシュの行サイズを指定します。 |
size=Kbytes | キャッシュの合計サイズを指定します。 |
type=cache_type | 指定されたタイプのキャッシュに設定を適用します。
ここで、cache_type は、次のいずれかです。
|
-qtune 設定は、最も一般的なコンパイルに最適なデフォルト -qcache 設定を判別します。 これらのデフォルト設定は、-qcache を使用してオーバーライドすることができます。 しかし、間違った値をキャッシュ構成に指定したり、 異なる構成のマシン上でプログラムを実行した場合、 そのプログラムは正常に稼働しますが、若干遅くなる可能性があります。
-qcache オプションは、-O4、-O5、または -qipa と共に指定する必要があります。
-qcache サブオプションを指定するときには、以下のガイドラインを使用してください。
結合された命令とデータ・レベル 1 のキャッシュ (キャッシュは 2-way アソシエイティブで、サイズは 8 KB で、64 バイトのキャッシュ行を持っている) を使用してシステムのパフォーマンスを調整するには、以下のように入力します。
xlc++ -O4 -qcache=type=c:level=1:size=8:line=64:assoc=2 file.C
関連情報