After reading a few posts about this subject online and having a picky board/CPU combo myself I figured I'd post my adventures with getting a Samsung B-die kit to work in spec, perhaps followed by a bit of overclocking tomfoolery.
Hardware used: CPU: AMD Ryzen 1600X RAM: F4-3200C14-8GVR (Ripjaws V series 3200 2x8GB cl14, single rank Samsung B-die) Motherboard: Asus x370 Prime Pro; BIOS 5008; CPU µCode 2019-02-04 (08001138)
Software used: Memory latency and bandwidth: Intel Memory Latency Checker Stability testing: Prime 95 followed by memtest86+ System monitoring: System information viewer (for monitoring temperatures) and Ryzen Timing Checker.
For those playing along at home, Intel Memory Latency checker is easier to use with a simple bat script. Just open notepad and copy these lines:
Save as mlcpause.bat in the same folder as mlc for windows is located. If you are using Linux, why are you even reading this part? 😉
Since editing my posts on this forum hasn't been the most fun experience thus far I will just add a new post to this topic now and then. Edits will mostly be used to fix spacing issues.
This topic was modified 9 months ago 2 times by Ype
Before releasing our inner child and playing with all the settings the UEFI has to offer it might be smart to check if the memory modules will plug and play nicely.
Lets start with simply loading the optimized default settings in the BIOS and selecting the basic XMP profile. A quick check with Prime 95 finds errors. Not great. Time for some good old trail and horror!
Just to keep things simple we start by lowering the ram speed just a little. A run with 3133 shows no errors with Prime 95 but the latency is around 78.5. Ouch!
A quick check with Ryzen Timing Checker shows some pretty loose timings but nothing that explains such bad results. Time to get our hands dirty in the BIOS!
Turns out somebody at ASUS thought we'd be more interested in RAM power savings then latency on the desktop. Disabling Power Down Mode.
System is still stable according to prime 95 and the latency is down to around 73.5.
First success of the day! Lets celebrate with a nice cup of coffee!
This post was modified 9 months ago 2 times by Ype
Now that we know that the memory modules are fine, it's time to figure out why the system isn't stable at 3200 Mhz. The procODT 60 raises an eyebrow for me, in my previous memory overclocking adventure (Hynix AFR) setting the procODT to 53.3 Ohm was the difference between not POSTing and full system stability at 3200 Mhz. Let's play with that setting first!
For those still playing along, according to AMD we shouldn't touch a procODT of 80 or above without liquid nitrogen. Raising procODT to 68 has never resulted in stability gains for me so I've never tried the higher procODT values myself. Let me know if anybody out there has a different experience!
After lowering the procODT 53 Prime95 doesn't seem to finds no errors. This would be a good time to double check stability with memtest86+.
I am running two single rank Samsung b-die sticks in memory slots A2/B2. Slots A1/B1 are daisy chained to A2/B2. I double checked this by dialing in an overclock on slots A2/B2, saving the settings, and then see if the same settings would work on A1/B1. It did not.
The memory controller on Zen doesn't seem to like dual rank modules either, but I'd rather run with 2 dual rank memory modules then 4 memory modules in daisy chain. That's what T-topology boards are for. 🙂
If I would start overclocking manually from scratch I'd just set the SOC voltage at 1.1V and the memory to 1.4V so I don't have to worry about those settings right away. I'd rather not change to much right away though in the hopes of makes it easier for people to follow along.
One of the reasons why I am writing this is because the dram calculator doesn't always work for others. The guides I've seen online seem, at least to me, to either be to simple or way to in dept to be of much use to most people. I hope this will serve as a middle way for beginners as well as a way to get in dept responses like yours.
Next post with some different tightened timings coming up. After that I might take a shot at higher memory speeds.
Since we got 3200 stable now would be an excellent time to start tightening timings.
There is nothing wrong with being a bit boring and starting off slow, so let's start by tightening timings without going overboard.
**Keep in mind that this is in no means a definite guide, just the way I do it.**
Let's start by looking at the primary timings.
The first primary timings, 14-14-14-14, look fine as they are. tRAS seems a bit high though and the rest of the settings that the motherboard auto's to are really loose.
We can calculate tRAS by adding tRCD to tCL and then adding two for stability purposes: tRAS = (tRCD+tCL)+2 = (14+14)+2 = 28+2 = 30
Tightening the tRC is as simple as adding tRP to our tRAS tRC = tRAS+tRP = 14+30 = 44
Next I take the tRRDS, in my case it was 6, and simply add 2 for tRDDL tRRD = tRRDS+2 = 6+2 = 8
For tFAW, I multiply tRRDL times 4 and add 2 in hopes of improving stability. tFAW = (tRDDL*4)+2 = 8*4+2 = 32+2 = 34
**You could also take tRRDS and multiply it by 4 (or 6) to tighten (or loosen) it a bit more, but (tRRDL*4)+2 has always worked for me**
Calculating the tRFC can be a bit tricky but we got Ryzen Timing Checker to do most of the work for us. We can simply divide the tRFC by tRFC(ns) and then multiply it by the tRFC(ns) we actually want. In my case my memory was set to a tRFC of 560 (350ns), which is the default for DDR4.
Lets start with trying 180ns since this is samsung B die.
The calculation is as follows: tRFC/tRFC(ns)*180(ns)=(560/350)*180=288
All the other timings are just of the top of my head, see the attached screenshot of Ryzen Timing Checker for details. It's the first picture, looking from left to right.
A quick test (approximately 20 minutes) with Prime 95 is looking good, no errors to be found.
Let's try tightening things a bit more, ignoring the 2's we added to tRAS and tFAW previously and tightening some more sub timings.
And Prime 95 gives the seal of approval to the second set of timings.
A quick check with MLC for bandwidth and latency gives us:
Intel(R) Memory Latency Checker - v3.7
Measuring idle latencies (in ns)... Numa node Numa node 0 0 70.2
Measuring Peak Injection Memory Bandwidths for the system Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec) Using all the threads from each core if Hyper-threading is enabled Using traffic with the following read-write ratios ALL Reads : 49373.1 3:1 Reads-Writes : 39771.6 2:1 Reads-Writes : 37486.3 1:1 Reads-Writes : 27680.7 Stream-triad like: 43359.5 ...
Everything looking pretty good thus far. Check the attached screenshot of Ryzen Memory Checker for the second set of timings.
Lets see if we can get that pesky memory speed up next!
Now that we've gotten our ram stable at 3200 we can start overclocking beyond the XMP profile. Let's try some simple tweaks before worrying about the more exotic settings.
By manually setting our SOC voltage to 1.1 and the RAM voltage to 1.4 we give our system some breathing room. The loose timings we used at 3200Mhz look fine for testing apart from tRDDS/tRDDL/tFAW, so lets set those to 7, 9 and 36. Check the attached screenshot for details!
A quick double check with prime95 at 3200Mhz with the new settings will shows us if we made any silly mistakes punching those numbers in. Looks like we didn't mess anything up!
Now it's time to see what happens when we up the memory frequency.
Upping the frequency from 3200 to 3266Mhz and 3333MHz gives us no memory errors. 3400 POSTS and boots into windows but definitely isn't stable.
Let's take a closer look a 3333Mhz before worrying about 3400 and above. A quick bench shows the following results:
Intel(R) Memory Latency Checker - v3.7 Measuring idle latencies (in ns)... Numa node Numa node 0 0 68.5
Measuring Peak Injection Memory Bandwidths for the system Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec) Using all the threads from each core if Hyper-threading is enabled Using traffic with the following read-write ratios ALL Reads : 51411.9 3:1 Reads-Writes : 40618.5 2:1 Reads-Writes : 38139.2 1:1 Reads-Writes : 27942.9 Stream-triad like: 44827.2
Tightening the timings down a bit further doesn't seem cause any errors, but how much did it actually improve our latency and bandwidth?
Measuring cache-to-cache transfer latency (in ns)... Using small pages for allocating buffers Local Socket L2->L2 HIT latency 21.0 Local Socket L2->L2 HITM latency 30.5 Intel(R) Memory Latency Checker - v3.7 Measuring idle latencies (in ns)... Numa node Numa node 0 0 68.2
Measuring Peak Injection Memory Bandwidths for the system Bandwidths are in MB/sec (1 MB/sec = 1,000,000 Bytes/sec) Using all the threads from each core if Hyper-threading is enabled Using traffic with the following read-write ratios ALL Reads : 51596.7 3:1 Reads-Writes : 40415.4 2:1 Reads-Writes : 37817.8 1:1 Reads-Writes : 27983.2 Stream-triad like: 44982.7
The short answer, not significantly. Still, we got a definite improvement going from 3200Mhz to 3333Mhz without putting in much work!
Our read and write speeds aren't moving much and look fine as they are. The latency look terrible however so that seems like an obvious bottleneck.
Our first big win latency wise was at 3133Mhz. Simply disabling power down mode got our latency down from 78.5ns to 73.5ns.
Going up to 3200Mhz and tightening up the timings got our latency down even further, from 73.5ns to around 70ns.
Checking out which ram speeds are stable without to much tomfoolery got us down to 68.5ns at 3333Mhz. Putting in the extra effort of tightening the timing got us down to a questionable 68.2ns.
We can clearly see that our gains are getting smaller and smaller while taking more and more effort to accomplish.
At this point making sure we got a good CPU overclock dialed in will help us out much more then focusing on anything memory related.
Presuming a first gen Ryzen chip: Simply setting the CPU to 3.9Ghz and giving it 1.325V should be enough. A few passes of Prime95 will tell us if we're stable. This CPU sample runs 3.9 GHz without errors at 1.3V.
On a 2nd gen chip I would take a look at the different PBO and XFR settings.
The next update will be opening up the can of worms that is 3400 and above!
This post was modified 9 months ago 3 times by Ype
Glad to hear you enjoy it. I'm sure that sharing your experiences here could help someone else out, too! If you feel like tinkering I highly recommend using your current BIOS or waiting for the next BIOS revision.
I am experiencing some odd issues with my first gen Ryzen processor on this board but nothing like how badly the 3rd gen is behaving with the current BIOS. People I've talked to can't even get their memory overclock to stick on the older ASUS boards. It just resets to 2133. On boards from MSI memory overclocking does work, just poorly.
Gremlins abound but they still favor ASUS! I might take a look at them the coming days but don't expect more in dept posts about memory overclocking from me before ASUS revises their BIOS.
At this point we should have ourselves a nice and stable overclock on both our CPU and memory. Let's make sure we got this profile saved in our BIOS!
Any further testing will be done out of curiosity. We shouldn't expect any impressive gains anymore.
Simply bumping our memory up to 3400Mhz nets us a slight decrease in latencies. However, it isn't completely stable.
Setting the performance BIAS to CB15 in the BIOS at 3333Mhz gives us the same latency reduction on the ram. The cache latencies seem to be improved as well and the system is fully stable!
Another profile worth saving! See the attached screenshot for details.
Some more fiddling with the settings still leaves us with an unstable system at 3400Mhz.
Raising the voltages a bit doesn't help. Loosening our timings and turning the performance BIAS on or off seems to have no effect on stability either.
Lowering the SOC voltage seems to help a bit, but unstable is still unstable.
Our test system behaves exactly the same with procODT down to 48 Ohm and lowering RttPark to 40 doesn't help either.
At this point we could jump the gun and start playing with settings like CLDO_VDDP voltage to double check for memory holes. This will entail a lot of trail and horror and the value we end up at won't be applicable to other samples.
Besides, with all the latency improvements we've found thus far 3400 and up just doesn't look as enticing anymore.
Let's see if ASUS can do something about the BIOS gremlins before deep diving into more advanced settings. Our next latency improvement might come from a simple BIOS update!
Hi, I'm having issues running RAM at frequency higher than 2133. Configuration is: X399 Taichi 1950x 8 x 16 GB Flare X 2400MHz Cl15 (Hynix AFR dual-rank)
Stock after resetting CMOS board tries to boot with RAM at 2400 and fails if I have all DIMMs in or only detects 6 DIMMs. I can lower it to 2133 and all 128 GB is detected and used then without re-seating CPU or RAM. I have reseated CPU many times, same with RAM and also tried it on different board. I have tried using Ryzen DRAM Calculator ... and it doesn't POST. I have went through every procODT setting from 40-80.
I have attached screenshot from DRAM Calculator, RTC for settings I can boot, report from Typhoon Burner and AIDA64 RAM bench for ref.
I understand that anything over 1866 is overclock in this configuration and that there are no guarantees. Does anyone have any pointers for this situation?