ここでは、効率的なデータアクセスと最適化の問題について説明します。標準の BLAS ライブラリに含まれているマトリックス-ベクトル乗算ルーチン dgemv の実装 2 つを使用します。 この 2 つのルーチンのコピー 3 個がプログラムに組み込まれています。第 1 コピーは最適化しないでコンパイルし、配列の要素のアクセス順序がルーチンのパフォーマンスにどのような影響を及ぼすかを調べます。第 2 コピーは -O3、第 3 コピーは -fast を使用してコンパイルし、コンパイラループの順序変更と最適化が及ぼす影響を確認します。
また、パフォーマンス解析におけるハードウェアカウンタデータとコンパイラコメントの使い方も紹介します。
この例題を実行するには、UltraSPARCTM III 以上のコンピュータハードウェアが必要です。この例題でのパフォーマンスデータの収集方法については、cachetest サンプルのデータ収集を参照してください。パフォーマンスデータを収集したら、次の 3 部で構成されたチュートリアルを順番に行ってください。
実行速度
プログラム構造とキャッシュ動作
プログラムの最適化とパフォーマンス