AMD RyZen CPU Architecture for 2017

Lots of new BIOS for MSI boards: https://forum-en.msi.com/index.php?topic=283344.0

Check if there's one for your board with AGESA 1.0.0.6 :)
thanks! I've been checking daily here, but they aren't official for now. I cant wait to try it... Checked the links your shared but I didn't find the beta bios file when the links there redirect you to the website. This is the mobo I have:

https://msi.com/Motherboard/support/B350M-GAMING-PRO.html#down-bios

I shall keep looking in the posts from that forum. Thanks again @Clukos ! Hope god gives you many children.

EDIT
: Found it! Gotta share my impressions later today upon restarting and loading bios defaults -the procedure they recommend.
 
ok, I managed to install the new BIOS. The RAM still doesn't work properly at 3200MHz, it runs at 2666MHz max, like before. Made some tests and it either restarts after 5 tries (if I set it at 3200MHz) or it doesn't restart at all (when I set it at 2933MHz, so I had to perform a second bios battery removal and wait a few minutes :D , but I don't want to wear it much nor risk it, so it's the last time I try to go over 2666MHz except there is a specific update for this RAM module).

That's the bad news. But the good news is that now I could set the memory timings. :) A mixed bag here. At 14-14-14-14-34 it is stable. I tried to make the timings tighter at 12-12-12-12-32 and 12-12-12-12-36, but to no avail, the OS detected an illegal operation. That's not risky so it's okay to try.

The tightest timings I could get running without issues are:

14-14-14-14-28
and
13-13-13-13-26 (current values)

I am going to run some benchmarks later with those two settings and share the results.
 
Last edited:
I am having a hard time finding reliable benchmarks. 3D Mark isn't very consistent in my experience. Call of Juarez DirectX 10 benchmark might do it
 
What RAM do you have @Cyan ?
it is the Corsair Vengeance LPX DDR4 3200 PC4-25600 2x4GB CL16, I think you had this RAM before. It is double rate so it might be the issue.

on a different note, gotta try tighter timings and see what happens :D
 
it is the Corsair Vengeance LPX DDR4 3200 PC4-25600 2x4GB CL16, I think you had this RAM before. It is double rate so it might be the issue.
What you're trying to achieve is way beyond what that ram is capable of. It's designed for high bandwidth medium timings. If you want to run high speed CL14 then you needed to get much more expensive Samsung b-die ram, though I believe we went through this awhile ago.

Under 1.0.0.6 I would advise setting your board to D.O.C.P then change the speed to 2933Mhz. If that posts and is stable, then try 3066 then 3200. The timings however will likely need to be CL16 and 18-18-38 sub timings if you want to achieve the high speeds.
 
Hello guys, quick update from my new Ryzen rig:

After 9 long days of waiting, I finally received my AM4 mount for BeQuiet SilentLoop 240 and I was able to push my Ryzen 7 1700 a bit. So far after quick OC I'm sitting at a '2-day' stable OC of 4GHz @1.39V (not tuned in, so probably can go lower) and memory set to 3333MHz CL14-14-14-34-48 with subtimings from DOCP 2133 (read - tight). CPU temperatures under stress test are reaching 65C which is great considering boxed cooler was only good for 3.8GHz 1.31V and 80C under load.



Let me just say that I'm very happy with my upgrade and how well my CPU overclocks! This weekend I will try to push it to 4.1GHz, but 4GHz is a perfect trade-off of power and speed for me.
 
I think eventually I'm going to move to a new case with a CLC. Really not having a very good time overclocking my 1700. I'd prefer to overclock using p-states but I'm trying to find a decent stable voltage above 3.8ghz that doesn't make my system cry. There's a lot of discussion on ocnet about the validity of using LLC as well. Waiting for final 1.0.0.6 BIOS for my board before I play more.
 
What you're trying to achieve is way beyond what that ram is capable of. It's designed for high bandwidth medium timings. If you want to run high speed CL14 then you needed to get much more expensive Samsung b-die ram, though I believe we went through this awhile ago.

Under 1.0.0.6 I would advise setting your board to D.O.C.P then change the speed to 2933Mhz. If that posts and is stable, then try 3066 then 3200. The timings however will likely need to be CL16 and 18-18-38 sub timings if you want to achieve the high speeds.
yes, we did. In fact it is the RAM @Lightman has purchased for his new PC.

Under 1.0.0.6 I would advise setting your board to D.O.C.P then change the speed to 2933Mhz. If that posts and is stable, then try 3066 then 3200. The timings however will likely need to be CL16 and 18-18-38 sub timings if you want to achieve the high speeds.
Thanks for the suggestion. I set the board to D.O.C.P. (A-XMP in MSI mobos) to 2933MHz but it is impossible, the computer never actually starts --it was my third time removing the bios battery. :D

A-XMP to 3200MHz isn't as unstable, but the computer has a hard time starting after a few restarts and sometimes never actually restarts at all. I am going to write a post to MSI telling them about this issue with this RAM. I don't mind the timings as much because, as you say, this is a middle of the ground RAM -speed wise-, but I'd like it to run at 3200MHz.

Hello guys, quick update from my new Ryzen rig:

After 9 long days of waiting, I finally received my AM4 mount for BeQuiet SilentLoop 240 and I was able to push my Ryzen 7 1700 a bit. So far after quick OC I'm sitting at a '2-day' stable OC of 4GHz @1.39V (not tuned in, so probably can go lower) and memory set to 3333MHz CL14-14-14-34-48 with subtimings from DOCP 2133 (read - tight). CPU temperatures under stress test are reaching 65C which is great considering boxed cooler was only good for 3.8GHz 1.31V and 80C under load.



