GPU SAPPHIRE Pulse Radeon RX 570 ITX

lhl

SFF Lingo Aficionado
Nov 16, 2015
121
143
Nice! I am contemplating on getting this one to try to cool it passively. Any chance you could share its BIOS? I need to check BIOS DDR5 clocks and TDP defaults to be sure this can be passively cooled in a reasonable manner...
Also, would you be so kind and share exactly how many mm the PCB goes above the metal bracket?

I'm pretty intimately familiar w/ the Sapphire Nitro 470 BIOS's now and I'm sure you'll be able to undervolt the Polaris chips to your heart's content. A tool like WattTool will allow you to modify the VDDC & VDDCI as well as VDDC offsets for sure, although the VRAM voltage may be hardware controlled like the 4X0's. With 470s you can easily run them undervolted at like 800-900mV (vs 1100mV+ stock) at like w/ decent 1100-1200MHz clocks that decreases GPU power usage by like a good 30W+. You have like 7 or 8 power states to control so I don't think it'd be much of a problem to find whatever power/heat envelope you need.

If you want a tool (besides hex editing or basic Atom decoding) for easy BIOS editing you'll need to boot into Windows. There's the open source Polaris BIOS Editor (there are some forks w/ more hardware support) or the closed-source but more up to date SRB editor. If you're using Linux you can control most things via ROC-smi, OhGodATool or even directly editing the AMD kernel module.
 

Zgembo

Trash Compacter
Apr 14, 2017
53
108
I'm pretty intimately familiar w/ the Sapphire Nitro 470 BIOS's . . .
Thanks, good to know who to bother case my BIOS modding attempt starts heading awkward direction ;)
I've actually invested some time into it, and it seems to me that the only realistic way to play with VBIOS modding is to do it in Windows, due to lack of proper VBIOS flasher (PBE works in wine just fine). I don't mind Windozing for a bit really, at least until I reach the point of a satisfactory VBIOS mod. So far I've managed to down-volt the GPU nicely, and restrict its TDP & power usage to ~85W (vs default ~120W) by meddling with PowerTune values. Haven't touched the memory voltage/clocks yet, that seems bit more complex with all the timings and such...

The one thing that gave me some scary moments at the beginning was the dead UEFI/GOP POST when modding VBIOS. I've found some random RX480 GOP image @ overclock.net and to my utter surprise, injecting it over the existing one fixed pure-UEFI POST. However, I don't feel very comfortable with having some unverified GOP code sitting in UEFI memory space, so if you know a reliable & trusted way to fix/replace UEFI GOP, or general Polaris VBIOS modding advice, please do not hesitate to share.

Cheers!
 

lhl

SFF Lingo Aficionado
Nov 16, 2015
121
143
The one thing that gave me some scary moments at the beginning was the dead UEFI/GOP POST when modding VBIOS. I've found some random RX480 GOP image @ overclock.net and to my utter surprise, injecting it over the existing one fixed pure-UEFI POST. However, I don't feel very comfortable with having some unverified GOP code sitting in UEFI memory space, so if you know a reliable & trusted way to fix/replace UEFI GOP, or general Polaris VBIOS modding advice, please do not hesitate to share.

Err, why not restore from your stock VBIOS image - although anyone reckless enough to mod their BIOS w/o taking a snapshot first I suppose deserves whatever they get. :p

In seriousness, none of my mods have ever touched/messed w/ the GOP/bootup process so not sure what happened. There are only a few hex values you really needs to touch if you're looking solely to lower power usage. I'd recommend doing all tweaking with a tool like WattTool / monitoring in GPU-Z in Windows before burning it into VBIOS (there are no tools to monitor VDDC / exact fan RPM, or to exactly adjust voltage / voltage offsets in Linux). Note, you can do some rough voltage control in Linux since you can select P-states easily and adjust clocks. Also it looks like you can use OhGodATool to do state modifications as well although I haven't dug into it since it was only released recently and I've already hardcoded my numbers into VBIOS; note you can also directly edit the amdgpu kernel memory and specify exact numbers but that doesn't seem like it has an advantage over the alternatives). Note, there is a Linux atiflash executable, although you need to get it either through some mining distros like ethOS, Simplemining.net or from a Russian message board (not the best source for running binaries as root. :)

