Question Need help with i3-1220P power management (PL1/PL2/Tau) ?

PiffPuff

Commendable
Jan 8, 2021
71
1
1,535
Hi folks!

My i3-1220P CPU has factory settings at 28W (PL1) and 64W (PL2). I want to fine-tune them in BIOS for best productivity.
In wide brushstrokes I know that I need to measure CPU temp during workload and gradually increase PL1/PL2, however I have several questions regarding the process:
  1. Is there any good rule of a thumb regarding the difference (in W or %) between PL1 and PL2?
  2. In which scenarios does it make sense to set PL2 equal to PL1?
  3. I assume my heaviest workload will be transcoding done by Plex Server, which AFAIK is done by GPU (embedded in my case). Will transcoding raise the TDP because my GPU is part of the CPU? I'm asking, because if it won't affect TDP much, maybe it is better to use some synthetic stress test instead to define my PL parameters (e.g., set those which allow X min of stressful workload with CPU temperature keeping under Y°)?
Thank you!
 
As long as your computer has adequate cooling, you can set the power limits as high as you like. Set PL1 and PL2 both to 64W and check your temperatures during any normal load. Run a consistent test like Cinebench to fully load your CPU.

I set my desktop computer to 300W because the cooling can handle that without overheating.

nMRaYKc.png
 
Set PL1 and PL2 both to 64W and check your temperatures during any normal load. Run a consistent test like Cinebench to fully load your CPU.
[bold is mine]
So should I set PL1/PL2 to desired levels looking at CPU temp at normal load, or at full (maximum load)? Common sense tells me full load should serve as a benchmark, since we don't want our CPU throttle when any heavy task below "full" is running, right?

And this is where my question #3 comes from: can my Plex transcoding task be considered as a heavy one, or do I better use Cinebench instead (which loads CPU to its limits), because if my PL1/PL2 manage temp at Cinebench test, they will handle any other task (incl. transcoding) easily?
 
In that case, set your power limits to however much heat your cooling system can dissipate. A lot will depend on your room temperature and what sort of applications you run. If your CPU is often times significantly loaded for extended periods of time then you will likely have to use some conservative power limit values to avoid overheating.

I would turn on the ThrottleStop Log File option and then do some transcoding or run whatever apps are important to you. The log file will give you a good indication of temperatures vs power consumption. With fanless computers and a constant load, you might see temperatures go up and up and up. If your CPU gets hot enough, thermal throttling will kick in to save the CPU from any long term damage.

Copy and paste some log file data to www.pastebin.com if you want me to have a look at things.

those which allow X min of stressful workload
Your fanless computer will likely reach maximum temperature within a few seconds when the CPU is loaded significantly. The cooling in most devices with 1220P CPUs is barely adequate at the best of times.
 
  • Like
Reactions: PiffPuff
Thank you so much! Appreciate your readiness to help, really!
Your fanless computer will likely reach maximum temperature within a few seconds when the CPU is loaded significantly.
I would turn on the ThrottleStop Log File option and then do some transcoding or run whatever apps are important to you. The log file will give you a good indication of temperatures vs power consumption.
So your final word on which software to use to define MAX parameters of PL1/PL2 is not the one which intentionally loads CPU to the top (e.g., Cinebench), but the most resource consuming among those I will use in real life (e.g., transcoding, 3D-scene generation, etc.), right?

The reason for such a proposal is that fanless cases have poor cooling capabilities, hence the Cinebench-like extreme workload will bring CPU temps close to throttling ones in an eyeblink. However, was it a fan-equipped case, I should have used Cinebench instead - to test the CPU cooling in severe conditions.

Did I understand your logic correctly?

And finally, when does it make sense to set PL2 equal to PL1?
 
Last edited:
@PiffPuff
It makes sense to set the power limits equally when you have good cooling.

If a Cinebench stress test is overkill compared to how you normally use your computer then I would not set the power limits based on Cinebench. It makes more sense to do some transcoding if that is the biggest load you normally use.

The purpose of the power limits in your case is so the CPU does not overheat and thermal throttle very often. It is OK if the CPU needs to thermal throttle occasionally. It is not the end of the world. There is not much difference whether a CPU uses thermal throttling or power limit throttling to control itself. In theory, power limit throttling might be a little smoother but when an Intel CPU is adjusting itself hundreds of times per second, most people will never notice any difference.

You seem to be over thinking this when you really do not have to. Intel CPUs do a great job of looking after themselves.
 
  • Like
Reactions: PiffPuff
You seem to be over thinking this when you really do not have to. Intel CPUs do a great job of looking after themselves.
Well, just want to know the principles, not to make a mistake. And your detailed explanation is very helpful - I appreciate your readiness to share your knowledge. 👍

Just the last question to call it a day:
It makes sense to set the power limits equally when you have good cooling.

Let me describe an example, so that you kindly check if I understod this logic, OK?

Some CPU has the manufacturer defined TDP of 20W at base clocks and 60W at turbo clocks. When I manually set PL1 to 30W and PL2 to 50W (i.e., they are different) the CPU runs at maximum possible frequency (if the nature of the task requires such frequency of course), but its TDP is never higher than 50W. When TDP reaches 50W, CPU drops its frequency to levels, which decrease the TDP to not lower than 30W (TDP1). So, the reason to have TDP2 = TDP1 is to force CPU work at always high frequencies even if the nature of the task doesn't require such frequencies - the CPU just can't drop TDP lower, hence the frequency always stays high. Kinda "overclocking" within the factory defined range.

In this case, if the CPU base clocks' TDP is 20W and turbo is 60W (as per the example above) and we want PL2 = PL1, it makes sense to set them closer to the higher TDP limit, e.g., to 50W. Which (as you said) makes sense only if we have good cooling solution. If the cooling solution is not good - like in my fanless case - setting PL2 = PL1 in the lower TDP range (e.g., PL2 = PL1 = 30W) makes no sense, as it will be an articifical limitation of CPU's capabilities, which is obviously stupid.

Did I get this PL1 = PL2 logic correctly?