i used to lost almost one week to make SMOS undervolt.
i can tell: You can undervolt with SMOS.
Which tool you need:
1/ Ohgodatool
2/ rocm-smi
OK, this is steps: (this is 470s)
1/ Check your card core-clock states, mem-clock states, voltage states:
sudo ./ohgodatool -i 0 --show-core
DPM state 0:
VDDC: 800 (voltage table entry 0)
VDDC offset: 0
Core clock: 300
DPM state 1:
VDDC: 65282 (voltage table entry 1)
VDDC offset: -26
Core clock: 466
DPM state 2:
VDDC: 65283 (voltage table entry 2)
VDDC offset: -26
Core clock: 751
DPM state 3:
VDDC: 65284 (voltage table entry 3)
VDDC offset: -26
Core clock: 1019
DPM state 4:
VDDC: 850 (voltage table entry 8)
VDDC offset: -26
Core clock: 1060
DPM state 5:
VDDC: 65286 (voltage table entry 5)
VDDC offset: -26
Core clock: 1126
DPM state 6:
VDDC: 65287 (voltage table entry 6)
VDDC offset: -26
Core clock: 1169
DPM state 7:
VDDC: 850 (voltage table entry 7)
VDDC offset: 0
Core clock: 1060
sudo ./ohgodatool -i 0 --show-mem
Memory state 0:
VDDC: 800
VDDCI: 850
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 300
Memory state 1:
VDDC: 65282
VDDCI: 900
VDDC GFX offset: 0
MVDD: 1000
Memory clock: 2000
sudo ./ohgodatool -i 0 --show-voltage
Voltage state 0:
VDD = 800
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 1:
VDD = 65282
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 2:
VDD = 65283
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 3:
VDD = 65284
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 4:
VDD = 65285
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 5:
VDD = 65286
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 6:
VDD = 65287
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 7:
VDD = 850
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 8:
VDD = 850
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 9:
VDD = 900
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 10:
VDD = 950
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 11:
VDD = 1000
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 12:
VDD = 1050
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 13:
VDD = 1100
CACLow = 0
CACMid = 0
CACHigh = 0
Voltage state 14:
VDD = 1150
CACLow = 0
CACMid = 0
CACHigh = 0
and this is the code i was used to undervolt:
/opt/rocm/bin/rocm-smi --setsclk 0 1 4
sudo /home/miner/ohgodatool -i 0 --mem-state 0 --mem-clock 2000 --core-state 4 --core-clock 1060 --core-vddc-idx 8 --volt-state 8
sudo /home/miner/ohgodatool -i 1 --mem-state 0 --mem-clock 2000 --core-state 4 --core-clock 1060 --core-vddc-idx 8 --volt-state 8
sudo /home/miner/ohgodatool -i 2 --mem-state 0 --mem-clock 2000 --core-state 4 --core-clock 1060 --core-vddc-idx 8 --volt-state 8
sudo /home/miner/ohgodatool -i 3 --mem-state 0 --mem-clock 2000 --core-state 4 --core-clock 1060 --core-vddc-idx 8 --volt-state 8
sudo /home/miner/ohgodatool -i 4 --mem-state 0 --mem-clock 2000 --core-state 4 --core-clock 1060 --core-vddc-idx 8 --volt-state 8
sudo /home/miner/ohgodatool -i 5 --mem-state 0 --mem-clock 2000 --core-state 4 --core-clock 1060 --core-vddc-idx 8 --volt-state 8
sudo /home/miner/ohgodatool -i 6 --mem-state 0 --mem-clock 2000 --core-state 4 --core-clock 1060 --core-vddc-idx 8 --volt-state 8
the command :
/opt/rocm/bin/rocm-smi --setsclk 0 1 4 (it depends on your card, you need check your core-clock states and try to get best number. With me core-clock at state 4 is 1074, 1074 ~= 1060 so i choose it, if i choose higher states, power will increase from 8xW to 12xW) set a cap on your card and dont let it go to higher states.
This is the result:
/opt/rocm/bin/rocm-smi
==================== ROCm System Management Interface ====================
================================================================================
GPU DID Temp AvgPwr SCLK MCLK Fan Perf OverDrive ECC
5 67df 55.0c 86.128W 1060Mhz 2000Mhz 75.69% manual 0% N/A
3 67df 58.0c 81.74W 1060Mhz 2000Mhz 75.69% manual 0% N/A
1 67df 58.0c 83.62W 1060Mhz 2000Mhz 75.69% manual 0% N/A
6 67df 59.0c 81.150W 1060Mhz 2000Mhz 75.69% manual 0% N/A
4 67df 57.0c 85.106W 1060Mhz 2000Mhz 75.69% manual 0% N/A
2 67df 62.0c 86.147W 1060Mhz 2000Mhz 75.69% manual 0% N/A
0 67df 59.0c 84.30W 1060Mhz 2000Mhz 75.69% manual 0% N/A
================================================================================
==================== End of ROCm SMI Log ====================
ETH - Total Speed: 197.066 Mh/s, Total Shares: 22014, Rejected: 0, Time: 125:22
ETH: GPU0 28.127 Mh/s, GPU1 28.140 Mh/s, GPU2 28.143 Mh/s, GPU3 28.268 Mh/s, GPU4 28.135 Mh/s, GPU5 28.131 Mh/s, GPU6 28.122 Mh/
s
PASC - Total Speed: 1914.118 Mh/s, Total Shares: 12283, Rejected: 298
PASC: GPU0 281.269 Mh/s, GPU1 281.403 Mh/s, GPU2 281.428 Mh/s, GPU3 226.147 Mh/s, GPU4 281.348 Mh/s, GPU5 281.306 Mh/s, GPU6 28
1.217 Mh/s
With 580s cards, you can save almost 70W ( 15xW without this tune , after tune it run stable with 8xW)
I forgot, if you mine eth only power is 6xW for 470s cards