研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

Oprofile イベント。

2008-11-05 22:50:36 | Weblog
結局まだイベントの違いが分かっていない。説明文を読んでみる限りでは「ミスの回数なのか」それとも、「ミスによって起きたロードの回数」なのかくらいしか違いは分かっていないのだが、測定してみるとかなり値が異なっている。

MEM_LOAD_RETIRED: (counter: 0)
Retired loads (min count: 500)
Unit masks (default 0x1)
----------
0x01: Retired loads that miss the L1 data cache (precise event)
0x02: L1 data cache line missed by retired loads (precise event)
0x04: Retired loads that miss the L2 cache (precise event)
0x08: L2 cache line missed by retired loads (precise event)
0x10: Retired loads that miss the DTLB (precise event)

MEM_LOAD_RETIRED:0x01:500 -> 1,923,894 x 500
MEM_LOAD_RETIRED:0x02:500 -> 1,199,349 x 500
MEM_LOAD_RETIRED:0x04:500 -> 118,113 x 500
MEM_LOAD_RETIRED:0x08:500 -> 67,832 x 500
MEM_LOAD_RETIRED:0x10:500 -> 506,281 x 500

MEM_LOAD_RETIRED:0x01:500 と MEM_LOAD_RETIRED:0x02:500
MEM_LOAD_RETIRED:0x04:500 と MEM_LOAD_RETIRED:0x08:500

はそれぞれかなり似ているのに、倍近く値が異なる。x 1.60 と x 1.74 でその割合も近いがそれは偶然なのだろうか。DTLB に関しても良く分かっていない。合わせて調べるしかないが、どうすればよいのか。。