dotnet/BenchmarkDotNet
View on GitHubUnable to read some hardware counters on ZEN2 CPU
Open
#1,520 opened on Aug 21, 2020
Area:Diagnosersgood first issueup-for-grabs
Description
Having trouble reading 'CacheMisses' and 'InstructionsRetired' whenever I run the dotnet/performance benchmark suite. If I run the command from within the src\benchmarks\micro directory:
dotnet run -c Release -f netcoreapp5.0 --filter '*Bilinear*' --counters CacheMisses InstructionsRetired
I get the following error message:
// Validating benchmarks:
The counter CacheMisses is not available. Please make sure you are Windows 8+ without Hyper-V
The counter InstructionRetired is not available. Please make sure you are Windows 8+ without Hyper-V
I am able to get some counters to read by enabling IBS in my BIOS (technically wasn't called IBS, I had to disable SVM to get it to work). So the following command does work for me:
dotnet run -c Release -f netcoreapp5.0 --filter '*Bilinear*' --counters BranchMispredictions
If I profile a C# application outside of BenchmarkDotNet using AMD uProf, I can get cache miss and instructions retired statistics. I am also able to read all of the counters on my Skylake machine using the BenchmarkDotNet CLI without any issues.
Would appreciate any help that can be provided!