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