CodeAnalyst は AMD が提供しているパフォーマンスアナライザです. CodeAnalyst には複数のツールが含まれていますが,ここではパイプラインシ ミュレータについて説明しています.
パイプラインシミュレータは,動作中の CPU のパイプラインをグラフィカルに 表示するものです.うまく活用すれば,プログラムの動作を遅くする原因であ るパイプラインストールが発生する場所とその原因を素早くみつけることがで きます.アセンブリを読んで命令の依存関係とかを考える地道な作業からはも はやおさらば. CodeAnalyst を活用してスマートに最適化を行いましょう!
というわけで,以下では sample.exe というプログラムを例に,シミュレー ションの利用方法を説明します.
デバッグビルドしたプログラム.
まず,プロジェクトファイルを作成します.
プロジェクトの基本設定を行います.
プロジェクトの名前および保存先,そして対象プログラムを指定します. プログラムを実行するのに引数が必要な場合は,それも指定します.例で は, sample.exe に対して arg1 と arg2 の 2 つの引数を指定して います.
続いてシミュレーション区間の設定を行います.
ソースファイルの検索.
シミュレートしたい区間を含んでいるファイルを検索ボックスを利用して 探します.ここでは, BBSThread.cpp を検索しています.
関数の検索.
シミュレートしたい区間を含んでいる関数を検索ボックスを利用して 探します.ここでは, get_bcomment を検索しています.
シミュレーションを実行することで,分析に必要な情報が収集されます.実 行後はエラーメッセージが出ていないか確認しておきましょう.
いよいよパイプラインの状態の表示です.
下の枠に,パイプラインの状態が表示されます.四角で示されたパイプライ ンステージの上にマウスを載せると説明文が表示されます.
パイプラインステージの詳しい内容についてはマニュアルの Pipeline Events and Related Stalls を参照してください.基本的には,赤い枠が あるステージはストールしています.
CodeAnalyst はシミュレーションの履歴を保存する機能を持っています.シミュ レーションと最適化を繰り返しながら,プログラムを改善する場合に役立ちま す.