Thread (31 messages) 31 messages, 5 authors, 2021-11-26

Re: [PATCH v4 06/22] cpufreq: amd: introduce a new amd pstate driver to support future processors

From: Giovanni Gherdovich <hidden>
Date: 2021-11-25 15:06:05
Also in: lkml

On Fri, 2021-11-19 at 18:30 +0800, Huang Rui wrote:
<snip>

Performance Per Watt (PPW) Calculation:

The PPW calculation is referred by below paper:
https://software.intel.com/content/dam/develop/external/us/en/documents/performance-per-what-paper.pdf

Below formula is referred from below spec to measure the PPW:

(F / t) / P = F * t / (t * E) = F / E,

"F" is the number of frames per second.
"P" is power measured in watts.
"E" is energy measured in joules.
Hello, I'd appreciate if you can remove the reference to the above paper and
formula, because it is not really relevant to this context, and ends up being
confusing.

It describes performance per watt tailored to graphics benchmarks, in the form
of frames per joule. Nothing wrong with that, but it only works for tests that
measure frames per second, and none of the tests below is of that type.

You have:

- tbench measures throughput (MB/sec)
- gitsource, aka run the git test suite, measures elapsed time
- speedometer, a web browser test that gives "runs per minute"

If you want performance per watt, you need to express your result as
"operations per second", where "operations" is up to you to define. For
tbench, one "operation" is moving a MB of data. For speedometer, one
"operation" is one "run", as defined in the benchmark. Once you have op/sec
(aka performance), divide by the average power measured over the entire
duration of the benchmark.

In cases like gitsource, where you have elapsed_time as a result, performance
per watt is 1 / (elapsed_time * average_power).
We use the RAPL interface with "perf" tool to get the energy data of the
package power.

The data comparisons between amd-pstate and acpi-freq module are tested on
AMD Cezanne processor:

1) TBench CPU benchmark:

+---------------------------------------------------------------------+
quoted
                                                                    |
              TBench (Performance Per Watt)                         |
                                                   Higher is better |
+-------------------+------------------------+------------------------+
quoted
                  |  Performance Per Watt  |  Performance Per Watt  |
  Kernel Module   |       (Schedutil)      |       (Ondemand)       |
                  |  Unit: MB / (s * J)    |  Unit: MB / (s * J)    |
The unit "MB / (s * J)" doesn't really work, it should be "MB / (sec * watt)".
Can you double check that you divided the performance result by the average
power? Same for the other tests.

It is also relevant to show performance, alongside with perf-per-watt.


Thanks!
Giovanni
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help