There is a open source project called AMDoverdriveCtrl on source forge
http://sourceforge.net/projects/amdovdrvctrl
Answer from Matt Timbrook on askubuntu.comThere is a open source project called AMDoverdriveCtrl on source forge
http://sourceforge.net/projects/amdovdrvctrl
There is not. I have not really explored this, but there might be something in bios, depending.
Honestly, however, overclocking your graphics cards gives almost no performance boost.
If you're experiencing a slow desktop environment (lagging when moving windows, playing videos and the such), then I suggest that you go turn off vsync in compizconfig, as that's what's holding back the framerate.
Hello, so I've an AMD athlon x4 860k and Ubunthu 16. I wanted to check my temperature via sensors, but it didn't work properly. So I checked in bios, and it showed 70C, I played a bit with it, and it changed to 65C. I have Corsair water cooling (but the fan isn't exactly ontop of the radiator), and I haven't overclocked, the max temperature should be 72C, so it seemed very high. I read that it's fine because Bios temperature readings for amd aren't actually in C and the actual max is 95+, I also read I should install AMD overdrive for acurate reasults, but the problem is that it isn't supported on Linux.
So my questions are:
Is 65C in bios fine?
Is there something I can do to get AMD overdrive?
If both answears are no, what should I do?
Thanks.
I have a 7890k, and my BIOS seems to spit out the same readings as you. But with aida64 in Windows my idle temp is around 30c. Speccy reports similar temperatures to the bios, I believe they're incorrect. My APU wraith heatsink is cool to the touch, the Mobo heatsink is hot and reports a lower temp in the bios and speccy. Aida 64 reports the correct temperature for me. Speccy and the bios do not.
Even though I'm running Windows, I imagine you're getting incorrect readings as I was too, I hope that helps
AMD Overdrive exists with the Fglrx driver (the official driver from AMD). However, the Fglrx has been deprecated and doesn't support the latest Linux kernel.
Instead, you should run the normal open source drivers that come with whatever Linux distribution you use, and use either lm-sensor, Psensor, or Ksysguard to monitor your temps.
One thing I missed from Windows after my transition to Linux was the ability to easily adjust my GPU's clock speeds and voltages. I went to the godly Arch Wiki and found there's a way to overclock AMD GPUs, but some steps are not very clear and I had to do some googling to get everything working.
EDIT: Vega GPU are not supported as of kernel 4.20.2! Here's a workaround by u/whatsaspecialusername.
First things first, your kernel has to be at least version 4.17 (you can check by running uname -a), although it's recommended to update it to the latest version for system stability, bug fixes and new features (for instance, Hawaii support for overclocking was introduced in 4.20). The driver should be amdgpu (not the proprietary amdgpu-pro). I suggest installing the latest mesa+amdgpu from this PPA for *buntu, but I don't know about other distros. It might not even be a necessary step.
You need to add the parameter amdgpu.ppfeaturemask=0xffffffff to your GRUB configuration. To do so, edit /etc/default/grub as root and add the parameter between the quotes of GRUB_CMDLINE_LINUX_DEFAULT. Save, then run sudo update-grub2 or sudo grub-mkconfig -o /boot/grub/grub.cfg, depending on your distro. Reboot. If you're running any bootloader other than GRUB, check this Arch Wiki page.
Now, we need to find the file with our GPU's clocks and voltages. In my case it was in /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/, but you can find the directory by running readlink -f /sys/class/drm/card0/device.
The file we want to work with is called pp_od_clk_voltage. Mine looked like the following (my card is a Sapphire RX 580 Nitro+ 4GB):
OD_SCLK: 0: 300MHz 750mV 1: 600MHz 769mV 2: 900MHz 887mV 3: 1145MHz 1100mV 4: 1215MHz 1181mV 5: 1257MHz 1150mV 6: 1300MHz 1150mV 7: 1411MHz 1150mV OD_MCLK: 0: 300MHz 750mV 1: 1000MHz 800mV 2: 1750MHz 950mV OD_RANGE: SCLK: 300MHz 2000MHz MCLK: 300MHz 2250MHz VDDC: 750mV 1200mV
We want to edit the P-state #7 for the core and #2 for the VRAM, as those are the values that our GPU is going to run at while under load. On Windows, my optimal values were 1450MHz for core and 2065MHz for memory, so I'm going to edit the file as follows:
sudo sh -c "echo 's 7 1450 1150' > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage"
Where "s" means we're editing the core's values, 7 is the seventh P-state, 1450 is the speed we want in MHz, 1150 is the voltage in mV. Note that I didn't run sudo echo "s 7 1450 1150" > /sys/class/drm/card0/device/pp_od_clk_voltage like the Arch Wiki states, because it would throw an error and not apply the changes (this might have worked without "sudo" if we logged in as root with sudo su, but it's best not to do so for safety reasons). See here.
Same with the VRAM: sudo sh -c "echo 'm 2 2065 950' > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage"
After these two commands the file is going to be the same except for the two lines of the P-states we just edited. We can check by running cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage.
I didn't mess with voltages because I'm already satisfied with my results and I'm very paranoid about damaging my GPU. If you really want to, please be really careful as you might cause fatal damage to your card!
Once we are done, running sudo sh -c "echo 'c' > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage" will apply the changes and the GPU will start running at those new frequencies when under load.
While I haven't found a way to actively monitor clock speeds à la MSI Afterburner (EDIT: there is actually! See this comment by u/AlienOverlordXenu), I could see a sudden increase in FPS in Heaven Benchmark as soon as I applied the new clocks. I set the camera to free mode (so that it stops moving) and after applying the FPS went from 55-56 to 60-61!
(The guide on ArchWiki also has a command to change the maximum power consumption in Watts: I didn't mess with it as I wasn't sure what was a safe value)
Now there's one problem: every time we reboot our PC the clocks are going to reset. So how do we make them stick?
Assuming your distro has systemd, we can create a service that runs the three commands that edit and apply the clocks at boot. If your distro doesn't have systemd, you can follow these steps.
First, we need to create a script. I named mine "overclock" and put it in /usr/bin/. It looks like this:
#!/bin/sh sudo sh -c "echo 's 7 1450 1150' > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage" sudo sh -c "echo 'm 2 2065 950' > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage" sudo sh -c "echo 'c' > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage"
Then, we have to create a file in /etc/systemd/system/ with a .service extension. I named mine overclock.service:
[Unit] Description=Increase GPU core and memory clocks [Service] Type=oneshot ExecStart=/usr/bin/overclock [Install] WantedBy=multi-user.target
sudo systemctl enable overclock.service will enable our service. After rebooting it should automatically overclock the GPU. We can check if it did by running cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/pp_od_clk_voltage.
(It's not necessary, but I also made a script that sets the GPU back to the stock clock speeds. I didn't make a service for it, I just put it in my Documents folder.)
So that should be it! Keep in mind that it might not work on any AMD GPU, in fact I couldn't find a way to do it on my Ryzen+Vega laptop (something with power saving mode I'm guessing), but it's always worth a try. This is my first "real" guide so any feedback is very much appreciated.
This is the way I found out fucking around with LACT and CoreCtrl.
If you had used the kernel parameter amdgpu.ppfeaturemask=0xffffffff it means you already have it, this steps are for people who doesn't want to mess with kernel.
-
Install LACT https://github.com/ilya-zlobintsev/LACT
-
Install CoreCtrl
-
Open LACT and do the setup with the command line they provide and restart LACT.
-
Go OC Tab and Enable Overclocking (This will not set overclocking on your GPU, just will open more option for you to do the OC if wanted) after is done, close LACT and REBOOT your system (This reboot its important, do it).
-
Now you can control your GPU through LACT or CoreCtrl
-
You are done, I'll recommend to no touch LACT again, make every change through CoreCtrl. I do recommend to use CoreCtrl for fans curve control, they are less aggressive and in tone with the current temps than LACT and also LACT fans control it's kinda buggy.
ggs.