6

最近、パフォーマンスカウンターの周りを掘り下げています。そして、perfmon2とlibpfm4 http://perfmon2.sourceforge.net/をグーグルで検索し、perfコマンドhttps://perf.wiki.kernel.org/index.php/Main_Pageを見つけて、Linuxのカーネルソースコードとともに出荷しました。 libpfm4とperfコマンドの両方を再生したperfソースコードリンク。libpfm4はCPUのサイクル数または命令数しか提供できないようです。

perfを使用して取得できると思われるL1-dcache-loadsなどの情報を取得する方法のサンプルコードや実行可能な例が見つかりません。stackoverflowで調べて、perfコマンドとlibpfm4の関係について説明している記事を見つけました:ハードウェアパフォーマンスの使用Linux Peopleのカウンターによると、libpfm4の作成者は、perfコマンドの寄稿者であるIngoに腹を立てていましたが、後で実際にperfのコードのレビューを手伝っていました。

それで、誰かがperfコマンドでperfmon2またはlibpfm4の間の関係を説明することができます。また、perfコマンドを使用するのと同じように、libpfm4を使用してL1-dcacheなどの情報を取得できますか。どうもありがとうございます!

4

1 に答える 1

7

perfコマンドは、プロセッサクロックサイクル、命令カウント、キャッシュイベントメトリックなどを測定するための一般的なパフォーマンスカウンタイベントのサブセットを提供します。ただし、ほとんどのプロセッサは、浮動小数点演算やマイクロアーキテクチャイベント(ハードウェアリソースの制限によるストールなど)など、他の多くの実装固有のハードウェアイベントを提供します。これらの実装固有のイベントにアクセスするには、perf(http://lxr.linux.no/#linux+v3.6/tools/perf/Documentation/perf-record.txt#L33)のrawイベントを使用する必要があります。退屈である。libpfm4は、これらの実装固有のハードウェアイベントを名前で参照するためのマッピングメカニズムを提供します。libpfmはpapiによって使用されます。papiがlibpfmを使用して、これらの実装固有のイベントにアクセスする方法を確認してください(http://icl.cs.utk.edu/projects/papi/)

于 2012-10-02T18:26:52.980 に答える