Hi All,
I'm trying to benchmark a software routine on Cortex-A32. I'm not finding a way to measure cycles on a Simulator or on a hardware(development board with DS-5 streamline). Any suggestions here?
Thanks in advance for your valuable time and responding to this query.
Regards,
Guna.
Hi Guna,
Every Arm Cortex-A or R cores includes a Performance Monitoring Unit (PMU) that at the very least enables the counting of CPU clock cycles. So you could read it prior to starting your s/w routine, then stop it at the end and the difference between the counts is the # of CPU cycles taken by your s/w routine under investigation.
Using Streamline also provides the ability to perform bare-metal performance analysis if you are not running under Linux.
Streamline Overview
https://developer.arm.com/products/software-development-tools/ds-5-development-studio/streamline/overview
Streamline for bare-metal
https://developer.arm.com/products/software-development-tools/ds-5-development-studio/streamline/streamline-for-bare-metal-systems
Which particular aspect of benchmarking are you struggling with ?
Stuart
Hello Guna,
Another option for benchmarking and performance analysis before you have hardware is Arm Cycle Models. https://developer.arm.com/products/system-design/cycle-models
For more information you can refer to the article at https://community.arm.com/processors/b/blog/posts/using-arm-cycle-models-to-understand-the-cortex-r8
The same type of analysis can be done for the Cortex-A32.
Thanks,
Jason
Hi Stuart,
Thanks for your response. Yes, PMU or Streamline is possible, but unfortunately I couldnt find a development board with Cortex-A32 available in the market as of today. Please suggest if there exist any hardware with A32 core.
Thanks again for your valuable support.
Hi Jason,
Thanks for your response. To begin with "ARM Cycle models", I'm not finding a SoC designer Model(for Windows OS, baremetal) for Cortex-A32. The software routine to be benchmark'ed on A32 is a voice-post processing algorithm, it has fileIO to read&write the input&output. So I'm kind of blocked here. Kindly update me if there is an alternative way to pursue.