Overclocking the Pi3b+ GPU (Results)
-
@quicksilver Memtester did not catch this. I just let it sit at the EmulationStation menu, since that seemed very effective at uncovering the instability. I had tested for at least 24h at 550 MHz and Memtester did not find any issues. Could be because the troublesome address(es) are located in an area used by Raspbian (I believe I tested 800 MB). Or the load put on the RAM by EmulationStation is just what’s needed to lure out the failure condition in this specific hardware sample.
This is one of the insidious aspects of overclocking: you test the overclock with something considered as ”high load” and then end up having issues in comparably ”low load” scenarios. Instruction mix and access patterns are key here. What I usually do when I overclock desktops is that I find the highest stable frequency at a specific voltage, using a few different tests. I then increase the voltage by 0.05. This reduces the likelihood that you’re operating on the verge of stability and ensures that you have some headroom for transistors that did not get exercised enough (or at all) by whatever test you ran.
-
Quick update: The board is not stable with SDRAM @ 550 MHz and 1.35V. So, time to test lower frequencies. I haven't bothered starting another test yet, though. Either way, this board is not all that fond of higher frequencies. Guess that's to be expected, given that the PI 3B+ can pretty much be considered overclocked from the factory (there's a very small margin for higher frequencies on the CPU and the memory is actually only specified for 400 MHz operation).
-
RPI3B+
I did some under clocking to see where I amarm_freq=900 gpu_freq=250 sdram_freq=400 over_voltage=-2 #Drop voltage to the default over_voltage_minimum 1.2000V* #over_voltage_sdram_min=-17**
I was surprised as the emulations are largely the same all around, comparatively.
Most noticeably sound will drop during reads, in about every other game that is written that way.
The slowdown in Metal Gear Solid is exactly the same.
Dreamcast, Deadly skies, has its moments with I guess 15-30fps though I don't know how to display fps for reicast.
Armored Core 3 for PSP, drops down to a cool almost manageable 15fps.
GLideN64, Castlevania, nearly perfect.
Boot time lengthened maybe 2 seconds, and another 2 seconds loading ES.Impressive results, probably because of the L2 cache that it is alone better than the rpi2.
I double checked the config with vcgencmd.*The ARM CPU and the AVS.
I'll add a table(a.) to make this information easier to assess and analyze, I collected a lot of data including over_voltage_avs withvcgencmd get_config int | grep -E 'over_voltage'
**The over_voltage_sdram_min
This wholly took me a day, I tested a lot of values. I'll add a second table(b.) for the significant ones. I need to get some sleep before I do that. -
Here it is I'm finally done.
You can use spread32 or OpenOffice to view the book1voltage.xls
I thought I was going to learn more about the AVS but it was much too inconsistent to make progress yet. There are some maxims that are easy to read and may be useful.There are a few save utilities, save files, a font pack and and PSP compatibility sheet. I have internet no longer, so this is my goodbye gift and farewell.
I have internet again, what was only a day... I added a revision with more room to add variables.
-
@Brunnis For a while it seemed like everything was ok but now I am getting "Emulation Station Crashed" messages again, about once per day. Almost always seems to occur when I have left my pi idle in ES and then come back to see that message on my screen and the pi is unresponsive (have to reboot via SSH). Im completely removing my overclock now to see if this is in anyway the issue.
The interesting thing is that I have overclocked all the pi's I have ever owned and have done extensive stability testing on all of them but I have never seen this ES crashing issue before I updated to the 4.4 stretch image needed for my 3b+.
-
Well, emulation station just crashed again for me. This time with no overclock. Each time it crashes I get a little pop up suggesting to check ROM folder permissions and GPU split.
@pjft is there a log I can check to see why ES keeps crashing for me?
-
Increase the virtual memory that ES uses in the "start" menu. "other settings"; "vram limit"
Reset rom folder permissions is in RetroPie Setup >> Configuration / tools >> resetromdirs
and it should be safe to use.I don't know about the logs, there may be one in /dev/shm/ after a crash.
There could be a bad video, you could try changing "UI Settings" ;; "GamelistView Style" to "detailed".
I usually have to increase the v-ram limit.
-
sdram_freq=600
p=7
i=3
c=3 -
Also the RPi3B and RPi2Bv1.2 use the BCM2837A0 with Cortex-A53
The RPi3B+ uses the BCM2837B0 a revision with fundamentally the same quad-core ArmV8 Cortex A53 but with power optimizations all around and for the dual-core videocoreIV, aswell the obvious heatspreader over the top.I originally thought they were the same too.
I read also that the 3B used armv7 with the older firmwares although it had support for the 64 bit armv8. I can't say that was a reliable source though.
-
@quicksilver There's a log for the "current" session on ~/.emulationstation/es_log.txt (and there's a log for the previous session as well, which is likely es_log.txt.old or something, in case you restart ES before getting the log).
It might not have anything useful, though, but it's certainly worth a shot.
-
@quicksilver
Right after I replied to you about your ES crash. I have been using Ubuntu x86 Retropie for a while, anyway I booted up my raspberry pi the next morning and the first screen I see is ES has crashed. I still don't know what it was, I remember I had some experimental settings that I wanted to change first boot, but it was nothing extreme.I'm testing sdram_freq=650. P=8 I=6 C=4, schmoo=none, 0x0?
I realized that all of the core frequencies have a great effect on the sdram stability.
Where gpu over 500 was too much, I set it to default 300, and have not had any problems.I think the sdram controller doesn't work right at more than over voltage 4. Could use some more testing.With
gpu_freq=300
core_freq=600
sdram_freq=650
over_voltage_sdram_p=8
over_voltage_sdram_i=6
over_voltage_sdram_c=4So far passed memtester (100M x 3) (20M x 10), need to try more between boots.
As a side note, 300GPU didn't seem to effect n64 noticeably.
However switch to an x2 interlaced resolution did improve the 3d stuttering and lag by quite a lot. It didn't fix the sound stuttering during some loadscreens etc. though.nevermind, that doesn't make sense, it must have been my vm settings or some fluke. -
I apologize for the quintuple post.
I discovered last week that it is possible to dial in a specific voltage, by entering the number in micro volts to the config. For example using 31250 (1 step and 6250uV) will give you voltage 1.2313V +AVS. The only exception to this is the sdram_physical which appears to only go by step and refuses to be set to 1.2000V with sdram_min. However if you entered exactly between the steps; 37500 (1 step and 12500(1/2step)) and 37501(1.5steps+1uV); the sdram voltage will read 1.2250V and 1.2500V respectively. Suggesting it is taking some consideration in the rounding or reading.
sdram_freq=667 over_voltage_sdram_(p=7)(i=7)(c=4)
It passed a number of single-threaded tests, multi threaded tasks were a failure and especially with a high arm_freq. As for its usability I'd call it unreliable and not recommended until a different configuration is explored. -
@Efriim I haven't been on my pi since yesterday so haven't really been able to check yet but since I'm getting crashing at stock speeds I'm thinking my issue is not related to my overclock. If it crashes again I'm hoping the ES system log will note something.
With recent firmware (within the last year or so?) schmoo=0x02000020 is set automatically if your sdram is overclocked to 500mhz or greater.
Edit: so ES just crashed again. I don't see anything out of the ordinary in the log unfortunately. Not sure what to do next.
-
@quicksilver
Did you uninstall the Carbon Default Theme? I did and I seem to remember it crashing because of that a long time ago, usually right after I update and it checks the resources there for some reason.
Or it could be the OMX player or a video or another resource, try reinstalling your theme.
I don't know what caused my ES crash either.I tested with the schmoo value on again, the kernel memory crashes on the first 100M run, it lets you know pretty early on. It won't crash without schmoo, but maybe I should find a different memory test app.
Maybe it is auto-configured, yet not necessarily 0x02000020
Maybe that it is not working with 0x02000020 is a good sign that it is bad configuration. -
So I discovered the es crash issue only occurred if I was on the game select menu after about 15 minutes or so. It didn't occur sitting on the system select carousel menu.
I ended up reflashing my card to a back up I made a few weeks ago and left my pi on all day and just checked it just now and it was still running fine. Only thing I can think of is that I updated something or made some other change that made ES unstable.
Edit: Im thinking it was an apt-get update/upgrade that screwed things up. I need to stop messing with things on my pi and just play games :)
-
@quicksilver
I don't know what caused the ES to crash on my side, I remember updating to retropie 4.4.11 and then lr-pcsx. I think the last thing I was doing with it was using my phones rndis usb ethernet(USB tether) using androidip neighbor
or reading the/proc/net/arp
cache to get the remote ip address and connect to the pi with ssh.I furthered my testing of the 667mhz sdram. Opening 3 ssh and running 3 simultaneous memtesters at the same time on 3 of the 4 cores. Running all four cores gave me low-voltage warnings, and well... failures. I cheated though - I lowered the arm_freq to 1450, running multiple cores and this ram didn't seem to like above 1525mhz(I could have tried over_voltage=2 but I don't think letting the cpu use more volts is going to help low-voltage). Anyway it passed, (100M 4)(3xSSH) and (5M 10)(3xSSH) simultaneous ssh connections.
And it had two failures with (100M 4)(4xSSH). Failure on the first SSH on the first loop on Bit Flip 157, it didn't stop the sequence, the rest of the test continued. Failure on the second SSH on the third loop on Bit Flip 154. Then the test completed. And it had one failure with (5M 10)(4xSSH) on the third SSH on loop4 Bit Flip 154.
I don't know where to go from there, I want to get the arm_cpu back up to 1.5ghz. I should try to adjust the sdram voltage beyond or below 774 the tests are getting longer, I'd like to see less than 1 failure.
I should just play video games too.
-
Just to add to the list. I'm also experiencing ES crashes sitting on the game selection screen. I receive the message about memory and default theme and type exit to reload and it seems fine. I've never had an issue before not a single crash but now it's crashed 3 times in the past week running on a Pi 3, Retropie 4.4.11, RA 1.7.6 & ES 2.8.2.
-
After a brief pause, I've started running some tests again. I just concluded a test of letting my Pi idle at the system selection screen for 8 days with the following settings:
sdram_freq = 500
over_voltage_sdram = 6No crash or other issues. In a previous test at 500 MHz but with no over voltage, it did crash. So it seems SDRAM over voltage does grant some additional headroom. Running a test now at 530 MHz. 550 MHz is not stable even with over voltage at 6 (tested previously as well).
Regarding the discussion around ES instability: So far, I've seen nothing to suggest that ES itself is unstable in my setup (ES 2.7.6, only NES and SNES games, default theme).
-
@Brunnis
What is the make of the pi3b+
Honest the default value for sdram is 500mhz *though lpddr2 is 400mhz
and honest the schmoo value if set has crashed my system numerous times.
but also over_voltage_sdram setting is too high for the controller.
using
over_voltage_sdram_c = (Controller) 2-4 should suffice and not halt the system
over_voltage_sdram_i = (I/O bus) esoteric voltage relevance, ive seen this setting on par with the controller but I have mine equal to the physical
over_voltage_sdram_p = (Physical) needed for ??? mhz
as far as the default voltages, I think they are C=2 I=2 P=1Though maybe you are on to something, I have not tested extensively with 500mhz sdram
I've had 1 more ES crash in the past couple weeks, randomly. (ES 2.8.2 variable games and dos folders, switch theme)
updating to ES 2.8.2 will enable the built-in scraper to work. -
@Efriim said in Overclocking the Pi3b+ GPU (Results):
What is the make of the pi3b+
I believe it's an RS board.
@Efriim said in Overclocking the Pi3b+ GPU (Results):
Honest the default value for sdram is 500mhz *though lpddr2 is 400mhz
No, the default was 500 MHz at Pi 3 B+ release. It was later lowered to 450 MHz due to instability on some boards. And, seeing how my board is not able to run at 500 MHz with default voltage, that was probably a wise decision.
@Efriim said in Overclocking the Pi3b+ GPU (Results):
also over_voltage_sdram setting is too high for the controller
It's probably unnecessary, but it's also probably not harmful. I'm guessing that neither controller nor I/O voltage need to be set particularly high. As far as I know, the physical voltage is the voltage supplied to the actual RAM chip and also the one most likely to affect stability.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.