Hi all, some days ago, I start looking on a particular topic, CPUs that are energy efficient, I was very surprised that there is almost not info about it, no benchmarks... is like, maybe normal, most of benchmarks are focused in the time, finish first, lower the time, even of means more energy.

To start this topic, I must say first, energy efficient is not, performance per watt, which is other metric, a metric of energy is literally which CPU (or mobo/system) uses less energy to finish a task or benchmark.

This metric is tricky, because the total energy of a process is split in two, Watts (energy per second) and amount of time it needed to finish the task.

So here the question, A new CPU can be very fast and good, so its time will be low, but how much is the Watts? can be pretty high.

At the same time, an old CPU, or server one which is slower than a new one will finish in more time, but their Watts could be lower.

So the non-trivial question, which one is more energy efficient? the one who consumes less energy to finish it.

This metric is hard know, because any change you see in architecture, or limit the frequency, or anything could change both, Watts and Time, usually decrease one means increase the other one, but in different proportions.

For current benchmarks that has number of operations like 300 Frames / Second, it can be converted to energy if we know the total power consumption and time.

(Total Power Consumption / Total Time (s) ) / (300 Frames / Second) = Watts / Frame

Any operation can be converted to Energy / Operation while we know this data.

The base concept of why this is useful, is because we don't always want to finish earlier, some times we want to save as much $$ as we want, actually the energy consumed for example for a Epyc 7742 per month could be very big, and we can some times just wait some more time, we does not need always to finish faster, specially if we have some IDLE time.

This could be very useful to construct a Power efficient build, if we know X% of the time we use a server then the cost will be

X*Idle_watt + (1-x)*using_watt

At the same time, we can then make a investment plan based in their energy efficiency.

Some side notes.

There is some benchmarks that shows Performance and Watts, but are not the same concept, usually in performance is Performance / Watts, which try to balance the consumption, which is great, but not this metric. Watts as the energy consumed does not always represent this metric, after all, is Energy consumed / Operation, so only know the Watts or Watts*h are not enough to define this metric, check above in how to convert them.

Something pretty interesting of using this metric is about the CPU frequency, seems while higher it is, the power consumption will increase exponentially, so here the question, which frequency has the optimal for energy? if the frequency is too high, Watts will be too high, if is too low the time to finish the task will be too high, there can be a sweet point.

Would be great, be able to construct this metric using Openbenchmarking info!

Thx!

(Maybe phoronix test suit already has this, and I just could not find it!)

To start this topic, I must say first, energy efficient is not, performance per watt, which is other metric, a metric of energy is literally which CPU (or mobo/system) uses less energy to finish a task or benchmark.

This metric is tricky, because the total energy of a process is split in two, Watts (energy per second) and amount of time it needed to finish the task.

So here the question, A new CPU can be very fast and good, so its time will be low, but how much is the Watts? can be pretty high.

At the same time, an old CPU, or server one which is slower than a new one will finish in more time, but their Watts could be lower.

So the non-trivial question, which one is more energy efficient? the one who consumes less energy to finish it.

This metric is hard know, because any change you see in architecture, or limit the frequency, or anything could change both, Watts and Time, usually decrease one means increase the other one, but in different proportions.

For current benchmarks that has number of operations like 300 Frames / Second, it can be converted to energy if we know the total power consumption and time.

(Total Power Consumption / Total Time (s) ) / (300 Frames / Second) = Watts / Frame

Any operation can be converted to Energy / Operation while we know this data.

The base concept of why this is useful, is because we don't always want to finish earlier, some times we want to save as much $$ as we want, actually the energy consumed for example for a Epyc 7742 per month could be very big, and we can some times just wait some more time, we does not need always to finish faster, specially if we have some IDLE time.

This could be very useful to construct a Power efficient build, if we know X% of the time we use a server then the cost will be

X*Idle_watt + (1-x)*using_watt

At the same time, we can then make a investment plan based in their energy efficiency.

Some side notes.

There is some benchmarks that shows Performance and Watts, but are not the same concept, usually in performance is Performance / Watts, which try to balance the consumption, which is great, but not this metric. Watts as the energy consumed does not always represent this metric, after all, is Energy consumed / Operation, so only know the Watts or Watts*h are not enough to define this metric, check above in how to convert them.

Something pretty interesting of using this metric is about the CPU frequency, seems while higher it is, the power consumption will increase exponentially, so here the question, which frequency has the optimal for energy? if the frequency is too high, Watts will be too high, if is too low the time to finish the task will be too high, there can be a sweet point.

Would be great, be able to construct this metric using Openbenchmarking info!

Thx!

(Maybe phoronix test suit already has this, and I just could not find it!)