I’m trying to access the Denver2 CPU PMU to count hardware events. I can easily access the Cortex A57 events with many libraries such as perf,likwid, and PAPI. But when pinning an application to the Denver CPU and counting the same events for the same application, the counters remain empty. I presume it’s because the envents on the Denver CPU have different names or has to be accessed differently. So how can I access the PMU to count events such as FP instructions being executed on the Denver CPU?
Hi,
By default the Denver’s are not scheduled with tasks. Please take a look at Jetson/L4T/r32.4.x patches - eLinux.org [TX2] Denver cores not working on TX2
Please manually schedule tasks on it and check again.
I can schedule tasks on the Denver Cores, but the Event Counters seem to be inaccessible. I’ve written a small program to read the event counters of the CPU by using PAPI. When executing the program on the A57 core the events are counted correctly, but when executing the same program on the Denver core (using taskset) the event counters returns a value of 0. So I want to know how can I read/access the events counters of the Denver cores
The events I use with PAPI are, “PAPI_FP_INS,PAPI_VEC_INS”. The idea is just to access the counter that counts the floating point instructions executed. According to the A57 technical referece guide they use “VFP_SPEC” as one of the counter names. Does the Denver core name them differently?
The Denver’s are not true A57 cores, but rather emulate and translate the ARM ISA to NVIDIAs proprietary execution. I’m guessing, the PMU registers and support that is normally available for Cortex-A processors is not available on the Denver cores.