Heat Spreader Performance and Overclocking


Thanks for your informative replies to my post and excuse my ignorance as I have a lot to learn. My needs for the pyra are humble for its power as I want it mainly for emulation of upto and including 16bit systems and old arcade and dos games, and not really interested in newer systems after that so I wouldnt need more than 1GHz I imagine, but what about those that want emulation of consoles like Nintendo 64, saturn, psp, dreamcast, gamecube etc, the pyra will surely need to be running over 1GHz for atleast playable if not fullspeed emulation of these systems and will the issue of overheating and underclocking affect the emulation performance?
 
Last edited:
but what about those that want emulation of consoles like Nintendo 64, saturn, psp, dreamcast, gamecube etc, the pyra will surely need to be running over 1GHz for atleast playable if not fullspeed emulation of these systems and the issue of overheating arises affecting the emulation?
N64,PSP, Dreamcast and likely Saturn should be playable even without overclocking. Can't say gamecube will be an easy feat even with the ability to Overclock, but that is more of an issue with graphics capabilities of the PowerVR chipset in the Pyra.
 
As I've posted before, aided and confirmed by others, throttling can be achieved by cgroups.

Possible throttling mechanisms

More details on cgroups

I haven't checked, but I would not be surprised if you can dynamically modify the settings, so a process could watch cpu and/or battery temperature and throttle down a game by limiting the amount of cpu the game is allowed. So the OMAP would continue to be clocked at 1 GHz, but the individual game would be allowed a smaller and smaller amount of the cpu as the temperature rose. Basically you are influencing the kernels cpu scheduler, and 'inserting lots of NOPS' to let it cool down.

Setting it up to be easy to use is the challenge.
 
At least for x86 CPUs I was under the impression there was a factory-defined maximum temperature check implemented in the hardware itself that would trigger an emergency shutdown of the system when needed. Is this really not the case on the OMAP?
Throttling should happen before that, sure, but seems weird to not have that kind of safety mechanism embedded at all.

That's 'THERMTRIP' on Intel CPU, when the CPU shuts down to prevent thermal damage. But before that there are a lot of limits that should trigger a throttling to prevent reaching that value; here are most of them for a 6820HK (2nd & 3rd column):

1YBFKLx.jpeg


Here you can see how thermal throttling works on this CPU and what triggers, so triggering 'THERMTRIP' is fairly strange as it usually triggers other limits before which cool it. On this case apart from the thermal triggers, it triggered 'IA: Electrical Design Point' & 'RING: Max VR Voltage' which limit power to the CPU. Notice also the triggers for the GPU on the 4th column.

In fact, Intel CPU's are throttling almost always, a normal locked CPU usually does this:
->If there's load the CPU sets clocks to turbo until time exceeds Tau and keeps power to PL2. When time exceeds Tau sets power to PL1 and downclocks to nominal. And usually turbo only works on 1 core at max clocks and less on the others, depends on the CPU.

On an unlocked CPU you can set both PL and Tau as well as how many cores go turbo and how far. But there's not usually a lot of room regarding electrical design.

On Intel CPU's, there's also a point (varies from chip to chip) from where you need to increase voltage (over default) to increase clocks further, so there's a range where CPU's are most efficient and beyond there you are wasting power, here you can see the default values for a 6820HK and those needed to overclock it to 4.2GHz on the four cores:

5DXuxfv.jpg


Notice that you must apply a voltage offset of +50mV to get there, so less efficient and even more heat to dissipate.

I don't see much reason to overclock unless you need raw computing power, which is not the case for the Pyra, but also on a lot of computing intensive operations you can only use one core at a time, so you would benefit from overclocking only one core...

@vampire8bit this CPU is rated 2.7GHz nominal 3.6GHz turbo, and as you can see on default the 3.6GHz is only for 1 core (3.2 on the four) and only for 28 seconds then it goes back to 2.7GHz if there's need for it and power available, so on normal operation it doesn't go almost never at 3.6GHz, and this is a machine with more efficient cooling than the Pyra, designed to keep higher clocks and continuous high power draw, as opposed to the Pyra.

So we need a dynamic throttling system.

'TI’s SmartReflex™ 3' doesn't do that? Or it doesn't fit our intended use?
 
