I used PAPI on Linux. But, I started to use Intel PCM 2.0 because it supports Windows. I have two questions. I am not an expert on x86 instructions.
(1) Source code of PCM 2.0 shows that it uses MSR register by using RDMSR instruction. I thought that RDPMC (Read Performance Monitoring Counters) was used as it seems to have smaller latency. Is there any reason why PCM uses RDMSR?
(2) Getting L2/L3 misses or hits are already implemented. But, I'm wondering how I can obtain other counters such as counters for branch predictors. In PAPI, I can switch the group of counters to be obtained. Is it possible to do that with PCM 2.0?