matszpk / amdcovc Goto Github PK
View Code? Open in Web Editor NEWUtility to overclock AMD Radeon GPU's in console mode (linux)
License: GNU General Public License v2.0
Utility to overclock AMD Radeon GPU's in console mode (linux)
License: GNU General Public License v2.0
I've noticed I can't actually set my clock speed past their defaults (i.e the bounds of the clock rates available):
ccgamer@trusk:~/amdcovc$ ./amdcovc Adapter 0: Device 67df Core: 300 MHz, Mem: 300 MHz, CoreOD: 0, MemOD: 0, Temp: 58 C, Fan: 16.8627% Core clocks: 300 588 952 1041 1106 1168 1209 1340 Memory Clocks: 300 1000 1750 Adapter 1: Device 67df Core: 300 MHz, Mem: 300 MHz, CoreOD: 0, MemOD: 0, Temp: 58 C, Fan: 24.7059% Core clocks: 300 588 952 1041 1106 1168 1209 1340 Memory Clocks: 300 1000 1750
On Windows, I can quite happily set the memory clock up to 2240 (stable), but I don't seem to be able to use something that's not 300, 1000, 1750 in the above case. Do I need to add more usable memory clock's to a config file somewhere?
I have encountered an error when running 'make' on netrunner core 20.01 (debian based). When i run the make command in the amdcovcgit directory as told to do in the README.md i get this output:
g++ -Wall -O3 -std=c++11 -DHAVE_TERMINFO=1 -c -o amdcovc.o amdcovc.cpp
amdcovc.cpp:48:10: fatal error: pci/pci.h: No such file or directory
#include <pci/pci.h>
^~~~~~~~~~~
compilation terminated.
make: *** [Makefile:46: amdcovc.o] Error 1
Hi there :)
I'm using Ubuntu LTS 16.04.3. I installed the SDK10 AMD ADL libraries for your utility as well as the rest of the requirements. It compiled without issue although it would've been easier if the docs said somewhere to copy the include folder from the ADL SDK to one level up of the amdcovc build folder. Took me a few minutes to figure out where to put it.
Anyways, after it finishes I can print the output for my GPU.
tjadmin@rig03:~/overclock/amdcovc-master$ sudo ./amdcovc -a 1
Adapter 1: Hawaii PRO [Radeon R9 290]
Core: 1040 MHz, Mem: 1250 MHz, CoreOD: 0, MemOD: 0, Load: 100%, Temp: 62 C, Fan: 43.9216%
Core clocks: 300 483 727 924 968 1004 1031 1040
Memory Clocks: 150 1250
I then issue this command
sudo ./amdcovc coreclk:1:0=1140
The command responds
tjadmin@rig03:~/overclock/amdcovc-master$ sudo ./amdcovc coreclk:1:0=1140
WARNING: setting AMD Overdrive parameters!IMPORTANT NOTICE: Before any setting of AMD Overdrive parameters,
please STOP ANY GPU computations and GPU renderings.
Please use this utility CAREFULLY, because it can DAMAGE your hardware!Setting core clock to 1140 MHz for adapter 1 at performance level 0
However the output of the card still says 1040 after
tjadmin@rig03:~/overclock/amdcovc-master$ sudo ./amdcovc -a 1
Adapter 1: Hawaii PRO [Radeon R9 290]
Core: 1040 MHz, Mem: 1250 MHz, CoreOD: 0, MemOD: 0, Load: 100%, Temp: 61 C, Fan: 42.7451%
Core clocks: 300 483 727 924 968 1004 1031 1040
Memory Clocks: 150 1250
What am I doing wrong here?
Best
Jordan
I'm trying to read voltages but can't make it work.
I compiled it with HAVE_ADLSDK = 1
pointing ADLSDKDIR
to the right dir and setting LIBDIRS
to the Ubuntu line.
I have installed Radeon™ Software for Linux® Driver 17.50
I don't know why but if (handle.open())
fails.
./amdcovc -v
basic_ios::clear: iostream error
System: Kernel: 4.4.0-78-generic x86_64 (64 bit) Desktop: Cinnamon 3.4.1
Distro: Linux Mint 18.2 Sonya
01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) (prog-if 00 [VGA controller])
Subsystem: PC Partner Limited / Sapphire Technology Tobago PRO [Radeon R7 360 / R9 360 OEM]
Flags: bus master, fast devsel, latency 0, IRQ 47
Memory at c0000000 (64-bit, prefetchable) [size=256M]
Memory at d0000000 (64-bit, prefetchable) [size=8M]
I/O ports at e000 [size=256]
Memory at fea00000 (32-bit, non-prefetchable) [size=256K]
Expansion ROM at fea40000 [disabled] [size=128K]
Capabilities:
Kernel driver in use: radeon
Kernel modules: radeon
[root@centos amdcovc]# ./amdcovc -v Adapter 0: Ellesmere [Radeon RX 470/480] Device Topology: 1:0:0 Vendor ID: 4098 Device ID: 26591 Current CoreClock: 300 MHz Current MemoryClock: 300 MHz Core Overdrive: 0 Memory Overdrive: 0 Core OverDrive value: 0 Memory OverDrive value: 0 GPU Load: 0% Current BusSpeed: 0 Current BusLanes: 2 Temperature: 28 C Critical temperature: 0 C FanSpeed Min (Value): 0 FanSpeed Max (Value): 255 Current FanSpeed: 16.8627% Controlled FanSpeed: no Core clocks: 300MHz 600MHz 900MHz 1145MHz 1215MHz 1257MHz 1300MHz 1366MHz Memory Clocks: 300MHz 1000MHz 1750MHz
I'm trying to compile on macOS 10.14.2 (Hackintosh, i7-8700). Aiming to undervolt and adjust fan curve of Sapphire RX580 Nitro+. I have Wattman available in Windows, but need it to work in macOS also. Anyone having luck with this?
Having installed (make install-lib) this:
https://github.com/pciutils/pciutils
I get this error:
$ make
g++ -Wall -O3 -std=c++11 -c -o amdcovc.o amdcovc.cpp
g++ -Wall -O3 -std=c++11 -o amdcovc amdcovc.o -ldl -lpci -lm -pthread
Undefined symbols for architecture x86_64:
"_IOConnectCallStructMethod", referenced from:
_darwin_read in libpci.a(darwin.o)
_darwin_write in libpci.a(darwin.o)
"_IOObjectRelease", referenced from:
_darwin_detect in libpci.a(darwin.o)
"_IOServiceGetMatchingService", referenced from:
_darwin_detect in libpci.a(darwin.o)
"_IOServiceMatching", referenced from:
_darwin_detect in libpci.a(darwin.o)
"_IOServiceOpen", referenced from:
_darwin_detect in libpci.a(darwin.o)
"_kIOMasterPortDefault", referenced from:
_darwin_detect in libpci.a(darwin.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [amdcovc] Error 1
Not worked on kernel 5.8+
Core: 1050 MHz, Mem: 940 MHz, CoreOD: 4294967264, MemOD: 18, Vddc: 806 mV
SOC: 960 MHz, DCEF: 600 MHz
PerfCtrl: manual, Load: 100%
Temp: 58C, T2: 61C, T3: 68C, T4: 60C, Fan: 65.8824%
Power: 95 W (cap: 165 W)
Core Clocks: 852 991 1050 1050 1050 1050 1050 1050
Memory Clocks: 167 500 700 940
SOC Clocks: 600 720 847 960 1028 1107
DCEF Clocks: 600 720 847 900
Temps : GPU: 58C HotSpot: 61C Mem: 68C
Memory total: 8176.00 MB, used: 4076.61 MB, free: 4099.39 MB
DPM 2 CORE 1050Mhz 806mV MDPM 3 MEM 940Mhz 801mV VDDCI 900mV REF 60000 PWR 95.0 W RPM 3237
CentOS7
ADL SDK V12.0
Compile success.
Run ./amdcovc -? ........ ok
Run ./amdcovc -v ........ show following error:
libatiadlxx.so: cannot open shared object file: No such file or directory
hi
please help me i cannot run this tool its gives me that error:
root@i7:~/amdcovc-0.3.0pre5# ./amdcovc -v
./amdcovc: relocation error: ./amdcovc: symbol pci_init, version LIBPCI_3.2 not defined in file libpci.so.3 with link time reference
OS info:
root@i7:~/amdcovc-0.3.0pre5# uname -a
Linux i7 4.4.0-87-generic #110-Ubuntu SMP Tue Jul 18 12:55:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
root@i7:~/amdcovc-0.3.0pre5# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.3 LTS
Release: 16.04
Codename: xenial
running with 2 RX580 mining ethereum....
would like to lower the voltage to keep it cooler... any idea is very welcome
Thank for great tool!!!!
I try to set memory clock 2150 and core clock 1190
memory clock writing but miner work with 4mh then check memory works with 300mh
and core clock set only highest value 1380 i can not use lover value. get error like value not in range (((
Adapter 1: Ellesmere [Radeon RX 470/480]
Device Topology: 4:0:0
Vendor ID: 4098
Device ID: 26591
Current CoreClock: 1339 MHz
Current MemoryClock: 2000 MHz
Core Overdrive: 0
Memory Overdrive: 0
Current BusSpeed: 0
Current BusLanes: 1
Temperature: 57 C
Critical temperature: 0 C
FanSpeed Min (Value): 0
FanSpeed Max (Value): 255
Current FanSpeed: 62.7451%
Controlled FanSpeed: no
Core clocks:
300MHz
600MHz
900MHz
1179MHz
1252MHz
1295MHz
1339MHz
1380MHz
Memory Clocks:
300MHz
1000MHz
2000MHz
what does it mean performance level?
inxi -SG
System: Host: buddhaHome Kernel: 4.13.0-16-generic x86_64 bits: 64 Desktop: Gnome 3.26.1 Distro: Ubuntu 17.10
Graphics: Card-1: Advanced Micro Devices [AMD/ATI] Ellesmere [Radeon RX 470/480]
Card-2: Advanced Micro Devices [AMD/ATI] Ellesmere [Radeon RX 470/480]
Display Server: x11 (X.Org 1.19.5 )
drivers: modesetting,fbdev,ati,vesa,vmware,radeon,nouveau,intel,amdgpu
Resolution: [email protected]
OpenGL: renderer: Radeon RX 580 Series version: 4.5.13496
Cards are flashed with another timings under windows with this values give 30mh under linux not working overcloking with miner (((
Hello guys
I'm using Ubuntu LTS 16.04.3. I installed all the necessary and the amdcovc can read my GPUs, but it fails to set clocks, for example:
rig2@rig2-desktop:~/amdcovc$ ./amdcovc -a 0 Adapter 0: Device 67df Core: 300 MHz, Mem: 1750 MHz, CoreOD: 0, MemOD: 0, Temp: 47 C, Fan: 33.7255% Core clocks: 300 600 900 1145 1215 1257 1300 1366 Memory Clocks: 300 1000 1750
Ok, now I want to set, for example, 600 for the Core clock, but:
rig2@rig2-desktop:~/amdcovc$ ./amdcovc coreclk:0:1=600
WARNING: setting AMD Overdrive parameters!
IMPORTANT NOTICE: Before any setting of AMD Overdrive parameters,
please STOP ANY GPU computations and GPU renderings.
Please use this utility CAREFULLY, because it can DAMAGE your hardware!
Performance level out of range in 'coreclk:0:1=600'!
NO ANY settings applied. Error in parameters!
Wrong parameters!
I'm using latest AMD blockchain drivers
could you be more specific in what are the dependencies for this app to be compiled under ubuntu 17.04?
this is how for I get:
$ make
g++ -Wall -O3 -std=c++11 -I/home/mat/docs/src/ADL_SDK9/include -c -o amdcovc.o amdcovc.cpp
In file included from /usr/include/x86_64-linux-gnu/c++/6/bits/os_defines.h:39:0,
from /usr/include/x86_64-linux-gnu/c++/6/bits/c++config.h:507,
from /usr/include/c++/6/iostream:38,
from amdcovc.cpp:21:
/usr/include/features.h:148:3: warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE" [-Wcpp]
# warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
^~~~~~~
amdcovc.cpp:40:19: fatal error: CL/cl.h: No such file or directory
#include <CL/cl.h>
^
compilation terminated.
Makefile:26: recipe for target 'amdcovc.o' failed
make: *** [amdcovc.o] Error 1
First, thank you so much for making and sharing "amdcovc". It is so convenient to use.
The problem: After overclocking memory clock, the Mem clock is locked at the min. speed. (300 Mhz for my MSI RX580 Gaming X 8GB)
By checking "pp_mclk_od" and "pp_dpm_mclk", the overclock number is correct. However, I notice that during high gpu load, the *(asterisk) inside the "pp_dpm_mclk" seems to be sticking with the lowest clock speed. While overclocking core clock works as expected, the *(asterisk) inside "pp_dpm_sclk" move to the proper position.
I wonder is it a problem of the amd driver or not.
Thank you very much, matszpk.
Adapter 0: Malta [Radeon HD 7990]
Core: 300 MHz, Mem: 150 MHz, Vddc: 0.85 V, Load: 0%, Temp: 37 C, Fan: 20%
Max Ranges: Core: 150 - 1100 MHz, Mem: 75 - 1575 MHz, Vddc: 0.85 - 1.2 V
PerfLevels: Core: 300 - 1000 MHz, Mem: 150 - 1500 MHz, Vddc: 0.85 - 1.2 V
Adapter 1: Malta [Radeon HD 7990]
Core: 501 MHz, Mem: 1500 MHz, Vddc: 0.95 V, Load: 0%, Temp: 47 C, Fan: 20%
Max Ranges: Core: 150 - 1100 MHz, Mem: 75 - 1575 MHz, Vddc: 0.85 - 1.2 V
PerfLevels: Core: 300 - 1000 MHz, Mem: 150 - 1500 MHz, Vddc: 0.85 - 1.2 V
Adapter 2: Malta [Radeon HD 7990]
Core: 501 MHz, Mem: 1500 MHz, Vddc: 0.95 V, Load: 0%, Temp: 55 C, Fan: 22%
Max Ranges: Core: 150 - 1100 MHz, Mem: 75 - 1575 MHz, Vddc: 0.85 - 1.2 V
PerfLevels: Core: 300 - 1000 MHz, Mem: 150 - 1500 MHz, Vddc: 0.85 - 1.2 V
Adapter 3: Malta [Radeon HD 7990]
Core: 501 MHz, Mem: 1500 MHz, Vddc: 0.95 V, Load: 0%, Temp: 54 C, Fan: 21%
Max Ranges: Core: 150 - 1100 MHz, Mem: 75 - 1575 MHz, Vddc: 0.85 - 1.2 V
PerfLevels: Core: 300 - 1000 MHz, Mem: 150 - 1500 MHz, Vddc: 0.85 - 1.2 V
Adapter 4: Malta [Radeon HD 7990]
Core: 501 MHz, Mem: 1500 MHz, Vddc: 0.95 V, Load: 0%, Temp: 49 C, Fan: 20%
Max Ranges: Core: 150 - 1100 MHz, Mem: 75 - 1575 MHz, Vddc: 0.85 - 1.2 V
PerfLevels: Core: 300 - 1000 MHz, Mem: 150 - 1500 MHz, Vddc: 0.85 - 1.2 V
Adapter 5: Malta [Radeon HD 7990]
Core: 0 MHz, Mem: 0 MHz, Vddc: 0 V, Load: 200%, Temp: 511 C, Fan: 100%
Max Ranges: Core: 150 - 1100 MHz, Mem: 75 - 1575 MHz, Vddc: 0.85 - 1.2 V
PerfLevels: Core: 300 - 1000 MHz, Mem: 150 - 1500 MHz, Vddc: 0.85 - 1.2 V
Please, take a look on Adapter 5. My system is Ubuntu 14.04 with latest fglrx drivers and ADL_SDK. I compiled amdcovc from sources (latest master), but tried release too. Sometimes it shows fantastic temp values for Adapter 5 (511 C) same as utilization value (sometimes over 40k %). Please, help!
Compiled on Ubuntu 16.04, kernel 4.8.0-58 with ADL 10.02 and openCL from AMD 17.5 Driver
kernel 4.17+ should expose Power values through DRM?
Adapter 0: Device 67df
Core: 1244 MHz, Mem: 1750 MHz, CoreOD: 0, MemOD: 0, Load: 100%, Temp: 57 C, Fan: 72.9412%
Core clocks: 300 588 952 1041 1106 1168 1209 1244
Memory Clocks: 300 1000 1750
Adapter 1: Device 67df
etc....
I am requesting that output be colorized to improve readibility:
Bold: All titles on monitoring be bolded.
All Warnings be yellow, all critical reports(like fan or temp) be red.
The current clock speeds and available clock speeds should be various colors so they pop out at the user.
Hi Sir , i have Ubuntu Server 16.04.3 . radeon rx470 and amdgpu-pro Mining driver version 17.40
I built a kernel 4.13.0 with a single patch vm_fragment_size https://patchwork.freedesktop.org/patch/174700/ for dag fix amd
I assembled your glorious program from the source code amdcovc.cpp , but for some reason acceleration does not work
Adapter 1: Ellesmere [Radeon RX 470/480/570/580]
Core: 1244 MHz, Mem: 1947 MHz, CoreOD: 16, MemOD: 18, Temp: 59 C, Fan: 80%
Core clocks: 300 466 751 1019 1070 1071 1072 1244
Memory Clocks: 300 1947
settings are changed but overclocking does not work :(
Hello, i have a RX 480 running on Ubuntu 18.04 kernel 5.4.0-54 with the latest amd pro drivers i was able to set the memory clock but when i try to set a core clock i get this error:
Performance level out of range in 'coreclk:0:0=1150'!
What i'm doing wrong?
EDIT: Also tried with ccoreclk and i got the same error
Can I configure all the adapters without enumeration with one command?
Look at PCI:
# lspci -D | grep VGA | grep AMD
0000:01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao PRO [Radeon R7 370 / R9 270/370 OEM] (rev 81)
0000:03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
0000:04:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao PRO [Radeon R7 370 / R9 270/370 OEM] (rev 81)
0000:05:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
0000:06:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao PRO [Radeon R7 370 / R9 270/370 OEM] (rev 81)
0000:07:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
0000:08:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao PRO [Radeon R7 370 / R9 270/370 OEM] (rev 81)
0000:09:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
And amdcovc brief:
Adapter 0: Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
Core: 1150 MHz, Mem: 1600 MHz, Vddc: 1.206 V, Load: 99%, Temp: 66 C, Fan: 100%
Max Ranges: Core: 150 - 1400 MHz, Mem: 75 - 1625 MHz, Vddc: 0.875 - 1.206 V
PerfLevels: Core: 300 - 1150 MHz, Mem: 150 - 1600 MHz, Vddc: 0.875 - 1.206 V
Adapter 1: Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
Core: 1150 MHz, Mem: 1600 MHz, Vddc: 1.206 V, Load: 99%, Temp: 63 C, Fan: 100%
Max Ranges: Core: 150 - 1400 MHz, Mem: 75 - 1625 MHz, Vddc: 0.875 - 1.206 V
PerfLevels: Core: 300 - 1150 MHz, Mem: 150 - 1600 MHz, Vddc: 0.875 - 1.206 V
Adapter 2: Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
Core: 1150 MHz, Mem: 1600 MHz, Vddc: 1.206 V, Load: 99%, Temp: 70 C, Fan: 100%
Max Ranges: Core: 150 - 1400 MHz, Mem: 75 - 1625 MHz, Vddc: 0.875 - 1.206 V
PerfLevels: Core: 300 - 1150 MHz, Mem: 150 - 1600 MHz, Vddc: 0.875 - 1.206 V
Adapter 3: Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
Core: 1050 MHz, Mem: 1400 MHz, Vddc: 1.206 V, Load: 99%, Temp: 50 C, Fan: 100%
Max Ranges: Core: 150 - 1400 MHz, Mem: 75 - 1625 MHz, Vddc: 0.875 - 1.206 V
PerfLevels: Core: 300 - 1050 MHz, Mem: 150 - 1400 MHz, Vddc: 0.875 - 1.206 V
Adapter 4: Curacao PRO [Radeon R7 370 / R9 270/370 OEM]
Core: 1050 MHz, Mem: 1500 MHz, Vddc: 1.188 V, Load: 99%, Temp: 53 C, Fan: 100%
Max Ranges: Core: 150 - 1125 MHz, Mem: 75 - 1875 MHz, Vddc: 0.875 - 1.188 V
PerfLevels: Core: 300 - 1050 MHz, Mem: 150 - 1500 MHz, Vddc: 0.875 - 1.188 V
Adapter 5: Curacao PRO [Radeon R7 370 / R9 270/370 OEM]
Core: 1050 MHz, Mem: 1500 MHz, Vddc: 1.188 V, Load: 99%, Temp: 52 C, Fan: 100%
Max Ranges: Core: 150 - 1125 MHz, Mem: 75 - 1875 MHz, Vddc: 0.875 - 1.188 V
PerfLevels: Core: 300 - 1050 MHz, Mem: 150 - 1500 MHz, Vddc: 0.875 - 1.188 V
Adapter 6: Curacao PRO [Radeon R7 370 / R9 270/370 OEM]
Core: 1050 MHz, Mem: 1500 MHz, Vddc: 1.188 V, Load: 99%, Temp: 51 C, Fan: 100%
Max Ranges: Core: 150 - 1125 MHz, Mem: 75 - 1875 MHz, Vddc: 0.875 - 1.188 V
PerfLevels: Core: 300 - 1050 MHz, Mem: 150 - 1500 MHz, Vddc: 0.875 - 1.188 V
Adapter 7: Curacao PRO [Radeon R7 370 / R9 270/370 OEM]
Core: 1050 MHz, Mem: 1500 MHz, Vddc: 1.163 V, Load: 99%, Temp: 55 C, Fan: 100%
Max Ranges: Core: 150 - 1125 MHz, Mem: 75 - 1875 MHz, Vddc: 0.875 - 1.188 V
PerfLevels: Core: 300 - 1050 MHz, Mem: 150 - 1500 MHz, Vddc: 0.875 - 1.163 V
It is possible to add PCI bus address (lspci -D) to amdcovc
output (may be verbose
only)?
If one of 8 or 12... or 16 cards will start glitches is not easy to debug where this card on motherboard.
And also will be useful: Subsystem
info. Here we can found device vendor (human readable).
# lspci -v | grep Subsystem | grep Radeon | grep -v Audio
Subsystem: PC Partner Limited / Sapphire Technology Trinidad PRO [Radeon R9 370 OEM]
Subsystem: XFX Pine Group Inc. Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
Subsystem: PC Partner Limited / Sapphire Technology Trinidad PRO [Radeon R9 370 OEM]
Subsystem: XFX Pine Group Inc. Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
Subsystem: PC Partner Limited / Sapphire Technology Trinidad PRO [Radeon R9 370 OEM]
Subsystem: XFX Pine Group Inc. Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
Subsystem: PC Partner Limited / Sapphire Technology Trinidad PRO [Radeon R9 370 OEM]
Subsystem: XFX Pine Group Inc. Curacao XT / Trinidad XT [Radeon R7 370 / R9 270X/370X]
Thank you.
hello,
i want to use your program with raveos. but i have a situation. raveos doesnt have libtinfo.so.6 library. i copied to /usr/lib myself. it worked. but after every restart all modification gone in raveos. only /app-data/scritps stay alive. so it is possible to search this libtinfo library in /app-data/scripts directory? also name must be s02libtinfo.so.6
i already ask to raveos developer to add yor program.
thanks.
Ubuntu 16.04.3 LTS
root@rig-desktop:~/amdcovc-master# uname -r
4.10.0-28-generic
AMDGPU-PRO 17.40
Rx 580 8 Gb
root@rig-desktop:~/amdcovc-master# ./amdcovc coreclk:0=1000 memclk:0=1200
WARNING: setting AMD Overdrive parameters!
IMPORTANT NOTICE: Before any setting of AMD Overdrive parameters,
please STOP ANY GPU computations and GPU renderings.
Please use this utility CAREFULLY, because it can DAMAGE your hardware!
Core clock out of range in 'coreclk:0=1000'!
Memory clock out of range in 'memclk:0=1200'!
NO ANY settings applied. Error in parameters!
Wrong parameters!
Can anybody explain how to overclock them and undervolt ?
Im using Claymore to mine ethereum.
Thanks.
Hi there,
I should have installed all the requirements:
Makefile
ADLSDKDIR = /home/miner/treiber/AMD_ADL
PCIDIR = /home/miner/pciutils
CXX = g++
CXXFLAGS = -Wall -O3 -std=c++11
LDFLAGS = -Wall -O3 -std=c++11
INCDIRS = -I$(ADLSDKDIR)/include -I$(PCIDIR)
LIBDIRS = -L/opt/amdgpu-pro/lib/x86_64-linux-gnu
#LIBDIRS =
LIBS = -ldl -lpci -lm -lOpenCL -pthread
[...]
If I run make I run into this:
miner@erpel2:~/amdcovc$ make
g++ -Wall -O3 -std=c++11 -L/opt/amdgpu-pro/lib/x86_64-linux-gnu -o amdcovc amdcovc.o -ldl -lpci -lm -lOpenCL -pthread
/usr/bin/ld: cannot find -lpci
collect2: error: ld returned 1 exit status
Makefile:25: recipe for target 'amdcovc' failed
make: *** [amdcovc] Error 1
Unfortunately I am far from being a Linux champion so any hint is appreciated .
Thanks, Stefan
I had modify the ADL_SDK path in Makefile, when I use command "make", it show me following errors, how can I solve this problem?
I was use gcc version 6.3.0 (GCC) to build the source.
[root@localhost amdcovc]# make
g++ -Wall -O3 -std=c++11 -I/root/setup/ADL_SDKV10.2//include -c -o amdcovc.o amdcovc.cpp
amdcovc.cpp: In destructor ‘ATIADLHandle::~ATIADLHandle()’:
amdcovc.cpp:230:34: warning: throw will always call terminate() [-Wterminate]
throw Error(dlerror());
^
amdcovc.cpp:230:34: note: in C++11 destructors default to noexcept
amdcovc.cpp: At global scope:
amdcovc.cpp:611:26: error: ‘std::vector’ has not been declared
std::vector& activeAdapters)
^~~~~~
amdcovc.cpp:611:32: error: expected ‘,’ or ‘...’ before ‘<’ token
std::vector& activeAdapters)
^
amdcovc.cpp: In function ‘void getActiveAdaptersIndices(ADLMainControl&, int, int)’:
amdcovc.cpp:613:5: error: ‘activeAdapters’ was not declared in this scope
activeAdapters.clear();
^~~~~~~~~~~~~~
amdcovc.cpp: At global scope:
amdcovc.cpp:620:24: error: ‘vector’ in namespace ‘std’ does not name a template type
const std::vector& activeAdapters,
^~~~~~
amdcovc.cpp:620:30: error: expected ‘,’ or ‘...’ before ‘<’ token
const std::vector& activeAdapters,
^
amdcovc.cpp: In function ‘void printAdaptersInfo(ADLMainControl&, int, int)’:
amdcovc.cpp:627:24: error: ‘choosenAdapters’ was not declared in this scope
auto choosenIter = choosenAdapters.begin();
^~~~~~~~~~~~~~~
amdcovc.cpp:632:13: error: ‘useChoosen’ was not declared in this scope
if (useChoosen && (choosenIter==choosenAdapters.end() || choosenIter!=i))
^~~~~~~~~~
amdcovc.cpp:665:13: error: ‘useChoosen’ was not declared in this scope
if (useChoosen)
^~~~~~~~~~
amdcovc.cpp: At global scope:
amdcovc.cpp:672:24: error: ‘vector’ in namespace ‘std’ does not name a template type
const std::vector& activeAdapters,
^~~~~~
amdcovc.cpp:672:30: error: expected ‘,’ or ‘...’ before ‘<’ token
const std::vector& activeAdapters,
^
amdcovc.cpp: In function ‘void printAdaptersInfoVerbose(ADLMainControl&, int, int)’:
amdcovc.cpp:679:24: error: ‘choosenAdapters’ was not declared in this scope
auto choosenIter = choosenAdapters.begin();
^~~~~~~~~~~~~~~
amdcovc.cpp:684:13: error: ‘useChoosen’ was not declared in this scope
if (useChoosen && (choosenIter==choosenAdapters.end() || choosenIter!=i))
^~~~~~~~~~
amdcovc.cpp:743:13: error: ‘useChoosen’ was not declared in this scope
if (useChoosen)
^~~~~~~~~~
amdcovc.cpp: At global scope:
amdcovc.cpp:749:56: error: ‘std::vector’ has not been declared
static void parseAdaptersList(const char string, std::vector& adapters,
^~~~~~
amdcovc.cpp:749:62: error: expected ‘,’ or ‘...’ before ‘<’ token
static void parseAdaptersList(const char string, std::vector& adapters,
^
amdcovc.cpp: In function ‘void parseAdaptersList(const char*, int)’:
amdcovc.cpp:752:5: error: ‘adapters’ was not declared in this scope
adapters.clear();
^~~~~~~~
amdcovc.cpp:753:5: error: ‘allAdapters’ was not declared in this scope
allAdapters = false;
^~~~~~~~~~~
amdcovc.cpp: At global scope:
amdcovc.cpp:809:10: error: ‘vector’ in namespace ‘std’ does not name a template type
std::vector adapters;
^~~~~~
amdcovc.cpp: In function ‘bool parseOVCParameter(const char*, OVCParameter&)’:
amdcovc.cpp:831:11: error: ‘struct OVCParameter’ has no member named ‘adapters’; did you mean ‘allAdapters’?
param.adapters.clear();
^~~~~~~~
amdcovc.cpp:832:11: error: ‘struct OVCParameter’ has no member named ‘adapters’; did you mean ‘allAdapters’?
param.adapters.push_back(0); // default is 0
^~~~~~~~
amdcovc.cpp:892:61: error: ‘struct OVCParameter’ has no member named ‘adapters’; did you mean ‘allAdapters’?
parseAdaptersList(listString.c_str(), param.adapters, param.allAdapters);
^~~~~~~~
amdcovc.cpp: At global scope:
amdcovc.cpp:978:16: error: ‘vector’ in namespace ‘std’ does not name a template type
const std::vector& adapters;
^~~~~~
amdcovc.cpp:983:32: error: ‘vector’ in namespace ‘std’ does not name a template type
AdapterIterator(const std::vector& _adapters, bool _allAdapters,
^~~~~~
amdcovc.cpp:983:38: error: expected ‘,’ or ‘...’ before ‘<’ token
AdapterIterator(const std::vector& _adapters, bool _allAdapters,
^
amdcovc.cpp: In constructor ‘AdapterIterator::AdapterIterator(int)’:
amdcovc.cpp:984:36: error: class ‘AdapterIterator’ does not have any field named ‘adapters’
int _allAdaptersNum) : adapters(_adapters), allAdapters(_allAdapters),
^~~~~~~~
amdcovc.cpp:984:45: error: ‘_adapters’ was not declared in this scope
int _allAdaptersNum) : adapters(_adapters), allAdapters(_allAdapters),
^~~~~~~~~
amdcovc.cpp:984:69: error: ‘_allAdapters’ was not declared in this scope
int _allAdaptersNum) : adapters(_adapters), allAdapters(_allAdapters),
^~~~~~~~~~~~
amdcovc.cpp:985:28: error: ‘_allAdaptersNum’ was not declared in this scope
allAdaptersNum(_allAdaptersNum), position(0)
^~~~~~~~~~~~~~~
amdcovc.cpp: In member function ‘AdapterIterator::operator bool() const’:
amdcovc.cpp:996:48: error: ‘adapters’ was not declared in this scope
return (!allAdapters && position < int(adapters.size())) ||
^~~~~~~~
amdcovc.cpp: In member function ‘bool AdapterIterator::operator!() const’:
amdcovc.cpp:1001:50: error: ‘adapters’ was not declared in this scope
return !((!allAdapters && position < int(adapters.size())) ||
^~~~~~~~
amdcovc.cpp: In member function ‘int AdapterIterator::operator*() const’:
amdcovc.cpp:1005:39: error: ‘adapters’ was not declared in this scope
{ return allAdapters ? position : adapters[position]; }
^~~~~~~~
amdcovc.cpp: At global scope:
amdcovc.cpp:1009:24: error: ‘vector’ in namespace ‘std’ does not name a template type
const std::vector& activeAdapters,
^~~~~~
amdcovc.cpp:1009:30: error: expected ‘,’ or ‘...’ before ‘<’ token
const std::vector& activeAdapters,
^
amdcovc.cpp: In function ‘void setOVCParameters(ADLMainControl&, int, int)’:
amdcovc.cpp:1019:33: error: ‘activeAdapters’ was not declared in this scope
const int realAdaptersNum = activeAdapters.size();
^~~~~~~~~~~~~~
amdcovc.cpp:1020:5: error: ‘vector’ is not a member of ‘std’
std::vector odParams(realAdaptersNum);
^~~
amdcovc.cpp:1020:32: error: expected primary-expression before ‘>’ token
std::vector odParams(realAdaptersNum);
^
amdcovc.cpp:1020:58: error: ‘odParams’ was not declared in this scope
std::vector odParams(realAdaptersNum);
^
amdcovc.cpp:1021:5: error: ‘vector’ is not a member of ‘std’
std::vector<std::vector > perfLevels(realAdaptersNum);
^~~
amdcovc.cpp:1021:17: error: ‘vector’ is not a member of ‘std’
std::vector<std::vector > perfLevels(realAdaptersNum);
^~~
amdcovc.cpp:1021:50: error: expected primary-expression before ‘>’ token
std::vector<std::vector > perfLevels(realAdaptersNum);
^
amdcovc.cpp:1021:52: error: expected primary-expression before ‘>’ token
std::vector<std::vector > perfLevels(realAdaptersNum);
^
amdcovc.cpp:1021:80: error: ‘perfLevels’ was not declared in this scope
std::vector<std::vector > perfLevels(realAdaptersNum);
^
amdcovc.cpp:1022:5: error: ‘vector’ is not a member of ‘std’
std::vector<std::vector > defaultPerfLevels(realAdaptersNum);
^~~
amdcovc.cpp:1022:17: error: ‘vector’ is not a member of ‘std’
std::vector<std::vector > defaultPerfLevels(realAdaptersNum);
^~~
amdcovc.cpp:1022:50: error: expected primary-expression before ‘>’ token
std::vector<std::vector > defaultPerfLevels(realAdaptersNum);
^
amdcovc.cpp:1022:52: error: expected primary-expression before ‘>’ token
std::vector<std::vector > defaultPerfLevels(realAdaptersNum);
^
amdcovc.cpp:1022:87: error: ‘defaultPerfLevels’ was not declared in this scope
std::vector<std::vector > defaultPerfLevels(realAdaptersNum);
^
amdcovc.cpp:1023:5: error: ‘vector’ is not a member of ‘std’
std::vector changedDevices(realAdaptersNum);
^~~
amdcovc.cpp:1023:17: error: expected primary-expression before ‘bool’
std::vector changedDevices(realAdaptersNum);
^~~~
amdcovc.cpp:1024:15: error: ‘changedDevices’ was not declared in this scope
std::fill(changedDevices.begin(), changedDevices.end(), false);
^~~~~~~~~~~~~~
amdcovc.cpp:1027:30: error: ‘ovcParams’ was not declared in this scope
for (OVCParameter param: ovcParams)
^~~~~~~~~
amdcovc.cpp:1031:42: error: ‘struct OVCParameter’ has no member named ‘adapters’; did you mean ‘allAdapters’?
for (int adapterIndex: param.adapters)
^~~~~~~~
amdcovc.cpp:1041:30: error: ‘ovcParams’ was not declared in this scope
for (OVCParameter param: ovcParams)
^~~~~~~~~
amdcovc.cpp:1071:30: error: ‘ovcParams’ was not declared in this scope
for (OVCParameter param: ovcParams)
^~~~~~~~~
amdcovc.cpp:1073:44: error: ‘struct OVCParameter’ has no member named ‘adapters’; did you mean ‘allAdapters’?
for (AdapterIterator ait(param.adapters, param.allAdapters, realAdaptersNum);
^~~~~~~~
amdcovc.cpp:1130:30: error: ‘ovcParams’ was not declared in this scope
for (OVCParameter param: ovcParams)
^~~~~~~~~
amdcovc.cpp:1132:44: error: ‘struct OVCParameter’ has no member named ‘adapters’; did you mean ‘allAdapters’?
for (AdapterIterator ait(param.adapters, param.allAdapters, realAdaptersNum);
^~~~~~~~
amdcovc.cpp:1143:30: error: ‘ovcParams’ was not declared in this scope
for (OVCParameter param: ovcParams)
^~~~~~~~~
amdcovc.cpp:1145:44: error: ‘struct OVCParameter’ has no member named ‘adapters’; did you mean ‘allAdapters’?
for (AdapterIterator ait(param.adapters, param.allAdapters, realAdaptersNum);
^~~~~~~~
amdcovc.cpp:1185:5: error: ‘vector’ is not a member of ‘std’
std::vector fanSpeedSetups(realAdaptersNum);
^~~
amdcovc.cpp:1185:30: error: expected primary-expression before ‘>’ token
std::vector fanSpeedSetups(realAdaptersNum);
^
amdcovc.cpp:1185:62: error: ‘fanSpeedSetups’ was not declared in this scope
std::vector fanSpeedSetups(realAdaptersNum);
^
amdcovc.cpp:1188:30: error: ‘ovcParams’ was not declared in this scope
for (OVCParameter param: ovcParams)
^~~~~~~~~
amdcovc.cpp:1190:44: error: ‘struct OVCParameter’ has no member named ‘adapters’; did you mean ‘allAdapters’?
for (AdapterIterator ait(param.adapters, param.allAdapters, realAdaptersNum);
^~~~~~~~
amdcovc.cpp:1198:30: error: ‘ovcParams’ was not declared in this scope
for (OVCParameter param: ovcParams)
^~~~~~~~~
amdcovc.cpp:1200:44: error: ‘struct OVCParameter’ has no member named ‘adapters’; did you mean ‘allAdapters’?
for (AdapterIterator ait(param.adapters, param.allAdapters, realAdaptersNum);
^~~~~~~~
amdcovc.cpp: In function ‘int main(int, const char**)’:
amdcovc.cpp:1317:5: error: ‘vector’ is not a member of ‘std’
std::vector ovcParameters;
^~~
amdcovc.cpp:1317:29: error: expected primary-expression before ‘>’ token
std::vector ovcParameters;
^
amdcovc.cpp:1317:31: error: ‘ovcParameters’ was not declared in this scope
std::vector ovcParameters;
^~~~~~~~~~~~~
amdcovc.cpp:1318:5: error: ‘vector’ is not a member of ‘std’
std::vector choosenAdapters;
^~~
amdcovc.cpp:1318:17: error: expected primary-expression before ‘int’
std::vector choosenAdapters;
^~~
amdcovc.cpp:1330:43: error: ‘choosenAdapters’ was not declared in this scope
parseAdaptersList(argv[i]+11, choosenAdapters, chooseAllAdapters);
^~~~~~~~~~~~~~~
amdcovc.cpp:1337:46: error: ‘choosenAdapters’ was not declared in this scope
parseAdaptersList(argv[++i], choosenAdapters, chooseAllAdapters);
^~~~~~~~~~~~~~~
amdcovc.cpp:1346:46: error: ‘choosenAdapters’ was not declared in this scope
parseAdaptersList(argv[i]+2, choosenAdapters, chooseAllAdapters);
^~~~~~~~~~~~~~~
amdcovc.cpp:1348:46: error: ‘choosenAdapters’ was not declared in this scope
parseAdaptersList(argv[++i], choosenAdapters, chooseAllAdapters);
^~~~~~~~~~~~~~~
amdcovc.cpp:1383:5: error: ‘vector’ is not a member of ‘std’
std::vector activeAdapters;
^~~
amdcovc.cpp:1383:17: error: expected primary-expression before ‘int’
std::vector activeAdapters;
^~~
amdcovc.cpp:1384:56: error: ‘activeAdapters’ was not declared in this scope
getActiveAdaptersIndices(mainControl, adaptersNum, activeAdapters);
^~~~~~~~~~~~~~
amdcovc.cpp:1388:32: error: ‘choosenAdapters’ was not declared in this scope
for (int adapterIndex: choosenAdapters)
^~~~~~~~~~~~~~~
amdcovc.cpp:1398:25: error: ‘choosenAdapters’ was not declared in this scope
choosenAdapters, useAdaptersList && !chooseAllAdapters);
^~~~~~~~~~~~~~~
amdcovc.cpp:1401:25: error: ‘choosenAdapters’ was not declared in this scope
choosenAdapters, useAdaptersList && !chooseAllAdapters);
^~~~~~~~~~~~~~~
make: *** [amdcovc.o] Error 1
I get always the following error:
user@mine1:~$ sudo amdcovc memclk:0:1=900
WARNING: setting AMD Overdrive parameters!
IMPORTANT NOTICE: Before any setting of AMD Overdrive parameters,
please STOP ANY GPU computations and GPU renderings.
Please use this utility CAREFULLY, because it can DAMAGE your hardware!
Performance level out of range in 'memclk:0:1=900'!
NO ANY settings applied. Error in parameters!
The same happens with all commands found in the list of examples, e.g.
amdcovc coreclk:1:0=900 coreclk:0:1=1000
Do I miss something or pass wrong values?
Setup:
Ubuntu 16.04, Radeon RX 580, OpenCL installed.
user@mine1:~$ uname -a
Linux mine1 4.4.0-93-generic #116-Ubuntu SMP Fri Aug 11 21:17:51 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
user@mine1:~$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"
amdcovc:
user@mine1:~$ amdcovc
Adapter 0: Device 67df
Core: 1365 MHz, Mem: 1750 MHz, CoreOD: 0, MemOD: 0, Temp: 72 C, Fan: 72.9412%
Core clocks: 300 600 900 1145 1215 1257 1300 1365
Memory Clocks: 300 1000 1750
Adapter 1: Device 67df
Core: 1365 MHz, Mem: 1750 MHz, CoreOD: 0, MemOD: 0, Temp: 72 C, Fan: 46.6667%
Core clocks: 300 600 900 1145 1215 1257 1300 1365
Memory Clocks: 300 1000 1750
Adapter 2: Device 67df
Core: 1365 MHz, Mem: 1750 MHz, CoreOD: 0, MemOD: 0, Temp: 72 C, Fan: 81.9608%
Core clocks: 300 600 900 1145 1215 1257 1300 1365
Memory Clocks: 300 1000 1750
... and so on
I am using linux kernel 4.18 with busybox (headless no xorg, and distro-less - not debian,not gentoo, just kernel.org compiled) and amdgpu-pro driver unpacked to /usr/lib works very well for mining purposes. However not best way, because for years i was looking for some way to set memory/core clocks and voltages. Only way i found - is to hard-flash that in bios. No other way works for either 290x, 390 and 480 cards.
for 290x default clock is 1250mhz and covc detects it.
amdcovc -coreclk:0=1500
write that it set up to 1500 (under windows that was good setting)
but nothing changes and calling amdcovc
again reports that is is still at 1250.
neither can i change it when miner turned off, neither during mining (i tried, despite gpu may easily hang)
what could be wrong? and how to set core clocks and voltages (only 4 params that actually need to be manipulated, since correct dram timing strap is set and fan is always at 100%)
my problem situation is not an amdcovc issue, but amdcovc doesn't detect that "it has not changed parameters" and just reports success - that may be an amdcovc issue.
anyway you could give me a little help, giving me a hint on "what is responsible to amdgpu overclocking in kernel", because of OD overdrive 0-20% (integer!!!) is totally unsuitable for setting frequency precisely.
anyone who knows what went wrong?
g++ -Wall -O3 -std=c++11 -I/home/mat/docs/src/ADL_SDK9/include -c -o amdcovc.o amdcovc.cpp
amdcovc.cpp:48:32: fatal error: ../include/adl_sdk.h: No such file or directory
compilation terminated.
Makefile:26: recipe for target 'amdcovc.o' failed
make: *** [amdcovc.o] Error 1
What's the status of this project? Does it all still work?
I installed amdgpu-pro-17.30, but there are not include this library?
how to resolve the problem?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.