How to enable Unlimited Performance on ODROID-H3
Introduction
Starting with the Core 10th generation INTEL introduced Power Limit 4 (PL4) and made it user configurable via the BIOS. What is it? PL4 is the SoC's maximum power limit at the package level. No matter what the CPU is actually doing, it will not pass this limit. The interesting side of the story is that as a user you can set it to 0, which means no limit.
The ODROID-H3 and H3+ BIOS allows you to set this limit to 0. This is what we call Unlimited Performance mode. The default value is 30,000 corresponding to the Balanced mode. As of this writing we are still not sure what the value stands for. However we know that 0 means no limit and we know that 48,000 is the operative max value. Anything above will act like 0 or 48,000.
Using the Unlimited Performance mode (annotated 'up) with the H3 and H3+ enables the CPU to turbo boost indefinitely: 2.6 GHz all cores and 2.9 GHz one core for the H3 , 2.8 GHz all cores and 3.3 GHz one core for the H3. This results in a significant increase in performance, especially for the H3+. You can see the effect in the benchmarks we included above. In a few cases the H3’up can reach and pass double performance for the same task compared to the H2+.
As you may expect the CPU will get hot quickly (in a matter of minutes) and get close to his T Junction (Tj) temperature which will trigger its emergency shutdown as thermal protection. But the CPU will not reach Tj because it will automatically throttle down when it is about 5 degrees Celsius away from Tj (we tested this multiple times). As soon as the CPU thermally throttles down you start losing the increased performance you were aiming at while still consuming more power compared to the Balanced mode. Not ideal.
In order to prevent thermal throttling when using the Unlimited Performance mode, the solution is simple: active cooling with a fan.
We designed the H3/H3+ heat sink to make it very efficient: (a) you do not need a fan in Balanced mode (b) it has a high rate of thermal exchange when coupled with a fan.
Using a fan will decrease the maximal CPU temperature by about 25 to 30 degrees Celsius depending on factors such as the ambient temperature. It it difficult for us to give you precise temperature values because what one witnesses depends on many factors: as already mentioned the ambient temperature, the CPU BGA soldering thickness error, the heat sink assembly tolerance, the type of thermal paste and quantity applied, the cooling fan speed RPM error margin (which can be as high as 5 to 10%). All of these factors can result in a 10+ degrees Celsius difference between one setting and another.
The important point is that with active cooling you get the increased performance you aim at while the CPU stays just comfortably warm while turbo boosting indefinitely, way below temperatures close to Tj. In other words the fan active cooling brings you the best of both worlds. This is what we witnessed and validated while performing many tests in different locations.
Last point: in Unlimited Performance mode, the CPU (and the fan) use more power than they do in Balanced mode, easily reaching 20+ Watts. However this happens only when the CPU is indeed turbo boosting. When idle, the system will use the same power as in Balanced mode. If your goal is to minimize energy consumption, use Balanced mode. If your goal is to maximize performance use Unlimited Performance mode and again use active cooling with a fan to avoid the CPU to be constantly throttling down.
First of all, you should enter the BIOS to enable the ODROID-H3's Unlimited Performance mode.
Entering the BIOS
1. Power off your ODROID-H3.
2. Press the Power button on your ODROID-H3, then Press “DEL” key while booting. You will get access to the BIOS screen shown below.
INSERT SCREEN SHOT HERE
TO BE EDITED: The PL4 value is 30000 by default. Note that the actual internal value is 10000(10Watt) while the displayed value is 30000(30Watt). If you change the value to 0 or 48000, the actual power limit value will be 16Watt which is the maximum power to sustain the burst clock frequency 3.3Ghz of the ODROID-H3+. We will fix the cosmetic issue in a future BIOS update to be released.
So the value one enters is 3 x times the actual wattage the boards uses.
30,000 → 10W 48,000 → 16W
Other example would:
37500 → 12.5W
I guess they use the 3 x times mechanism to allow setting PL4 with a decimal part while using an integer for data entry.
which means one could force the CPU to slow down by entering:
15,000 → 5W
Yes?
If we set the value to 15000(5Watt), the maximum CPU clock frequency was only 2.1~2.3Ghz. The actual system power consumption was around 6~7Watt due to DRAM, NVMe, Ethernet, USB, Video output and other minor things. But we need more researches the PL4 vs the max clock ratio was not clearly linear.
We will check the whole system power consumption, SoC temperature and max clock freq with the following numbers to double check. - 9000 (3Watt) - 15000 (5Watt) - 21000 (7Watt) - 30000 (10Watt) –> default value - 48000 (16Watt) - 0 (16Watt)
We've tested it. Refer to the following table. When I looked at the test result, it was judged that the error displayed as a triple value actually exists. In the stress-ng test, the power limit of 5 watts (15000) limits the sustained CPU clock to 800Mhz and the temperature was around 30 degrees.
PL4 value Sustained Max freq. (multi-thread) System Power consumption (**) CPU temperature with a cooling fan (50% duty) 9000(3W) 0.4Ghz 3.9W 26°C 15000(5W) 0.8Ghz 5.9W 30°C 21000(7W) 2Ghz 10.0W 37°C 30000(10W) 2.6Ghz 13.8W 48°C 48000(16W) 3.3Ghz 21.1W 70°C 0 3.3Ghz 21.6W 71°C
Some chips are saturated even when the PL4 value is set to 45000(15W). Other chips are saturated when the PL4 value is about 48000(16W), and other chips are saturated when the PL4 value is about 50000(16.6W). This is probably due to the silicon deviation phenomenon, where the power-heating-clock characteristics vary slightly from chip to chip.