Nazo
2[H]4U
- Joined
- Apr 2, 2002
- Messages
- 3,643
So let me preface this for the thread skimmers with the fact that I already know this has a lot of potential major disadvantages including the fact that a card could be effectively rendered bricked if one really really screwed up. I'd like to not spend a week arguing with someone explaining why everything I do is wrong and instead try to focus on if this can be done and how someone like myself might theoretically actually do it. I will not be recommending that any friends or family members use this and, in fact, would specifically recommend against it to most.
First, I'd like to provide a slight bit of background. I recently got a Ryzen 5600X and was pretty disappointed by its heat production. After reading a bunch of threads where the best scenario is generally given as to use PBO to adjust the voltage curve down a bit but still not getting it low enough I felt satisfied, I tried a trick I used with my old 2600 a while back of setting an all core frequency override. (In the case of the 2600 that meant a loss of the full boost capabilities of the best core, but all the other cores were going faster and I definitely saw a very positive performance benefit in a lot of games and such when I did this.) In this case I was actually going down though. Instead of the 4.6GHz it's capable of, I ended up on 4.3GHz with voltage lowered down to 1.10625 and incredible temperatures. I get the theory of "race to idle" but it only applies when "idle" actually has meaning and in actual practice with the way I use my CPU this actually works exceptionally well. I think the concept of "race to idle" fails when a true idle condition isn't the actual way one uses the device. My CPU no longer deals with scheduling stuff or anything like that and I've set it to a point below where the voltage requirements ramp up quickly (I never fully tested 4.6, but it's probably at least 1.3V -- probably 1.35 -- which is not far below stock anyway) so, along with the lower voltage I've set it actually runs quite a lot cooler than it ever did on stock, yet in a lot of things ultimately performs better (thermal throttling initially was dropping the CPU on all stock settings below 4.2GHz when under really heavy usage. I've since changed the heatsink, but this still would have produced a much better result on stock.) This actually has the really cool side effect of greatly reducing thermal cycling on this chip since the voltage is fixed. (It still heats up faster than a hair dryer under really heavy usage, but the temperature does go up slower than it did before, it goes to a lower max value, and then it goes back down much much slower after to a minimum that is really only a bit higher than the stock minimum.)
Actually, I just want to say that with modern devices I'm beginning to think we need to retire the word "overclocking" and instead use something else ("overspeccing" I guess?) because there's more and more of this sort of thing these days (my favorite being that we still call raising the CPU/GPU above the stock underclocking on devices like the Nintendo Switch closer to the actual official chip specifications themselves "overclocking" even though we're really just reducing or disabling the underclocking and not actually going over the original maximums.)
Anyway, I would like to do this with my videocard. I'd like to see no more scheduling, but also I'd like to actually change the clocks and voltages to reduce each a bit so it runs generally cooler. (Yes I'll lose maximum performance. I don't think any game has used more than ~60% of my card anyway though. Especially since I play in 1080p.) Well, I'd like it best if it could at least still have 2D and 3D modes where it goes way down when not being used if that is theoretically possible. To some extent I get a bit of what I want by setting the video drivers to high performance. However, the moment the GPU goes into 3D mode, it no longer can scale down with this set, so sits at a really high temperature just idling at <=1% GPU usage. It also seems to be nonresponsive about disabling high performance mode and stays there until I reboot apparently. (Don't know if this is a bug in the current official drivers or what, but it seems unlikely they'd miss something this big, so I assume it's just how the card itself handles things or something.) If I combine high performance in that with a frequency+voltage curve lowering in something like MSI Afterburner (which seems to work with my Zotac card) it somewhat gets where I want. But this is super messy and I don't like relying on software solutions for these things. (Such software can break with updates -- sometimes even including OS or driver updates rather than the software itself -- gets bloated, is Windows only, etc etc. I'm hoping we can not argue about this, but I suppose if it must happen I'd appreciate if it didn't go on for days, thanks.) For my CPU this was a complete non-issue -- I just set the frequency and voltage in the BIOS and boom, done. (If anything it's actually 100x easier than messing with curve adjustments.)
What I'd truly like to see is something that could write some sort of override to the GPU's own firmware (yeah, I realize the risk factor in this as stated in the first of this post) so it works completely independently of everything. Preferably something that can override the curve to fixed values for actual gaming but would still allow it to drop down when idle (since it doesn't handle an idle or near idle state at full clock/voltage as well as my CPU apparently does.) I know this has actually been done in the past for videocards. I even used one once back in the days when I did my most overclocking (quite a number of years ago I admit) to manually unlock cores and adjust voltages and clocks on one of my videocards. (At the time I was going up, not down, so it did eventually die but did quite well for quite a long time before it finally did.) Of course, that was a long time ago -- in fact, there weren't even software options for things like voltage adjustments at the time. It's likely no one makes anything quite so convenient today. But something like hex editing a backup of my card's firmware is also basically beyond me. Is such a thing reasonably possible to those of us incapable of basically outright hacking such a thing?
First, I'd like to provide a slight bit of background. I recently got a Ryzen 5600X and was pretty disappointed by its heat production. After reading a bunch of threads where the best scenario is generally given as to use PBO to adjust the voltage curve down a bit but still not getting it low enough I felt satisfied, I tried a trick I used with my old 2600 a while back of setting an all core frequency override. (In the case of the 2600 that meant a loss of the full boost capabilities of the best core, but all the other cores were going faster and I definitely saw a very positive performance benefit in a lot of games and such when I did this.) In this case I was actually going down though. Instead of the 4.6GHz it's capable of, I ended up on 4.3GHz with voltage lowered down to 1.10625 and incredible temperatures. I get the theory of "race to idle" but it only applies when "idle" actually has meaning and in actual practice with the way I use my CPU this actually works exceptionally well. I think the concept of "race to idle" fails when a true idle condition isn't the actual way one uses the device. My CPU no longer deals with scheduling stuff or anything like that and I've set it to a point below where the voltage requirements ramp up quickly (I never fully tested 4.6, but it's probably at least 1.3V -- probably 1.35 -- which is not far below stock anyway) so, along with the lower voltage I've set it actually runs quite a lot cooler than it ever did on stock, yet in a lot of things ultimately performs better (thermal throttling initially was dropping the CPU on all stock settings below 4.2GHz when under really heavy usage. I've since changed the heatsink, but this still would have produced a much better result on stock.) This actually has the really cool side effect of greatly reducing thermal cycling on this chip since the voltage is fixed. (It still heats up faster than a hair dryer under really heavy usage, but the temperature does go up slower than it did before, it goes to a lower max value, and then it goes back down much much slower after to a minimum that is really only a bit higher than the stock minimum.)
Actually, I just want to say that with modern devices I'm beginning to think we need to retire the word "overclocking" and instead use something else ("overspeccing" I guess?) because there's more and more of this sort of thing these days (my favorite being that we still call raising the CPU/GPU above the stock underclocking on devices like the Nintendo Switch closer to the actual official chip specifications themselves "overclocking" even though we're really just reducing or disabling the underclocking and not actually going over the original maximums.)
Anyway, I would like to do this with my videocard. I'd like to see no more scheduling, but also I'd like to actually change the clocks and voltages to reduce each a bit so it runs generally cooler. (Yes I'll lose maximum performance. I don't think any game has used more than ~60% of my card anyway though. Especially since I play in 1080p.) Well, I'd like it best if it could at least still have 2D and 3D modes where it goes way down when not being used if that is theoretically possible. To some extent I get a bit of what I want by setting the video drivers to high performance. However, the moment the GPU goes into 3D mode, it no longer can scale down with this set, so sits at a really high temperature just idling at <=1% GPU usage. It also seems to be nonresponsive about disabling high performance mode and stays there until I reboot apparently. (Don't know if this is a bug in the current official drivers or what, but it seems unlikely they'd miss something this big, so I assume it's just how the card itself handles things or something.) If I combine high performance in that with a frequency+voltage curve lowering in something like MSI Afterburner (which seems to work with my Zotac card) it somewhat gets where I want. But this is super messy and I don't like relying on software solutions for these things. (Such software can break with updates -- sometimes even including OS or driver updates rather than the software itself -- gets bloated, is Windows only, etc etc. I'm hoping we can not argue about this, but I suppose if it must happen I'd appreciate if it didn't go on for days, thanks.) For my CPU this was a complete non-issue -- I just set the frequency and voltage in the BIOS and boom, done. (If anything it's actually 100x easier than messing with curve adjustments.)
What I'd truly like to see is something that could write some sort of override to the GPU's own firmware (yeah, I realize the risk factor in this as stated in the first of this post) so it works completely independently of everything. Preferably something that can override the curve to fixed values for actual gaming but would still allow it to drop down when idle (since it doesn't handle an idle or near idle state at full clock/voltage as well as my CPU apparently does.) I know this has actually been done in the past for videocards. I even used one once back in the days when I did my most overclocking (quite a number of years ago I admit) to manually unlock cores and adjust voltages and clocks on one of my videocards. (At the time I was going up, not down, so it did eventually die but did quite well for quite a long time before it finally did.) Of course, that was a long time ago -- in fact, there weren't even software options for things like voltage adjustments at the time. It's likely no one makes anything quite so convenient today. But something like hex editing a backup of my card's firmware is also basically beyond me. Is such a thing reasonably possible to those of us incapable of basically outright hacking such a thing?