[Experimental] AutoTDP #2163
Replies: 11 comments 79 replies
-
Hi @IceStormNG First of all, congratulations for this great Job and this perfect integration into Ghelper. 💯 👍 On the other hand, in my opinion, the AutoTDP button would have its place under CPU mode and not under GPU mode. I just tested AutoTDP on my CPU 12700H
Result : To complete :
|
Beta Was this translation helpful? Give feedback.
-
No I don't use other software to limit the CPU. :) I tried ASUS ACPI. Ghelper blocks on |
Beta Was this translation helpful? Give feedback.
-
My laptop is Zephyrus M16 GU603HM, CPU is 11800H. RTSS and MSI Afterburner are already installed. |
Beta Was this translation helpful? Give feedback.
-
download link is dead |
Beta Was this translation helpful? Give feedback.
-
When the "Enabled" option is unchecked within a game profile, it creates a duplicate profile that shares the same settings as the original one. Moreover, this duplicate profile updates automatically when changes are made to either profile. |
Beta Was this translation helpful? Give feedback.
-
Very interesting idea. Currently, I always used custom ThrottleStop configurations with my 'hand-crafted' settings that would sustain target CPU clock speeds like 4.0GHz at the maximum possible undervolt (like 0.95 - 1V @ 4.0GHz static) and used my own tool to switch between these ThrottleStop configurations after workload changes. This would result in best possible performance and lowest possible thermals at that specific CPU clock frequency. Basically, what V/F curve does in a nutshell, but my i7-10875H doesn't support that even though Comet Lake architecture was the first one that introduced it... Anyways, I'll give this one a try and see how it performs. I expect big power consumption reduction gains until something that needs immediate processing happens - then it'll power throttle and turn performance into absolute shit :D It will depend on how fast it's able to adjust itself back to stuff, in other words, latency is key. |
Beta Was this translation helpful? Give feedback.
-
Hello, my computer model is Rog strix SCAR 18. When using the latest version 0.170.0, I am unable to see the AutoTDP. But when using the GHelper_autotdp_2024_03_06_2 version, I can see the Auto option.You said that this version changed the RTSS installation directory check to registry check.But my RTSS installation is the default directory.What is the default installation directory for RTSS? Why can't I display the auto option when using the latest version_(0.170.0)? Thank you |
Beta Was this translation helpful? Give feedback.
-
Will this function be integrated in the main ghelper update? |
Beta Was this translation helpful? Give feedback.
-
Hey man. Uh... Are you ever going to update this experimental build or do I have to wait for it to be integrated into the main branch? |
Beta Was this translation helpful? Give feedback.
-
Bro is time to update the build |
Beta Was this translation helpful? Give feedback.
-
I don't know why. I tried this feature but it crush app on my laptop easily. |
Beta Was this translation helpful? Give feedback.
-
I've implemented a variant of AutoTDP for the CPU. Right now it works with Intel CPUs directly (requires the Winring0 drivers), and all ASUS laptops through the ASUS driver.
This discussion here is for testing out and getting feedback on it. Further below you can find additional info about what it is and how to configure it and when not to use it. You're welcome to test it and leave feedback here.
This is the current testing build.
I highly recommend to read the text below and especially the README section.
To not spam the main log, AutoTDP logs its actions into a separate auto_tdp_log.txt file. Game profiles are stored in the file AutoTDP.json and therefore separate from your main config.
I did some testing and it works pretty well with most games. Some games, like Fallout 4 will have quite jittery frametimes on the graph, but you do not really notice that, given that FO4 runs like crap either way.
Some games like Civilization however see greatly increased turn times because the game depends on CPU in a way that it does not impact framerate, which is not very common. For games like this you might want to increase the minimum TDP to not power starve the CPU.
The default values are 15W - 40W and are based on my CPU, a 13900H. They will work fine with most CPUs, however on some CPUs, especially the more power efficient AMD ones and less demanding games, you can decrease the minimum TDP to save some extra power. Some games might need increased minimum power. You can also reduce the max tdp if you want to limit how your CPU can boost in spikes.
Changes to this can be made while the game is running and will be applied live and immediately.
README
To work, RTSS (Riva Tuner Statistics Server) is required! If you don't have it, the feature will not be available to you.
If you have MSI Afterburner installed, you should already have RTSS installed. Afterburner and GHelper AutoTDP can run at the same time without issues (so you can have the overlay from Afterburner and let AutoTDP do the magic).
Otherwise, you can install it from https://www.guru3d.com/download/rtss-rivatuner-statistics-server-download/
This also means, that all games, which RTSS cannot hook, won't work. Those are rare though.
This feature is currently disabled on the ROG Ally... as there will be a special implementation for it at some point.
If your system meets all requirements, the AutoTDP button will show up below the performance mode buttons.
This is an advanced feature for people that have some knowledge about this. If you don't know what "TDP" is or how to figure out how much power your CPU currently draws, then it might be the best to not touch it. It won't damage your computer and also not make it run hotter, but wrong values can and will cause lower game performance.
Important: The AutoTDP system will restore your power limits after the game is stopped or when you exist GHelper. However, if GHelper crashes or you kill it via Taskmanager, it will not do that (because it can't) and you have to reset the values manually in GHelper (by changing the power mode once). In worst case you have to reboot your computer.
What is it?
First of all, this is NOT a framerate limiter. Instead, you should set a framelimiter for the games you want to use it for in your GPU driver, either Nvidia Control Panel or AMD Radeon Software.
Modern GPU drivers already have a AutoTDP like feature for their GPUs if you configure a framelimiter in the driver compared to using an external framelimiter or the one integrated into the game.
So, what is it then?
It's an algorithm that constantly adjusts your CPU's power limits to be just as high as needed to run your game at the intended framerate. Especially on Intel CPUs, this can cut the CPU power usage down significantly, depending on CPU and game.
This will allow you to run the game at very similar performance but with less heat and less power draw.
This is great if you want to game on battery, or want to reduce fan noise or are stuck with a USB-C charger that can not fully power your device.
This is not intended for games where you need/want the absolute best performance, like competitive games. Also don't use it if you stream your game as the reduction in TDP will cause your streaming software to lag.
Do not use this feature and complain that your game is sometimes dropping FPS. This is unavoidable, though if the game runs well otherwise, it shouldn't be that noticeable most of the time.
Some games with invasive anti-cheat, such as vanguard (Valorant) will not like the Ring0 driver and maybe even dislike RTSS hooking the game. In this case the anti-cheat will unload the driver which could cause GHelper to crash.
How to set it up
If you click on the AutoTDP button, a new windows will open which allows you to configure it.
The first drop downs allow you to do some general configuration, like what method to use to limit CPU power or what way to use to get the game's framerate. Right now, only RTSS can be used as source.
If enabled, it will still do nothing yet. You have to add the games that you want to use it for. It will not engage for any other application.
Click on the "Add Game" button and select the .exe file of your game that you want to use AutoTDP for. Keep in mind that some games have different exe, for example for dx12 or vulkan, or one is a launcher and the other the game (Fallout 4 does that). Make sure to use the one that is running your game.
Afterwards you can configure the settings for the game.
Select the same framerate, as the one that you configured your framerate limiter to. Btw: if you use this feature without a framelimiter, it will still work and will try to cut power to the CPU, trying to limit the game's framerate. However, this is not going to be smooth, so you really should set up a framelimiter.
The min and max TDP settings define the range that AutoTDP is allowed to adjust in. It will never exceed those values.
If you know how your CPU behaves, you can find those values rather quickly. Otherwise, you might have to experiment with it a bit. An overlay like Afterburner can be of help here to check how much power your CPU is consuming to get an idea of what is a useful range.
Won't this cause stuttering?
Yes and no. There will be some slight framedrops when CPU load increases suddenly or when the algorithm tries to find the lowest stable power levels. Loading times can also be slower than usual. This heavily depends on the game though. Some games work without big issues, some will have performance issues. You can resolve those by increasing the min TDP by a few watts.
Again: if you play competitive games with super high framerates and need the best possible performance, do not configure AutoTDP for those games. You can still do if you wish and we won't stop you, but your right to complain is gone.
Testing
For those that are curious, I will list some values here for a few games that I currently test with AutoTDP. My CPU is a 13900H
Sniper Elite 5 will usually run at 40-50W CPU power draw. This already includes limiting the CPU frequency, otherwise it would easily go beyond 50W... for nothing. With AutoTDP, I can get it down to 17-22W depending on map and whether there are a lot of enemies around. This is with a target framerate of 80FPS.
Anno 1800. Now, this game is very CPU and memory heavy, and it will stutter no matter how strong your PC is because it is super heavy. Especially if you have lots of islands and hundreds of shipping routes. I usually cap this game to 60 either way. Without autotdp, and no frequency limitation, it will sit at 60W. With AutoTDP, it usually sits at 18-25W at normal speed. And around 25-32W if game speed is increased. This is with a late-game savefile, with all regions unlocked and more shipping routes than are good for the ocean.
Genshin Impact. This game is not that heavy, but badly optimized and has loading stutters for no reason. Especially since the recent updates. TDP can be dropped from 25-30W down to 18-25W, depending on region. Fontain City and Sumeru are quite taxing.
Shadow of the Tomb Raider. Target framerate is 100FPS here. CPU runs at around 40-50W if unrestrained. With AutoTDP it can be lowered to around 19-25W.
Fallout 4, with 100s of gigabytes of mods loaded. Well, anyone who plays this games knows that it always runs like trash. But you can get power from 35-45W down to 20-25W. And this is downtown boston where the game runs the worst.
The Division 2 can be reduced from 50W down to 20-25W. Though, the game does some weird stuff and doesn't like it if you pull the TDP too low. That's why I set 20W as minimum even though it could go to 16W in some regions, but this causes constant microstutters. Target FPS is 80.
Most of the JRPGs like WitchSpringR or Neptunia run easily with 10-13W instead of 20-25W at 120FPS. Though, they're also not really taxing.
Beta Was this translation helpful? Give feedback.
All reactions