Its a quite though Topic: Shure some of us are disappointed because it wasnt that clear that the Dualcore 1,3 ghz of the Omap 5 on the Pyra where just best case for a short period,
Some of us where experienced Computer Specialist or something that know how this works, but others where just "Consumers" like i.. , whe believe in the Specs when whe get these from our Companys, even if whe are dissapointed afterwarts,

When i may make an Exemple whit the Unimog: On the Paperwork of our Unimog, they meantioned a Max Speed of 80 kmh, but long bevore, you Ears fell out because its too noisy to drive over 70 kmh, so you want reach the 80..

Its not that easy to put a Industrial CPU in a Tiny Handheld, so this is the Worst Case for the Omap..

I was fine whit the Speed of my Pandora, and when the Pyra can make more whit the Pandora Clock Speed, then i think its amazing as its means its battery will lost even longer..
 
The 1,5GHz help a lot during non-gaming workload.
They help to load webpages faster and to speed up loading times.

@matzesu
Every CPU throttles.
Intel calls the non throttling mode "Turbo Boost".
They do not run all cores at full speed all the time.

Smartphone SoCs also do throttle all the time and are below their advertised max clock speed.

That said, my prototype is still running at 1GHz I suppose without any cooling.
For Desktop work it feels multiple times faster than the Pandora.
So except for gaming and compiling you won't notice the difference much I suppose.
 
I wrote this Thread allready, i know that its throttles, im no "trottel" ^^, and i also know that the Pyra is that fast as its is, Dualcore 1,3 or Dualcore 1,0 is just 0,3 GHZ per Core more, thats just a Thirdt..

I have the Poorest Pandora Model, so i dont care that much about 0,3 ghz, more or less..

Im more interesting in the Pyra because its long running times,

Optimication isnt that important anymore in current "Retro Games", I know that some look like they are from the Super Nintendo, but have some multible 100drets of mb in space and need modern CPUs to run..
So i hope this want be the case at Pyra Software...
 
  • Like
Reactions: rSl
Every CPU throttles.
Intel calls the non throttling mode "Turbo Boost".
I'm currently rocking a LGA775 based CPU (Core 1 era Pentium D according to the label). That will happily clock at 1.6GHz when unloaded, but if I load it for any length of time it had a habit of clocking back when it turned out the stock cooler they'd given it wasn't capable of removing all of that heat. I've since upgraded the cooler on it, and now I've not spotted it clocking back yet, but the so called 'silent' cooler becomes appreciably non-silent when it really needs to extract heat.

That predated Intel's coining of the 'turbo boost' moniker. Even then, CPUs using the default cooler weren't able to run consistently at full pelt.
 
And not only smartphones throttle. Has anyone played a bit with one of the latest (2016 on, for example...) 'gaming' notebooks? Let me give you an example:

P670RSG (unlocked 6820HK, GTX 1070 notebook):

->Power management for these GPU is quite complex, base core clock is rated at 1442MHz and boost at 1645MHz but are unlocked and by default overclock and underclock based on load, thermal margin, available power and other parameters, this one overclocks by default over 1800MHz and stays consistently at around 1600MHz on load:

3sfaUDG.jpg


Not only that, but this notebook is unable to maintain both CPU and GPU at 100% performance for prolonged periods (throttles either GPU or CPU), and uses a fairly complex cooling solution:

YFiNXcF.jpg


And this when powered by the PSU, when running on the battery it throttles to about 60-75% of GPU performance always, in order to avoid destroying the LiPO battery. Also on these things the die of both CPU and GPU is in contact with those heat-spreaders (TIM in the middle of course) so heat doesn't have to waste time going through an IHS (more efficient...)

So seeing how was the cooling solution for the Pyra, I already expected it to throttle on serious load. Those who want to overclock it should begin to think about designing and fitting a custom solution with heatsink and fan...
Interesting, does that mean my CPU is defective or just cooled really well? On my oyrx pro 3b I torture tested it for four hours and it never went below the muli core turbo speed of 3.4GHz (i used stress for the cpu and furmark for the GPU at the same time) on a i7 7700hq and a GTX 1070 mobile (Not the Max Q Variant) the hottest the CPU got to was 92 C and the GPU 78 C, so that probably has a lot to do with it as the max temp for this CPU is 100 C.
 
I would have thunk, the kernel has some governing component, that does the throttling. ?

