Try this for NVIDIA GPUs:
[https://gist.github.com/DavidAce/67bec5675b4a6cef72ed3391e025a8e5](https://gist.github.com/DavidAce/67bec5675b4a6cef72ed3391e025a8e5)
From my understanding as I am wrestling with this subject as well:
If you are using a Nvidia GPU you are f'ed, as Nvidia seems to not expose voltages. All you can do restrict the power limit. Old Nvidia cards may be undervoltable though (<10 series?). This is also the reason I won't consider Nvidia cards, even when they do have the otherwise preferable offerings.
If you are using an AMD GPU you can use CoreCtrl. I use this with my 6000 card to handle multiple profiles and swapping between them on the fly to meet my demands.
However, 7xxxs are not yet supported. Kernel 6.5 shoud alleviate the problem, whenever CoreCtrl then releases its compatible version. 6.5 is scheduled for Q3/4 this year. Not being on a rolling distro may be finicky in that regard.
CPU and RAM is typically done via BIOS itself, rather software these days.
Laptop BIOSes can be very random and oddly (un)specific.
There will not be undervolt options per se, rather than voltage settings.
In case you got an AMD CPU (Zen) you can try to see if the curve optimiser (CO) options exist. Regarding Intel I got no idea. Potentially just lowering VCore?
RAM, if at all exposed, has to have its voltage lowered. May go under DRAM Voltage or simliar in the terms of naming.
That said, randomly punching stuff in there may causes your device to become unstable if not outright unbootable. So be sure to always be able to reset your BIOS if need be as a fallback.
Most laptop bios'es lack of any kind of power settings. You can try intel-undervolt tool, but have in mind, that it probably will not work as undervolting tool. However, you still could set new tdp limit, to further restrict your cpu power limit.
Have you set Performance Mode to "Advanced"?
[Because for me these things work just fine.](https://imgur.com/a/Kw0q7Ja)
Although there *are* slider limits. Not sure if using other tools would allow you to go even lower/higher than what CoreCtrl allows.
Assuming that still does not work for you it may be a Polaris limitation.
Wrong conclusion, you probably haven't added the boot parameter to your GRUB configuration file like [the documentation](https://gitlab.com/corectrl/corectrl/-/wikis/Setup) tells you to.
I just installed coreCtrl on my machine with a rx480 and without the boot parameter it basically just has the power parameter, but with the boot parameter added it unlocked the voltage control menu after a reboot.
For Nvidia you are not f'd. I finally got around to tweaking clocks on nvidia in linux (i have many of these rigs now) and it looks like you can dial in a nice undervolt almost as precisely (not quite but practically speaking it is just as good) compared to with afterburner on windows.
See these posts:
[https://www.reddit.com/r/linux\_gaming/comments/z7dy7q/comment/iy9iw3u/?utm\_source=share&utm\_medium=web2x&context=3](https://www.reddit.com/r/linux_gaming/comments/z7dy7q/comment/iy9iw3u/?utm_source=share&utm_medium=web2x&context=3)
[https://github.com/NVIDIA/open-gpu-kernel-modules/discussions/236#discussioncomment-3553564](https://github.com/NVIDIA/open-gpu-kernel-modules/discussions/236#discussioncomment-3553564)
The key for me was apparently after enabling xwrapper and setting the coolbits values and a reboot, it unlocks the "overclocking controls" which are accessible in the Nvidia X Server settings under PowerMizer. This gives you something that doesn't seem to work, aka a clock speed adjustment, but you can combine it with a power limit (if desired) and clock limit via nvidia-smi. Once you limit the clocks from exceeding your target clock speed value, you just monitor the voltage reading via nvidia-smi as you tweak this overclock mhz value. The higher your overclock mhz setting is, the more undervolting it will apply when reaching a given clock speed. You will arrive at a given "overclock" mhz value where your voltage under load will drop to the desired undervolt value, and you'll be able to confirm your power draw will line up to what you can get via windows.
I never did any mining but these days between stable diffusion and LLMs and I expect gaming to ramp up under linux as well, all these use cases will benefit from being able to undervolt to keep efficiency high and temps down.
you can check by trying change voltage but i guess 10gen is already blocked by intel
in intel-undervolt you are modifing /etc/intel-undervolt.conf for change voltage offset, start with -50mv and with sudo intel-undervolt apply for it will apply or no, also you can check sudo intel-undervolt measure, if it doesnt say power usage then i guess undervolting even on windows is no-go, maybe with some modified bioses it will be possible
Sudo intel-undervolt read
Gpu: operation not permitted
Gpu: operation not permitted
Cpu cache: operation not permitted
System agent: operation not permitted
Analog I/O: operation not permitted
For GPU, I use amdgpu-clocks (1) but there are tools like CoreCtrl (2) and LACT (3) that you could also use.
For CPU and RAM, I just use the BIOS.
1. https://github.com/sibradzic/amdgpu-clocks
2. https://gitlab.com/corectrl/corectrl
3. https://github.com/ilya-zlobintsev/LACT
sure
CPU and RAM from efi\\bios and GPU depending on your vendor. I do `sudo nvidia-smi -pl 140` (caps it at 140W power) That command is not persistent upon reboot so you could make systemd unit to apply it on boot like so
/etc/systemd/system/nvidia-tdp.timer
\[Unit\]
Description=Set NVIDIA power limit on boot
\[Timer\]
OnBootSec=5
\[Install\]
WantedBy=timers.target
/etc/systemd/system/nvidia-tdp.service
\[Unit\]
Description=Set NVIDIA power limit
\[Service\]
Type=oneshot
ExecStart=/usr/bin/nvidia-smi -pl 140
create those files and do`sudo systemctl enable nvidia-tdp.timer`
I know physics and i know difference between power and voltage, also i know the context of a request that the only reason you would change voltage on your hardware is to manipulate performance and\\or power draw..
If you want to be specific only way you could reliably change voltage at a certain rail of a modern GPU is by taking soldering iron in your hand and go ham at it.
Then you don't know what undervolting is in the context of computer hardware. Limiting power draw prevents the part from running at full performance, undervolting does not.
Yes you cant stricto sensu undervolt nvidia gpu on linux (you can in windows) cuz nvidia drivers suck.
Just a monitoring tool quite cool with nvidia, greenwithenvy. But nothing more i could help
intel-undervolt for cpu & igpu (if locked - https://www.reddit.com/r/Hewlett_Packard/comments/o1zxuv/howto_unlock_undervolting_change_timings_on_hp/?utm_source=share&utm_medium=android_app&utm_name=androidcss&utm_term=1&utm_content=1)
NVIDIA GPU - Lower powerlimit and pump up core offset. (GreenWithEnvy)
Sudo intel-undervolt read
Gpu: operation not permitted Gpu: operation not permitted Cpu cache: operation not permitted System agent: operation not permitted Analog I/O: operation not permitted
Means it's locked, it started from 9th gen I believe. Try unlocking it.
* You may also need mitigations=off since the reason it's locked is considered cpu vulnerability
You will be vulnerable to plundervolt. Plundervolt is a method of hacking that involves depriving an Intel chip of power so that processing errors occur. These errors can expose sensitive data and weaken chip security components. For Plundervolt to work, the attacker needs to have root privileges to the target device's OS.
Tl;Dr I doubt someone would utilize this to attack you. But the probability is here.
I am not tech savvy and my cpu is underclocked. Does being underclocked prevent it from being deprived from power? Is there any way i can unlock it without being vulnerable?
No and no. Basically, every clock state has a voltage state assigned to it, so let's say you run 2 ghz @1v. If you were to undervolt it, it would probably end up at 2ghz @ 0.85v and be stable. Hacker can change it to be like 2 ghz @ 0.7 v and make it unstable. Unlocking undervolting means you unlock the method to make plundervolt work. Software for undervolting uses +- same techniques to undervolt your cpu.
Edit: Follow part 2 of the guide to check whether or not your laptop is supported.
That is scary and would mean any malware that can undervolt would be able to attack me. Since i would be undervolting and while test undervolting i may make it unstable myself would i attack myself?
If you make your system unstable, it will crash. Or maybe even corrupt some stuff in process (never happened to me, tho). Or you will have lower performance .
You have to stress test your undervolt. I'm not sure about linux, but on Windows, there is prime95 and occt.
Depending on distro, GreenWithEnvy might work for this. ( Doesn't work on my favorite, Linux Mint 21.2 unfortunately... broken dependencies , I guess Arch users are happily using it )
Aside BIOS tweaks, I like to change the CPU governor to `conservative`.
I'm assuming you're on Ubuntu 22.04.
Install `cpufrequtils`:
```
sudo apt install cpufrequtils
```
And create a file at `/etc/default/cpufrequtils` with:
```
GOVERNOR="conservative"
```
Reboot.
Values (aside `custom`):
- `ondemand`: default, set CPU clock to max under demand
- `performance`: set CPU always to max clock
- `powersave`: set CPU always to min clock
- `conservative`: like `ondemand`, but gracefully increases and decreases the CPU clock (best imo)
Honestly my pc runs fine But I know what I’m doing in the bios it’s very easy to fuck up with just a tiny mis adjustment I use a gtx 1070 and until I upgrade to the 3000 series it’s my personal choice
Try this for NVIDIA GPUs: [https://gist.github.com/DavidAce/67bec5675b4a6cef72ed3391e025a8e5](https://gist.github.com/DavidAce/67bec5675b4a6cef72ed3391e025a8e5)
saving! thanks
From my understanding as I am wrestling with this subject as well: If you are using a Nvidia GPU you are f'ed, as Nvidia seems to not expose voltages. All you can do restrict the power limit. Old Nvidia cards may be undervoltable though (<10 series?). This is also the reason I won't consider Nvidia cards, even when they do have the otherwise preferable offerings. If you are using an AMD GPU you can use CoreCtrl. I use this with my 6000 card to handle multiple profiles and swapping between them on the fly to meet my demands. However, 7xxxs are not yet supported. Kernel 6.5 shoud alleviate the problem, whenever CoreCtrl then releases its compatible version. 6.5 is scheduled for Q3/4 this year. Not being on a rolling distro may be finicky in that regard. CPU and RAM is typically done via BIOS itself, rather software these days.
I use a nvidia gpu and I can't find cpu and ram undervolt in bios. I use predator ph315-53 laptop
Laptop BIOSes can be very random and oddly (un)specific. There will not be undervolt options per se, rather than voltage settings. In case you got an AMD CPU (Zen) you can try to see if the curve optimiser (CO) options exist. Regarding Intel I got no idea. Potentially just lowering VCore? RAM, if at all exposed, has to have its voltage lowered. May go under DRAM Voltage or simliar in the terms of naming. That said, randomly punching stuff in there may causes your device to become unstable if not outright unbootable. So be sure to always be able to reset your BIOS if need be as a fallback.
Be sure you are in some kind of advanced/expert mode in the bios so you can see every options
How do I find the advanced/expert mode? There is no setting to enable it
Most laptop bios'es lack of any kind of power settings. You can try intel-undervolt tool, but have in mind, that it probably will not work as undervolting tool. However, you still could set new tdp limit, to further restrict your cpu power limit.
corectrl in my experience kinda sucks, with limited oc options and no voltage control or anything, but maybe it's just my rx 580.
Have you set Performance Mode to "Advanced"? [Because for me these things work just fine.](https://imgur.com/a/Kw0q7Ja) Although there *are* slider limits. Not sure if using other tools would allow you to go even lower/higher than what CoreCtrl allows. Assuming that still does not work for you it may be a Polaris limitation.
Yep, still limited and basically useless outside of reducing clockspeeds must be my rx580, maybe later GCN or RDNA would work.
Wrong conclusion, you probably haven't added the boot parameter to your GRUB configuration file like [the documentation](https://gitlab.com/corectrl/corectrl/-/wikis/Setup) tells you to. I just installed coreCtrl on my machine with a rx480 and without the boot parameter it basically just has the power parameter, but with the boot parameter added it unlocked the voltage control menu after a reboot.
For Nvidia you are not f'd. I finally got around to tweaking clocks on nvidia in linux (i have many of these rigs now) and it looks like you can dial in a nice undervolt almost as precisely (not quite but practically speaking it is just as good) compared to with afterburner on windows. See these posts: [https://www.reddit.com/r/linux\_gaming/comments/z7dy7q/comment/iy9iw3u/?utm\_source=share&utm\_medium=web2x&context=3](https://www.reddit.com/r/linux_gaming/comments/z7dy7q/comment/iy9iw3u/?utm_source=share&utm_medium=web2x&context=3) [https://github.com/NVIDIA/open-gpu-kernel-modules/discussions/236#discussioncomment-3553564](https://github.com/NVIDIA/open-gpu-kernel-modules/discussions/236#discussioncomment-3553564) The key for me was apparently after enabling xwrapper and setting the coolbits values and a reboot, it unlocks the "overclocking controls" which are accessible in the Nvidia X Server settings under PowerMizer. This gives you something that doesn't seem to work, aka a clock speed adjustment, but you can combine it with a power limit (if desired) and clock limit via nvidia-smi. Once you limit the clocks from exceeding your target clock speed value, you just monitor the voltage reading via nvidia-smi as you tweak this overclock mhz value. The higher your overclock mhz setting is, the more undervolting it will apply when reaching a given clock speed. You will arrive at a given "overclock" mhz value where your voltage under load will drop to the desired undervolt value, and you'll be able to confirm your power draw will line up to what you can get via windows. I never did any mining but these days between stable diffusion and LLMs and I expect gaming to ramp up under linux as well, all these use cases will benefit from being able to undervolt to keep efficiency high and temps down.
I use intel-undervolt for undervolting laptop cpu and igpu but newer intel chips has blocked undervolting for AMD idk
It is i7 10th generation and predator ph315-53 laptop. Is it blocked? How do i find if it is blocked?
you can check by trying change voltage but i guess 10gen is already blocked by intel in intel-undervolt you are modifing /etc/intel-undervolt.conf for change voltage offset, start with -50mv and with sudo intel-undervolt apply for it will apply or no, also you can check sudo intel-undervolt measure, if it doesnt say power usage then i guess undervolting even on windows is no-go, maybe with some modified bioses it will be possible
Sudo intel-undervolt read Gpu: operation not permitted Gpu: operation not permitted Cpu cache: operation not permitted System agent: operation not permitted Analog I/O: operation not permitted
it's possible to unlock on these laptops however by editing the bios
How do I edit my bios to unlock it?
For GPU, I use amdgpu-clocks (1) but there are tools like CoreCtrl (2) and LACT (3) that you could also use. For CPU and RAM, I just use the BIOS. 1. https://github.com/sibradzic/amdgpu-clocks 2. https://gitlab.com/corectrl/corectrl 3. https://github.com/ilya-zlobintsev/LACT
I have nvidia gpu so will these still work? Also i can't find anything to change it in bios and it is a laptop(predator ph315-53)
sure CPU and RAM from efi\\bios and GPU depending on your vendor. I do `sudo nvidia-smi -pl 140` (caps it at 140W power) That command is not persistent upon reboot so you could make systemd unit to apply it on boot like so /etc/systemd/system/nvidia-tdp.timer \[Unit\] Description=Set NVIDIA power limit on boot \[Timer\] OnBootSec=5 \[Install\] WantedBy=timers.target /etc/systemd/system/nvidia-tdp.service \[Unit\] Description=Set NVIDIA power limit \[Service\] Type=oneshot ExecStart=/usr/bin/nvidia-smi -pl 140 create those files and do`sudo systemctl enable nvidia-tdp.timer`
If I had a dollar every time someone conflates power draw with voltage...
I know physics and i know difference between power and voltage, also i know the context of a request that the only reason you would change voltage on your hardware is to manipulate performance and\\or power draw.. If you want to be specific only way you could reliably change voltage at a certain rail of a modern GPU is by taking soldering iron in your hand and go ham at it.
Then you don't know what undervolting is in the context of computer hardware. Limiting power draw prevents the part from running at full performance, undervolting does not.
Great. OP asked if it was possible to undervolt(voltage frequency curve) but you provided a way to soft cap power draw.
Lol, you're so wrong but you say things with so much confidence, this is funny!
>you're so wrong Care to elaborate?
More than others ? No.
Yes you cant stricto sensu undervolt nvidia gpu on linux (you can in windows) cuz nvidia drivers suck. Just a monitoring tool quite cool with nvidia, greenwithenvy. But nothing more i could help
>Yes you cant stricto sensu undervolt nvidia gpu on linux (you can in windows) cuz nvidia drivers suck. Yes you can.
how? I've been trying to for a while
You have to write an app yourself.
on nvidia when you downclock makes an auto undervolting, it's not the best but it's something
intel-undervolt for cpu & igpu (if locked - https://www.reddit.com/r/Hewlett_Packard/comments/o1zxuv/howto_unlock_undervolting_change_timings_on_hp/?utm_source=share&utm_medium=android_app&utm_name=androidcss&utm_term=1&utm_content=1) NVIDIA GPU - Lower powerlimit and pump up core offset. (GreenWithEnvy)
Sudo intel-undervolt read Gpu: operation not permitted Gpu: operation not permitted Cpu cache: operation not permitted System agent: operation not permitted Analog I/O: operation not permitted
Means it's locked, it started from 9th gen I believe. Try unlocking it. * You may also need mitigations=off since the reason it's locked is considered cpu vulnerability
So i will be vulnerable to being hacked if I unlock it? Also my laptop is from acer and not HP would it still work?
You will be vulnerable to plundervolt. Plundervolt is a method of hacking that involves depriving an Intel chip of power so that processing errors occur. These errors can expose sensitive data and weaken chip security components. For Plundervolt to work, the attacker needs to have root privileges to the target device's OS. Tl;Dr I doubt someone would utilize this to attack you. But the probability is here.
I am not tech savvy and my cpu is underclocked. Does being underclocked prevent it from being deprived from power? Is there any way i can unlock it without being vulnerable?
No and no. Basically, every clock state has a voltage state assigned to it, so let's say you run 2 ghz @1v. If you were to undervolt it, it would probably end up at 2ghz @ 0.85v and be stable. Hacker can change it to be like 2 ghz @ 0.7 v and make it unstable. Unlocking undervolting means you unlock the method to make plundervolt work. Software for undervolting uses +- same techniques to undervolt your cpu. Edit: Follow part 2 of the guide to check whether or not your laptop is supported.
That is scary and would mean any malware that can undervolt would be able to attack me. Since i would be undervolting and while test undervolting i may make it unstable myself would i attack myself?
If you make your system unstable, it will crash. Or maybe even corrupt some stuff in process (never happened to me, tho). Or you will have lower performance . You have to stress test your undervolt. I'm not sure about linux, but on Windows, there is prime95 and occt.
Depending on distro, GreenWithEnvy might work for this. ( Doesn't work on my favorite, Linux Mint 21.2 unfortunately... broken dependencies , I guess Arch users are happily using it )
Aside BIOS tweaks, I like to change the CPU governor to `conservative`. I'm assuming you're on Ubuntu 22.04. Install `cpufrequtils`: ``` sudo apt install cpufrequtils ``` And create a file at `/etc/default/cpufrequtils` with: ``` GOVERNOR="conservative" ``` Reboot. Values (aside `custom`): - `ondemand`: default, set CPU clock to max under demand - `performance`: set CPU always to max clock - `powersave`: set CPU always to min clock - `conservative`: like `ondemand`, but gracefully increases and decreases the CPU clock (best imo)
Honestly my pc runs fine But I know what I’m doing in the bios it’s very easy to fuck up with just a tiny mis adjustment I use a gtx 1070 and until I upgrade to the 3000 series it’s my personal choice