What level is 'Last Level Cache Misses' in Visual Studio's profiler?

时间:2016-07-11 19:12:14

标签: c++ visual-studio-2013 profiling

I'm in the process of understanding if we have cache use issues in our c++ application.

To do that, I'm in the process of understanding how to use information given by Visual Studio 2013. (I'm new to the optimization and profiling field.)

Thanks to a great kickstart article here, I found this information about my system:

Logical Processor to Cache Map:
**------  Data Cache          0, Level 1,   32 KB, Assoc   8, LineSize  64
**------  Instruction Cache   0, Level 1,   32 KB, Assoc   8, LineSize  64
**------  Unified Cache       0, Level 2,  256 KB, Assoc   8, LineSize  64
********  Unified Cache       1, Level 3,    8 MB, Assoc  16, LineSize  64
--**----  Data Cache          1, Level 1,   32 KB, Assoc   8, LineSize  64
--**----  Instruction Cache   1, Level 1,   32 KB, Assoc   8, LineSize  64
--**----  Unified Cache       2, Level 2,  256 KB, Assoc   8, LineSize  64
----**--  Data Cache          2, Level 1,   32 KB, Assoc   8, LineSize  64
----**--  Instruction Cache   2, Level 1,   32 KB, Assoc   8, LineSize  64
----**--  Unified Cache       3, Level 2,  256 KB, Assoc   8, LineSize  64
------**  Data Cache          3, Level 1,   32 KB, Assoc   8, LineSize  64
------**  Instruction Cache   3, Level 1,   32 KB, Assoc   8, LineSize  64
------**  Unified Cache       4, Level 2,  256 KB, Assoc   8, LineSize  64

It leads me to believe that the last cache level is L3, a cache of 8MB shared among all of my cores.

However, if I run VSPerfCmd:

C:\Windows\system32>VSPerfCmd /querycounters

Portable counters:
        InstructionsRetired
        NonHaltedCycles
--->    L2Misses  <----
        L2References
        ITLBMisses
        BranchesRetired
        MispredictedBranches
Platform counters:
        DCULinesIn
        DCUModifiedLinesIn
        DCULinesOut
        [...]

... and compare it to the Performance Explorer's Property Pages > CPU Counters:

Performance Explorer's Property Pages > CPU Counters

I see that they are not called the same: Visual Studio calls it 'Last Level Cache Misses'.

Is "Last Level Cache Misses" in the Visual Studio profiler L2 cache misses, or is it L3? Is this relevant?

0 个答案:

没有答案