but the so called 'silent' cooler becomes appreciably non-silent when it really needs to extract heat
I've stuffed those into my computer:
They are indeed very quiet. Seven years ago, I had to focus to hear them and still wasn't sure, if I do or if I only hear the air flowing through the rack. Now there's no denying the noise they make. But, their sound design holds - the sound those suckers make is no annoying one/easy to ignore. Only downside, they're loud, when you place them with objects close in front of their sucking side. I've installed the intake fan with strings in an empty hdd cage or behind it.
 
I would have thunk, the kernel has some governing component, that does the throttling. ?

Well, yes. But not based on temperatures. It just defines how fast and high the system clocks up or down depending on your usecase.
For example, for mobile usage, you'd rather prefer it to be battery saving than have a high performance, so you can set it up that it takes longer to clock higher.
Or to never clock higher - if you prefer lower power usage over performance.
Or never clock down.

But this doesn't have anything to do with cooling.
 
Well, yes. But not based on temperatures. It just defines how fast and high the system clocks up or down depending on your usecase.
For example, for mobile usage, you'd rather prefer it to be battery saving than have a high performance, so you can set it up that it takes longer to clock higher.
Or to never clock higher - if you prefer lower power usage over performance.
Or never clock down.

But this doesn't have anything to do with cooling.
Sounds broken to me, if it doesn't take available temperature messurements into account.
 
Interesting, does that mean my CPU is defective or just cooled really well? On my oyrx pro 3b I torture tested it for four hours and it never went below the muli core turbo speed of 3.4GHz (i used stress for the cpu and furmark for the GPU at the same time) on a i7 7700hq and a GTX 1070 mobile (Not the Max Q Variant) the hottest the CPU got to was 92 C and the GPU 78 C, so that probably has a lot to do with it as the max temp for this CPU is 100 C.

That's hard to believe. How do you know it didn't downclock from 3.4, did you log the clocks? And what's the point on that type of stress test?

There are some scenarios where that could happen (for example disabling on demand modulation, but there you would get high clocks without load, which is useless...). And unless you changed any setting for the 1070, for sure it didn't clock to 1800MHz constantly for 4h. Also it's very strange you didn't hit any power limit on that test, and that's a completely different CPU, so power management on it is, most likely, different.

And last, unless you really want to get rid of that notebook, don't use furmark to stress the GPU. There are some synthetic tests like Furmark which place unrealistic load on hardware. "Yeah but I was checking the temps. and..." Sure thing, but you know that, in order to feed 150W to your GPU for 4h you are also stressing the VRM on your motherboard right? And guess what happens when you blow those... :p

But this doesn't have anything to see with the Pyra, I just wanted to demonstrate that every machine is downclocked and throttled by default. And for those curious, that CPU went up to 4.2 GHz on 4 cores using unconventional conductive TIM of 73W/mK conductivity and adjusting the gap for the Heat spreaders. There's no way to do that with standard TIM of 8W/mK conductivity.
 
That's hard to believe. How do you know it didn't downclock from 3.4, did you log the clocks? And what's the point on that type of stress test?

There are some scenarios where that could happen (for example disabling on demand modulation, but there you would get high clocks without load, which is useless...). And unless you changed any setting for the 1070, for sure it didn't clock to 1800MHz constantly for 4h. Also it's very strange you didn't hit any power limit on that test, and that's a completely different CPU, so power management on it is, most likely, different.

And last, unless you really want to get rid of that notebook, don't use furmark to stress the GPU. There are some synthetic tests like Furmark which place unrealistic load on hardware. "Yeah but I was checking the temps. and..." Sure thing, but you know that, in order to feed 150W to your GPU for 4h you are also stressing the VRM on your motherboard right? And guess what happens when you blow those... :p

But this doesn't have anything to see with the Pyra, I just wanted to demonstrate that every machine is downclocked and throttled by default. And for those curious, that CPU went up to 4.2 GHz on 4 cores using unconventional conductive TIM of 73W/mK conductivity and adjusting the gap for the Heat spreaders. There's no way to do that with standard TIM of 8W/mK conductivity.
It was a combination of logging and watching the frequency reporting app (in this case psensor) I didn't log the gpu frequencies because I was new to performance machines at the time (This is my first performance machine) and at the time I didn't know about furmark's reputation. As for why I did it, it was a replacement unit for a defective one that was RMA'd (screen would randomly go all wonky seconds before abruptly powering off, more commonly if under load) so I wanted to make sure it wouldn't shut down and figured 4 hours of torture testing would be sufficient to shake out any flaws. OCD kept me at the seat and staring at the frequency monitor.
 