So you know, my changes have pretty much been for optimizing mining efficiency, but most of the stuff is pretty applicable so I'll go through my list:
  • VDDC offset for the Nitros are default 4 (25mV) - I've changed it to 0, make math easier?
  • You can optimize in a bunch of ways, but for my use case, I aimed for maximum RAM-speed at 1500-strap memory timings (memory Voltage is hardware controlled at about 1.5V and you can't change it, the VDDCi adjustment is only for the memory controller voltage) and then I work from there. For me, mostly I can get reliably around 1940-1960MHz (although one of my cards does 2080MHz w/o breaking a sweat) and I can usually lower memory core voltage to 960mV w/o issues
  • From there I lower my clocks to the point where I am still at 100% controller load (or looking at reported performance and calculating against GPU-Z's GPU W and VDDC) - there's a sweet spot where you're trading off several percent power usage for each 0.1% perf gain. In any case, for my use cases I usually end up clocking my P7 around 1160-1240 at around 900-960mV. You can get much lower w/ sometimes slightly lower clocks but for a general low power use case, I'd just pick a voltage/desired power consumption level and optimize clocks from there. For those reading along, Sapphire clocks their stock Nitro+ 470s at something like 1260MHz/1130mV
  • These basic changes should be it, but I noticed that very occasionally on some cards sometimes VDDC is way higher than it should be (like maxed out) so I've done my best to limit the impact of that - I lower my PowerPlay percentage to 0% (disabling it basically) and for Powertune I've locked down Max Power to slightly above my GPU-Z W reading and also lowered the max temp (from 90 to 85) which should reduce any chance of thermal runaway - if you're passively cooling, maybe lowering the shutdown temp a few degrees might also be a good idea.
  • Although in your case it doesn't apply, just for completeness listing changes, I've adjusted my fan curves a bit - target temp I've lowered from 75 to 72, min PWM I've set to 25% and Max RPM I've increased from 2200 to 2400 although
For some more concrete numbers, I have an A1638 Nitro+ 470 that has a decent 78.3 ASIC score / Elpida RAM that I run w/ GPU 1280MHz/960mV and Memory 2080MHz/960mV that averages measured GPU W of 86.2W, VDDC 0.9815V and fan RPM 965 @ 72C at full memory workload.

I just picked up an A1639 Nitro+ 470 w/ a crap 72.5 ASIC score / Elipida RAM. The memory doesn't go above 1950 MHz w/o starting to get some screen corruption, so I run i at GPU 1180MHz/900mV Memory 1940MHz/960mV. Measured GPU W is 71.3W and VDDC 0.9501, fanspeed also around 1000RPM.

(GPU-Z's GPU-only W of 70-75W equals about 100W or so total card usage)

Oh, while the Linux AMD drivers don't do a BIOS signature check, you'll need to run atikmdag-patcher to run w/ customized BIOSes w/ most recent Windows Drivers (like 16.4 and up or something like that).
 

zovc

King of Cable Management
Jan 5, 2017
852
603
Boards are sadly becoming taller and taller nowadays. To the point that it is close to impossible to get one that isn't protruding from the PCI bracket.

I don't think my Galax 1070 Mini protrudes from the PCI bracket at all.
 

Zgembo

Trash Compacter
Apr 14, 2017
53
108
Err, why not restore from your stock VBIOS image - although anyone reckless enough to mod their BIOS w/o taking a snapshot first I suppose deserves whatever they get. :p

I do deserve to know more about what is really going on here :p

In seriousness, none of my mods have ever touched/messed w/ the GOP/bootup process so not sure what happened. There are only a few hex values you really needs to touch if you're looking solely to lower power usage. I'd recommend doing all tweaking with a tool like WattTool / monitoring in GPU-Z in Windows before burning it into VBIOS (there are no tools to monitor VDDC / exact fan RPM, or to exactly adjust voltage / voltage offsets in Linux). Note, you can do some rough voltage control in Linux since you can select P-states easily and adjust clocks. Also it looks like you can use OhGodATool to do state modifications as well although I haven't dug into it since it was only released recently and I've already hardcoded my numbers into VBIOS; note you can also directly edit the amdgpu kernel memory and specify exact numbers but that doesn't seem like it has an advantage over the alternatives).

So far I've identified safe voltage limits in WattMan, and burned those together with some pretty conservative TDP, W & A limits to my first ever VBIOS mod. Next thing I did was to add custom GOP (a mysterious one from overclock.net). Haven't played with any RAM things, but that will be the next step for sure...

Note, there is a Linux atiflash executable, although you need to get it either through some mining distros like ethOS, Simplemining.net or from a Russian message board (not the best source for running binaries as root. :)

Thanks for the tip! Not that I trust some random executable attached at Romanian coin forum better than the Russian one, I've risked running it despite. Found at http://bitcoinbg.eu/forum/viewtopic.php?f=6&t=3967, it's version 4.25 indeed, 64bit binary, and it seems to be working well, providing neat alternative debricking env via ssh case i loose video when modding VBIOS... This is what Linux atiflash binary sais about my card:
Code:
root@B350GTN:~# ./atiflash -ai
Adapter  0    (BN=09, DN=00, PCIID=67DF1002, SSID=E3431DA2)
    Asic Family        :  Ellesmere
    Flash Type         :  M25P40/c    (512 KB)
    Product Name       :  D00034 Polaris20 XL A1 GDDR5 128Mx32 4GB 300e/300m
    Bios Config File   :  343L0506.S07
    Bios P/N           :  red-actedt-his
    Bios Version       :  015.050.002.001.000000
    Bios Date          :  03/17/17 02:11
    ROM Image Type     :  Hybrid Images
    ROM Image Details  :
        Image[0]: Size(60416 Bytes), Type(Legacy Image)
        Image[1]: Size(59392 Bytes), Type(EFI Image)

root@B350GTN:~# ./atiflash -t 0
Pass

root@B350GTN:~# ./atiflash -s 0 check.rom
0x80000 bytes saved, checksum = 0xDD41

root@B350GTN:~# ./atiflash -biosfileinfo check.rom
    Product Name is :    D00034 Polaris20 XL A1 GDDR5 128Mx32 4GB 300e/300m
    Device ID is    :    67DF
    Bios Version    :    015.050.002.001.000000
    Bios P/N is     :    red-actedt-his
    Bios SSID       :    E343
    Bios SVID       :    1DA2
    Bios Date is    :    03/17/17 02:11

So you know, my changes have pretty much been for optimizing mining efficiency, but most of the stuff is pretty applicable so I'll go through my list:
  • VDDC offset for the Nitros are default 4 (25mV) - I've changed it to 0, make math easier?
Ehmmm, mind to explain how? I am new to this VDDC stuff... Would just down-clocking RAM help reduce power use?
  • You can optimize in a bunch of ways, but for my use case, I aimed for maximum RAM-speed at 1500-strap memory timings (memory Voltage is hardware controlled at about 1.5V and you can't change it, the VDDCi adjustment is only for the memory controller voltage) and then I work from there. For me, mostly I can get reliably around 1940-1960MHz (although one of my cards does 2080MHz w/o breaking a sweat) and I can usually lower memory core voltage to 960mV w/o issues
So, how do I down-volt memory controller only? Which hex values are driving this?
For some more concrete numbers, I have an A1638 Nitro+ 470 that has a decent 78.3 ASIC score / Elpida RAM that I run w/ GPU 1280MHz/960mV and Memory 2080MHz/960mV that averages measured GPU W of 86.2W, VDDC 0.9815V and fan RPM 965 @ 72C at full memory workload.

This particular RX 570 Mini ITX is also Elpida DDR5, ASIC is ~74% and I get about the same power consumption averages (although the GPU barely touches higher power states, due to the W limit I presume). One full hour of furmark, and the temp reaches 71C.

Some teaser pics:
 
Last edited:
  • Like
Reactions: NATi and Phuncz

InfernoZeus

SFF Lingo Aficionado
May 23, 2017
98
53
New review from KitGuru. Summary:
The Sapphire RX 570 Pulse ITX is an excellent, SFF RX 570 solution. If you need the absolute smallest graphics card capable of pushing games at high settings on a 1080p monitor or HDTV, this is a great contender for your money. However, I would expect many consumers with small cases would still be able to fit the full-size RX 570 Pulse card, as it is really not much bigger than its ITX sibling yet offers higher frequencies, a more effective cooling solution and a snazzy backplate.

Pros
  • Will fit in essentially every ITX case on the market.
  • Performs very similarly to other RX 570 cards, despite the lack of factory overclock.
  • Good value.
  • Overclocks very well.
Cons
  • Lacks a backplate.
  • I would imagine SFF/ITX system owners would still be able to fit the full-size RX 570 Pulse card.
 
Last edited:
  • Like
Reactions: Zgembo