Ryusai's Homepage
トップページ > lperfex

lperfex

P6 CPUには実行されたプログラムのパフォーマンス特性を計測するパフォーマンスカウンタレジスタを持っており、このレジスタにアクセスすることで実行されたプログラムのパフォーマンス等を検証することに役立てることができます。実際にL1 CacheやL2 Cacheのヒット率を調べることが必要になり、このレジスタにアクセスするlperfexというUtilityの存在を知り、インストールして実行させてみましたので紹介します。

必要となるプログラム及び環境

2002/2/17時点での最新バージョンはVersion2.0で、インストールしたバージョンはVersin1.0です。lperfexはパフォーマンスカウンタレジスタアクセスを可能にする為のLinuxカーネルパッチを必要とします。

カーネルバージョンはKernel2.2.17(Vine Linux2.1)で行いました。


インストール手順

適当なディレクトリ(/home/hoge)でperf-0.7.tar.gzを展開する

# gzip -dc perf-0.7.tar.gz | tar xvf -

Performance Counterをサポートする為にkernelにパッチをあてる

# cd /usr/src/linux 
# patch -p1 < /home/hoge/perf/perf-patch-2.2.9

lperfex.cをコンパイルするのに必要なlibraryの生成とインストール

# cd /home/hoge/perf 
# make

lperfex.cの編集とコンパイル

ソースlperfex.cの #define CLOCKSPEED 550を測定するマシンのパイプラインクロック周波数に書き換えます。

/*
   The following assumes a 550 MHz clock.
   Compile with -DCLOCKSPEED=xxx to override.
 */
#define CLOCKSPEED 666 ← 測定するマシンのクロックスピード666MHzに書換え
lperfex.cのあるディレクトリでコンパイルします。
# gcc -o lperfex lperfex.c -I/usr/local/include -L/usr/local/lib
 -lperf -lm -DCLOCKSPEED=666

performance counter support kernelの設定(kernel再構築)

# cd /usr/src/linux 
# make menuconfig
を実行するとConfiguration Menuが表示されるので
Processor type and features ---> をセレクトし、
(386) Processor familyを選択
(x) PPro/6x86MXをセレクト
新しく追加されているCPU Performance Counuter Support (NEW)をチェックし、このConfigurationを保存する。
カーネルの再構築をするのに、以下の手順でコンパイルします。
# make dep 
# make clean 
# make 
# make modules 
# make modules_install
このPCはフロッピィブートをしていますので# make bzdiskを実行します。
これで再起動するとPerfomance Counter Registerにアクセス可能なカーネルが起動します。

実行例

使用方法や計測できるEventの詳細はhttp://www.osc.edu/~troy/lperfex/oldversions.htmlを参照願います。例えば、アーカイブされたファイルを展開するプログラムを実行しその時のL2 cache hit rateを知る場合
$ ./lperfex -e 13 -e 18 -y -o result.txt -- gzip -dc hdbench.tgz
とすることでresult.txtというファイルが生成されます。




サイトマップこのサイトについてお問い合わせ |
Copyright (C) 2006-2008Ryusai's Homepage All rights reserved