Sounds broken to me, if it doesn't take available temperature messurements into account.
Why? This is simply a tool to let the user choose the balance between performance / powersaving.

For temperature monitoring, there's thermald, lm_sensors, etc.

With most devices, thermal management is being handled by ACPI / the bios.
 
1.5GHz is likely fine, just need to understand that you may not want to use it for prolong periods. 1Ghz is the typical operating frequency it will go to 1.5GHz on load demand. The Pyra is considerable more powerful than the Pandora, The OMAP5 underclocked at 500Mhz will beat the snot out of a 1GHz Pandora overclocked at 1.2Ghz. So it's not like we're dealing with Pandora speeds here.
I also advise to not charge the GPD Win at the same time while running with a high CPU-Power, as that heats the battery up so that most batteries die after 1 year.
I also advise to not drive a car at full speed, as the fuel it uses increases immensively compared to driving only a few km/h less.
It's up to you to follow that advise, no one forces you.

The OMAP5 uses exponentially more power and produces more heat when going over the speed of 1GHz.
Up until then, power consumption / speed is pretty linear.
That's simply a technical fact for the CPU, not anything we can change.

It can run up to 1.5GHz. What you seem to be forgetting is that all modern ARM CPUs are not meant to run at full power for an extended period of time.
They can handle it for a few minutes but start to throttle then.

If you make sure the device you're using stays cool, you can use the 1.5GHz with full maxed CPU as long as you like.
So for playing games, browsing the web, etc., it shouldn't be a problem, as they rarely max out the CPU all the time, they usually only have some CPU peaks, and they won't heat up the system a lot.

There's one major issue though:
In case a heated up system causes the battery to malfunction and get on fire, I am personally responsible for that.
If a house burns down, I have to pay for it. If a person dies, I will be held responsible.

So of COURSE I need to make sure that doesn't happen. There needs to be a proper throttle mechanism in there that throttles the system in order to prevent overheating.

That doesn't mean you can't use the 1.5GHz. But I need to make sure the temperature stays low enough to not cause any damage.
It's the same for almost any modern device out there, it's just that no one tells you that :)

Every single smartphone I ever had started to throttle if I ran games that maxed out the CPU and heated up the system. That's normal. The CPUs still have such high rating.
That is a normal fact these days, and of course, we are no exception.

It's OpenSource, you can disable the temperature throttling. But if it burns down your house, that will be your own responsibility then, as you disabled the safety measure.
That's some great info ED! Not ideal but it all makes sense. Essentially if a user wanted to push the limits, there are means to do so.
 
Hi all :)

My Pyra can get quite "warm" to the touch after a little while, even when idle.

To get some hard facts I just went ahead and installed mate-sensors-applet.

I'm only displaying the values of two sensors: "temp1" and "temp ambient".

Currently they read 22°C and 45°C, respectively.

Are such temperatures to be expected ?

Cheers, Magic Sam
 
I'm only displaying the values of two sensors: "temp1" and "temp ambient".

Currently they read 22°C and 45°C, respectively.

Are such temperatures to be expected ?

Cheers, Magic Sam
"temp1" is the battery thermistor "normal" status and is not really "22C". If the battery is too cold (<-5C) then temp1=-10C. If the battery is too hot (>40C) then temp1=60C. The thermistor in the battery is connected to the BQ24297 battery management chip and temp1 comes from the fault states of that chip. The cold and hot thresholds are set by resistors on the motherboard. An actual battery temperature is not calculated anywhere at present.
The temp1 value comes from /sys/class/power_supply/bq24297/temp divided by 10.

The "temp ambient" is actually the temperature of another chip on the motherboard, the BQ27421 battery monitoring chip, which also records charge current and voltages. This is the true temperature of the motherboard.
The "temp ambient" value comes from /sys/class/power_supply/bq27421-0/temp divided by 10.

You can get the CPU temperatures using /usr/share/pyra/scripts/letux/temperatures
This gives:
Code:
me@pyra:/sys/class/thermal/thermal_zone0$ temperatures
Fri 21 May 20:06:56 BST 2021 52° 53° 53° 37° 3575mV 1500MHz
That is Time, CPU, GPU, Core, Motherboard; VSYS.
Although the 37C is referred to as "battery" in the script, it is in much better thermal contact with the motherboard / CPU than the battery.

This confused me for a while too!
 
Back
Top