Friday, December 5, 2014

CPU Freq and Performances : Single and Multi Thread

Linpack Benchmarking for Moto G, Single and Multi-Threads...
Linpack CPU Benchmark Logo

Before we compare Moto G and E Snapdragon 400 and 200 (respectively a Quad-core Cortex A7 @1.19GHz and a Dual-core Cortex A7 @1.19GHz), let's see how the Moto G performs with ONDEMAND governor and increasing CPU Clock.






MFLOPS and CPU Clock speed

On Moto G XT1032 aka Falcon, CM11


A MotoG XT1032, running CM11-20141124-NIGHTLY has been used for MFLOPS per MHz tests.

The CPU is downclocked at 787MHz, and then frequency is raised up to nominal Frequency that is 1190MHz. Here are Single and Multi-Thread MFLOPS results.


MFLOPS performance against MHz single and multi-thread
You can note that 998MHz had inconsistent results due to high standard deviation...



MFLOPS/MHz

A closer look to the results
Multi-thread results raise quicker than Single Thread, let's explore this closer :
CPU efficiency : MFLOPS per MHz against MHz : Single and Multi-Thread
As we can see, 
  • MFLOPS/MHz ratio does not increase much for Single Thread, but,
  • For Multi-thread the ratio increases between 787 and 998MHz but then stagnates : This means that MFLOPS increases in a linear way as Frequency is raised.

This can be explained by the following fact : 
The OS needs some CPU cycles to stay ON, so under a certain frequency it conflicts with Linpack work and decreases performances more than expected.


Conclusion?

As a conclusion, we can say that CPU clock increase is more effective on multi-threaded applications (in a quite linear manner) than on Single threaded ones.