search iconsearch icon
Type something to search...

How to Control AMD CPU Temperatures

How to Control AMD CPU Temperatures

0. Motivation

Last year, I bought a Domain LogoGeekom AS6 and I’m really happy with it. It has an integrated GPU (680M) that allows me to play most modern games at 1080p, such as Resident Evil 4 Remake. I bought it since it’s almost identical to the Domain LogoAsus PN53 and that gave me the confidence to buy from what was an unknown brand at the time.

It has been working really well until summer arrived. Due to high temperatures, the CPU was shutting down because of excessive heat.

1. What’s the problem

I have been using Domain LogoOpen Hardware Monitor to track and store multiple data from the computer, such as temperatures, load, and power consumption.

My computer has a Domain LogoRyzen 7 6800H processor, which has a default TDP of 45W but can be set between 35W to 54W. The max temperature is 95ºC.

The problem I had is that under high load in summer, temperatures were too high:

The CPU was around 97 ºC, which is higher than the max 95 ºC. Whenever it reached 100 ºC, the computer automatically turned off to prevent damage.

The CPU load looks low because I was gaming at the time (GPU intensive). GPU load is not tracked nor included in the CPU load, which is why it looks like the computer was close to idle.

2. Regular ways to prevent overheating

Here are the most common ways to prevent overheating.

2.1. Changing TDP on the BIOS

Many computers allow you to lower the Thermal Design Power (TDP) to reduce the CPU’s wattage, helping to prevent overheating.

However, some PCs (such as mine) do not have this option.

2.2. Undervolting

Another method is undervolting the CPU with a tool like Domain LogoMSI Afterburner. It doesn’t work for all computers and can be dangerous.

Undervolting can permanently damage your computer, proceed with caution.

2.3. Dedicated software

Some PCs have dedicated software. For example, for AMD, there is Domain LogoAMD Software: Adrenalin Edition™ Application and Domain LogoAMD Ryzen™ Master Utility for Overclocking Control. However, I couldn’t change the TDP on my computer with either of these tools.

3. Using RyzenAdj

After having no luck with the previous methods, I discovered Domain LogoRyzenAdj, which allows you to configure multiple settings for your AMD Ryzen CPU.

3.1. Check current setup

First, download RyzenAdj to a folder (like C:\AMD). Then, check the current setup with:

ryzenadj.exe -i

Must be run as an Administrator.

You will see information like this:

NameValueLimitParameter
STAPM8.035.0stapm-limit
PPT FAST14.865.0fast-limit
PPT SLOW8.354.0slow-limit
StapmTimeConstnanstapm-time
SlowPPTTimeConstnanslow-time
PPT APU0.054.0apu-slow-limit
TDC VDD5.755.0vrm-current
TDC SOC2.215.0vrmsoc-current
EDC VDD70.4130.0vrmmax-current
EDC SOC0.120.0vrmsocmax-current
THM CORE53.098.0tctl-temp
STT APU0.00.0apu-skin-temp
STT dGPU0.00.0dgpu-skin-temp
CCLK Boost SETPOINTnanpower-saving /
CCLK BUSY VALUEnanmax-performance

I pivoted the table so that it’s easier to read.

3.2. What to change with RyzenAdj

There are multiple ways to prevent overheating. In my case, I want to change:

  • STAPM Limit (--stapm-limit=40000): Manages the long-term average power consumption of the CPU based on thermal conditions to prevent overheating and ensure thermal comfort.
  • Fast Limit (--fast-limit=45000): Controls the maximum power the CPU can draw during short bursts of high performance, allowing the CPU to handle intensive tasks more efficiently.
  • Slow Limit (--slow-limit=40000): Sets the maximum sustained power the CPU can draw over longer periods, ensuring that the CPU does not overheat during prolonged use and maintains system stability.
  • Thermal Control Temperature (--tctl-temp=90): Sets the maximum allowable temperature for the CPU cores to prevent the CPU from reaching high temperatures, reducing thermal throttling, prolonging the lifespan of the CPU, and ensuring the system remains cool and stable.

After tracking temperatures and CPU usage, I settled for:

NameLimitParameter
STAPM40.0stapm-limit
PPT FAST45.0fast-limit
PPT SLOW40.0slow-limit
THM CORE90.0tctl-temp

3.3. Limit TDP and Temperature

To apply the changes, simply run:

ryzenadj.exe --stapm-limit=40000 --fast-limit=45000 --slow-limit=40000 --tctl-temp=90 -i

Then validate that the limits are properly set up:

NameValueLimitParameter
STAPM8.040.0stapm-limit
PPT FAST14.845.0fast-limit
PPT SLOW8.340.0slow-limit
THM CORE53.090.0tctl-temp

4. Stress testing

Once you have changed the limits, you should test that your computer does not overheat. You can do this with Domain Logo3D Mark or Domain LogoAIDA64 (among others). To ensure your computer doesn’t overheat, I suggest running a CPU and GPU test simultaneously.

Here are my results:

You can see that the TDP remains at 40 W and that the temperature never reaches the danger zone (above 95 ºC).

5. Limit TDP at start up

Unfortunately, the changes made by ryzenadj.exe will only work for the current session. Once you restart your PC, you will need to apply them again.

5.1. Create Scheduled Task

To automatically apply them at start up, you can create a Scheduled Task.

To do so:

  1. Open Task Scheduler:
    • Press Win + S and type Task Scheduler, then press Enter.
  2. Create a New Task:
    • In the Task Scheduler window, click on Create Task in the right-hand pane.
  3. General Tab:
    • Name your task (e.g., Set AMD TDP Limits).
    • Under Security options, select Run whether user is logged on or not.
    • Check Run with highest privileges.
  4. Triggers Tab:
    • Click New... to create a new trigger.
    • Choose At startup from the Begin the task dropdown.
    • Click OK.
  5. Actions Tab:
    • Click New... to create a new action.
    • For Action, select Start a program.
    • In the Program/script field, enter the path to ryzenadj.exe. If it’s not in a standard location, you might need to use the full path.
    • In the Add arguments (optional) field, enter the arguments for the command: --stapm-limit=40000 --fast-limit=45000 --slow-limit=40000 --tctl-temp=90
    • Click OK.
  6. Conditions Tab:
    • Adjust any conditions if necessary, but it’s usually fine to leave them as default.
  7. Settings Tab:
    • Ensure Allow task to be run on demand is checked.
    • Optionally, you can adjust other settings to suit your needs.
  8. Save the Task:
    • Click OK.
    • You may be prompted to enter your administrator password to create the task.

5.2. Verify Scheduled Task

To ensure the task works correctly, restart your computer and validate that the limits are correctly applied with:

ryzenadj.exe -i

If you encounter any issues, you can manually run the task:

  1. Go back to the Task Scheduler and find your newly created task.
  2. Right-click the task and select “Run” to test if it works as expected.
  3. Ensure that the TDP limits are applied correctly.