Let me just say that I'm very happy with my upgrade and how well my CPU overclocks! This weekend I will try to push it to 4.1GHz, but 4GHz is a perfect trade-off of power and speed for me.
Welcome to the Radeon Rebels. Enjoy your new computer.
 
As I promised I did some research with timings, and there are a few surprises. I used Call of Juarez DirectX 10 benchmark, which is super stable. And got this. (photos are off screen, I didn't enable Rivatuner). All tests performed at 2666MHz.

13-13-13-13-26

14-14-14-14-28 (slightly better than tighter timings)

as per @Malo suggestion, default values for this RAM. 16-18-18-18-36.

Performance is well above of the curve with the "correct" timings for this RAM, with the other settings surprisingly trailing far behind. :oops::oops:
 
Some initial context around the article behind an adblock-block wall:

Hot on the heels of the 5nm announcement in partnership with IBM Research and Samsung, Globalfoundries is making two announcements around its 7nm manufacturing process. While the 5nm process is still in the test phases, Globalfoundries 7nm is much further along. In fact, today, Globalfoundries is announcing that their 7LP (Leading-Performance) process and FX-7 ASIC platform are available today for partners to start planning to utilize with design kits.

...

Globalfoundries 7nm LP FinFET process could prove to be beneficial for some of Globalfoundries biggest customers like AMD who need the highest performance and density logic and cache memories. Advanced Micro Devices is currently using Globalfoundries 14nm FinFET process to build their new and impressive Ryzen CPUs and APUs. As AMD starts to deliver high performance CPUs and GPUs on a single chip they will need to have as much die area to work with and as low power as they could possibly get. 7nm FinFET would help companies like AMD continue to compete and offer the cutting-edge products that their customers are already starting to expect from them.
 
@Cyan Have you tried out Forza Horizon 3 yet? It works like a charm with Ryzen (or any CPU) after the latest patch on PC :)
 
@Cyan Have you tried out Forza Horizon 3 yet? It works like a charm with Ryzen (or any CPU) after the latest patch on PC :)
No I didn't. I have the original Forza Horizon game, and just found out that Forza Horizon 3 is on sale now, but it still is 35$ and just the other day I purchased The Witcher 3 GOTY edition for 24€, so it's a bit of a stretch for me to pay that. I am saving money for future components (SSD, Vega, large 4k curved monitor). The software I am purchasing as of late is on sale and except for The Witcher 3, less than 20€.

I am talking about my personal case, with a not very high purchasing power (hahahah, your poor, I know). So I have to save some money.
 
Last edited:
From AMD, Software Optimization Guide for AMD Family 17h Processors: http://support.amd.com/TechDocs/55723_SOG_Fam_17h_Processors_3.00.pdf
Interesting notes about write combining.

The processor may combine writes that do not store all bytes of a 64-byte write buffer. These partially
filled buffers may not be closed for significant periods of time and may affect the bandwidth of the
42 Microarchitecture of AMD Family 17h Processor Chapter 2
Software Optimization Guide for AMD Family 17h Processors 55723 Rev. 3.00 June 2017
remaining writes in a stream. Aligning write-combining operations to 64-byte cache line boundaries
avoids having partially full buffers. When software starts a long write-combining operation on a noncache
line boundary, it may be beneficial to place a write-combining completion event (listed in
Table 2 below) to ensure that the first partially filled buffer is closed and available to the remaining
stores.
Pretty basic stuff. However it specifically mentions "may not be closed for significant periods of time". I am just wondering what kind of effect this has if the CPU reads the data again soon (CPU->CPU NT writes & reads in the same frame like Ashes of Singularity).
When a store hits on a write buffer that has been written to earlier with a different memory type than that store, the buffer is closed and flushed.
Does this mean that BAD THINGS HAPPEN if I have two SMT threads running on the same core and one is doing WC writes and the other is just running normal code (lots of writes & reads). Do my write combine buffers get partially flushed all the time? Same question for code that has function calls (function parameters written to stack). Do I need to avoid function calls (other writes) while writing WC data? I have always done my WC writes in tight inner loops (no function calls), but I am just wondering whether not doing it is a problem for Ryzen.
 
Does this mean that BAD THINGS HAPPEN if I have two SMT threads running on the same core and one is doing WC writes and the other is just running normal code (lots of writes & reads). Do my write combine buffers get partially flushed all the time?

There are 8 write combine buffers in a Zen core. Each context has at least one buffer (ie. per thread max is seven).

Once a buffer is full (all 64 bytes written) it is written and released. The problems start when you have partially filled buffers. If your NT stores don't align to 64 bytes, the buffer will sit around, waiting for the last bytes to be stored.

Of both threads on a core is doing NT stores, only four buffers, on average, is available to each. If each thread has multiple simultaneous streams you can end up exhausting the write buffers, causing flushes. Now, imageine a partially filled buffer gets flushed, that would be filled with 64 bytes if it sat around long enough. The next store in this 64 byte region will allocate a new fill buffer. This fill buffer will now be marked partially filled, because the first writes are already flushed, the fill buffer is not released when it is supposed to. You now end up with multiple partially filled buffers that sit around taken up this very limited precious resource.

So:
1. Align you NT stores to 64 byte regions.
1a. If you can't, flush the NT stream when you have written the unaligned start in the first 64 byte region to free the buffer
2. Keep NT streams to a minimum (rewrite code, spread threads with NT writes on different physical cores)

Cheers
 
Last edited:
Back
Top