Dev Ups

Published 2023-08-10 in hardware

Using MemTest86 to test and optimise RAM

I would like to record the speed of my various RAM configurations. I spent far too long in MemTest86 to not share. Pre-built systems, such as Dell Optiplex or laptops, often don't allow control of RAM speeds.

I'm finding the novelty of tinkering with a branded motherboard's BIOS irresistible. RAM is always a big expense for me, that ties me to old hardware. I should be grateful, delaying upgrades can be very economical, but I often settle for suboptimal RAM with scant regard for reuse or resale.

Here I'll test numerous sticks I have in various systems and attempt to override their stock settings in the motherboard BIOS.

I am often pleasantly surprised by how a certain memory configuration can yield substantial speed improvements inside MemTest86. The observed effect being what is known as "dual channel".

Background

I have deleted so many photographic old records of MemTest86 testing DDR3.

I want to store DDR4 results systematically, so I can present them as evidence of the effects of adding a second stick of RAM, and the effects of dual channel memory. Sometimes I see my CPU bottleneck unexpectedly. Windows Task Manager doesn't differentiate between a core waiting for a memory transfer and one actively processing.

Test rig

I have two DDR4 desktops. I have a laptop and thin clients besides, but they are limited in BIOS options and compatibility. What I can recall from these is that two RAM modules are always faster than one.

I'll describe those computers briefly next and follow with descriptions of the RAM modules, which will be based on what MemTest86 tells me. Some fields it gives never change:

Minimum Voltage 1200 mV
Maximum Voltage 1200 mV
Configured Voltage 1200 mV

Which is just wrong; I am keenly aware how voltage settings in BIOS are real, and affect stability. The same goes for

Module Voltage 1.2V

Which appears a few pages after the first three voltages.

Other fields are obvious and not worth restating.

The memory speeds change precisely in response to the changes I make in BIOS, so this is a reliable second check that the settings have taken, and remain. Or remained; since I usually get the results after MemTest86 has finished testing.

Speed 3134 MT/s
Configured Memory Speed 3134 MT/s

The exception to this rule is when the RAM is (JEDEC certified) faster than the CPU. In that case, "Speed" shows the JEDEC certified speed and "Configured Memory Speed" shows the CPU limit.

The exception to the exception is the Ryzen 2200G. Officially, it only supports up to 2933MHz. Spoiler alert; I've taken it, and a stick of 2666MHz (JEDEC) RAM to 3200MHz and both Speed and Configured Memory Speed reflected the overclock.

Two exceptions don't prove a rule, they cast it into doubt.

Bank Locator is always P0 CHANNEL and then either A or B depending on which slot the DIMM occupies.

Bank Locator P0 CHANNEL A

These 3 are constant at the start of the output:

Total Width 64 bits
Data Width 64 bits
Type Detail Synchronous, Unbuffered (unregistered)

Dell Optiplex

A Dell Optiplex, maxed out with an Intel i5 7400 supporting RAM up to 2400MHz.

No manual setting for RAM frequency here, and the sticks all surpass the CPU limit of 2400MHz anyway.

Ryzen

A custom-built, upgradeable, A320 AMD 2200G. The 2200G supports up to 2933MHz, officially.

DDR4 4 GB 2400 MHz

Samsung PC4-19200 DDR4 2400T. 17-17-17-39. 4 chips on one side, none on the other.

Manufacturer Samsung
Part Number M378A5244CB0-CRC
Attributes 00000002
Maximum Clock Speed (MHz) 1200 (JEDEC)
Maximum Transfer Speed (MHz) DDR4-2400
Maximum Bandwidth (MB/s) PC4-19200
SPD Revision 1.1
# of Row Addressing Bits 16
# of Column Addressing Bits 10
# of Banks 8
# of Ranks 1
Device Width in Bits 16
Bus Width in Bits 64
Timings @ Max Frequency (JEDEC) 17-17-17-39
Maximum Clock Speed (MHz) 1200

DDR4 16 GB 2666 MHz (3200 XMP) Jazer

Jazer brand from China. 8 chips per side, 16 in total, hidden behind a heatsink.

Manufacturer Unknown
Part Number JAD3200U1816
Attributes 00000002
Maximum Clock Speed (MHz) 1600 (XMP)
Maximum Transfer Speed (MHz) DDR4-3200
Maximum Bandwidth (MB/s) PC4-25600
SPD Revision 1.0
# of Row Addressing Bits 16
# of Column Addressing Bits 10
# of Banks 16
# of Ranks 2
Device Width in Bits 8
Bus Width in Bits 64
Timings @ Max Frequency (JEDEC) 19-19-19-43
Maximum Clock Speed (MHz) 1333

This is a recent arrival to populate my new build. I only break it out later on in testing.

DDR4 16 GB 3200 XMP Crucial CL22

8 chips per side, 16 in total, each a Micron 21E75 D9WFL. I believe 21E75 signifies the latency is 21.75ns and the E gives it the an extra CL grade (reduces by 1).

Manufacturer Unknown
Part Number 16ATF2G64AZ-3G2E1
Attributes 00000002
Maximum Clock Speed (MHz) 1600 (JEDEC)
Maximum Transfer Speed (MHz) DDR4-3200
Maximum Bandwidth (MB/s) PC4-25600
SPD Revision 1.1
# of Row Addressing Bits 16
# of Column Addressing Bits 10
# of Banks 16
# of Ranks 2
Device Width in Bits 8
Bus Width in Bits 64
Timings @ Max Frequency (JEDEC) 22-22-22-52
Maximum Clock Speed (MHz) 1600

DDR4 32 GB 2666MHz

Crucial PC4-21300 2666MHz / 19-19-19-43 / Micron.

This ran better than the 3200 XMP stuff.

Manufacturer 802C0000802C
Part Number 16ATF4G64AZ-2G6B1
Attributes 00000002
Maximum Clock Speed (MHz) 1333 (JEDEC)
Maximum Transfer Speed (MHz) DDR4-2666
Maximum Bandwidth (MB/s) PC4-21300
SPD Revision 1.1
# of Row Addressing Bits 17
# of Column Addressing Bits 10
# of Banks 16
# of Ranks 2
Device Width in Bits 8
Bus Width in Bits 64
Timings @ Max Frequency (JEDEC) 19-19-19-43
Maximum Clock Speed (MHz) 1333

Optiplex results

To try to maintain some sense of order among the data, I start with my old Optiplex.

Optiplex + 32GB at 2400MHz

Type size speed
L1 Cache 64K 180.8 GB/s
L2 Cache 256K 82.0 GB/s
L3 Cache 6144K 47.6 GB/s
Memory 31.8G 14.8 GB/s

The cache speeds vary slightly each time, but the memory is always 14.8 GB/s.

The System Info page offers MemTest86's assessment of this RAM (configuration):

Total Physical Memory: 32658M (15221 MB/s)

Memory latency: 22.844 ns

It doesn't ascribe the single or dual channel quality in this summary. The qualifier is not available in the Optiplex BIOS but CPU-Z does show it's rank as "dual". The quoted speeds are from a short sample period, while MemTest86 loads. There is variation of up to 1% between runs, typically. 22.84 could be 23.2 next boot, for example.

Optiplex + 4GB at 2400MHz

Type size speed
Memory 31.8G 11.9 GB/s

I think this confirms that the single 32 GB stick, used previously, was effectively dual channel; the speed difference is too great.

Total Physical Memory: 3986M (12228 MB/s)

Memory latency: 22.367 ns

Optiplex + 4GB + 4GB at 2400MHz

The two sticks (PC4-19200 DDR4 2400MHz / 17-17-17-39 / Samsung) have identical part numbers. Dual channel benefit is apparent here:

Type size speed
Memory 31.8G 18.7 GB/s

As I might expect, dual channel benefits are proportional with how matched the sticks are, and the bus widths available. More, smaller chips are, usually, faster, and having access to both memory interfaces is the definition of dual channel.

I booted this configuration twice to make sure it was accurate.

Total Physical Memory: 8082M (19210 MB/s)

Memory latency: 23.018 ns

Optiplex + 32GB + 4GB at 2400MHz

I attempt asymmetrical pairing.

Type size speed
Memory 35.8G 19.4 GB/s

Total Physical Memory: 36754M (19935 MB/s)

Memory latency: 23.408 ns

Optiplex + Jazer 16GB + Jazer 16GB at 2400MHz

I obtained two sticks of "3200 MHz" Jazer RAM, in the May Day sale. This is how the proliferation of smaller chips across both interfaces improved performance:

Type size speed
Memory 31.8G 21.1 GB/s

Ryzen results

It's nice to have systems to test the upper limits of upgrade components.

2200G + 4GB + 4GB at 2400MHz

The same two 4 GB sticks previously in my Optiplex (PC4-19200 DDR4 2400MHz / 17-17-17-39 / Samsung):

Type size speed
L1 Cache 96K 83.2 GB/s
L2 Cache 512K 71.0 GB/s
L3 Cache 4096K 21.1 GB/s
Memory 8135M 14.0 GB/s

I ran that for an hour. Zen is much slower in its use of the same RAM here. Hard to believe it is dual channel, but that is what my original (2019!) BIOS explicitly called it out as.

Total Physical Memory: 8135M (15001 MB/s)

Memory latency: 72.121 ns

2200G + 4GB + 4GB at 2666MHz

Type size speed
Memory 8135M 14.2 GB/s

Negligible, 1.5%, improvement by masquerading as 10% faster 2666MHz parts.

2200G + 4GB + 4GB at 2800MHz

Type size speed
Memory 8135M 14.6 GB/s

Cache speeds were unchanged, but we have 4% improvement in memory, where I'd expect 16%.

Tested ok for 45 minutes.

2200G + 4GB + 4GB at 2933MHz

Type size speed
Memory 8135M 14.6 GB/s

This is the maximum for the CPU. The RAM modules are way overclocked by 20%.

After two hours, I'd finished all four cycles of tests. All is ok.

2200G + 4GB + 4GB at 2933MHz 1.15V

To "bin" components we would increase the frequency until they fail. Once we reach max frequency, we must undervolt to be sure the new normal operating mode is robust. Once we encounter instability after a clock increase or voltage reduction, we roll back that change, to be safer than the "best" tested configuration.

This is what chip suppliers do, with huge margins of safety that enable us to undervolt and overclock into that margin. There are downsides, but if we can both undervolt and overclock the benefits often outweigh these.

Type size speed
Memory 8135M 14.7 GB/s

2 hours and 4 cycles later all is well.

2200G + 4GB + 4GB at 2933MHz 1.1V

1.1V is the lower limit. A 10% reduction in voltage is a 19% reduction in power. I'd estimate these draw 2-3W in total. 20% of which is about half a Watt.

Type size speed
Memory 8135M 14.7 GB/s

I'm only repeating the memory speed because it has changed, a limit in measurement accuracy.

Now I have 2 errors in 1 round lasting 10 minutes I will reverse voltage the voltage drop.

Dealing with errors

MemTest86 showing a couple of errors in 10 minutes

The HTML report even highlighted the specific bits in error:

The generated reports details the errors down to the bit level

I love a good error. I was wondering whether the under volt was working. This is why we test from USB boot devices; corrupt memory holding registry or other important OS data can cause big problems for the installation.

How does MemTest86 deal with corrupted memory? Hard to say now it is closed source. The fail-safe would be to use parity to check before persisting anything. No parity can prevent a processor read instruction mutating into a write, however unlikely. Parity checking could be loaded into the CPU cache and remain there to marshall every new instruction read from RAM. That would go some way towards explaining why MemTest86 (v10.4) was so slow to load.

2200G + 4GB + 4GB at 2933MHz 1.13V

I completed all four test iterations at 1.13V without an error.

I'll be sticking with 1.13V and below because 1.13V appears safe. I also want to try without a GPU installed because it is warm, and my Kill-a-Watt is showing triple digits during some tests.

2200G + 4GB + 4GB at 2933MHz 1.13V

Type size speed
Memory 6087M 14.6 GB/s

The size is smaller than the installed modules because I wanted to check if dedicating RAM to integrated graphics had any effect. Other than that RAM going untested, it had no effect.

The difference in speed 14.6 vs 14.7 is a rounding error we've seen previously.

2200G + 32GB + 4GB at 2933MHz 1.13V

Type size speed
Memory 33.9G 12.2 GB/s

This speed difference shows the dual channel advantage. The (2019) BIOS reported that this is dual channel, in name.

Total Physical Memory: 34759 (12523 MB/s)

Memory latency: 73.313 ns

2200G + 32GB at 2933MHz 1.12V

Type size speed
Memory 29.9G 12.5 GB/s

Tested for 90 minutes.

Total Physical Memory: 30657M (12815 MB/s)

Memory latency: 69.856 ns

Comparing this to the same RAM in the Optiplex, the Ryzen has nearly tripled latency and lost a third of our RAM speed!

Ryzen's multi-core architecture

Zen 1 Ryzens' Infinity Fabric benefits from certain, faster, RAM speeds. It's frequency (FCLK) is tied 1:1 to the RAM speed (UCLK), unless we can unlock it in BIOS. The A320 is all about not overclocking. Setting the RAM speed isn't counted as overclocking, and so is a nice bonus.

The beauty of 1:1 is that it avoids a need to add buffers; 1 in, 1 out.

The Infinity Fabric ties the two die types in Ryzen CPUs together. At the periphery, communicating with RAM, is the IO die (IOD).

The CCD is analogous to the CCX, and a constant among Zen generations. It is connected to the IOD, and RAM, by the Infinity Fabric.

AMD recognized the latency of having several "chiplets" and responded with tighter integrations in Zen 3. We have cheaply produced CPUs, at the cost of latency.

2200G + 32GB at 3200MHz 1.18V

Type size speed
Memory 29.9G 13.5 GB/s

Tested for 4 hours. There is potential to undervolt or even over clock further.

Total Physical Memory: 30657M (13835 MB/s)

Memory latency: 68.783 ns

2200G + 32GB at 2933MHz 1.1V

I got a full failure with 1.1V:

Full memtest86 failure after drastic undervolt

2200G + 4GB + 4GB at 3133MHz 1.15V

I upped the voltage, because overclocking needs a lot more power.

Type size speed
Memory 6087M 14.7 GB/s

I completed one pass in the 22 minutes I let this run.

Total Physical Memory: 6087M (15117 MB/s)

Memory latency: 67.8 ns

2200G + 4GB + 4GB at 3333MHz 1.15V

This failed to boot even to BIOS. I had to remove all power including the CMOS battery for a minute to clear BIOS:

Waiting with the battery out, oblivious to the CLRCMOS jumper right above it.

BIOS will remember the last RAM settings. I, later, found a jumper to quickly clear it, and test faster.

Zen 1 supports 2933 MHz and Zen 2 3200 MHz, officially. My motherboard's web page lists support for Raven Ridge (the 2200G, Zen 1) as:

  • 3200+(OC) / 2933 / 2667 / 2400 / 2133

3200 is a recognized overclock. The QVL list gives precious few examples of supported 3200 modules, just Patriot, KLEVV, and ADATA. The QVL used to matter more before the memory controller was integrated into the CPU in the mid 2010s.

2200G + 4GB + 4GB at 3200MHz 1.17V

Type size speed
Memory 6087M 15.0 GB/s

This looks like the sweet spot. It completed 2 passes in the 50 minutes I left it.

Total Physical Memory: 6087M (15377 MB/s)

Memory latency: 64.849 ns

Referring to the last result, I should point out that 1.0172 (15377/15117) != 1.0204 (15/14.7). That wasn't a transcription error, by me.

I set the voltage to 1.14V and got 20s into testing before it froze.

I set the voltage to 1.15V and got 1:51 into testing before finding an error, with test 5 (moving inversions).

For completeness, here is System Info:

Total Physical Memory: 6087M (15359 MB/s)

Memory latency: 66.637 ns

2200G + 4GB + 4GB at 3200MHz 1.16V

Type size speed
Memory 6087M 14.9 GB/s

I completed 2 passes in the hour I let this run. Sweet, this clears the way for 1.17V all day.

Total Physical Memory: 6087M (15352 MB/s)

Memory latency: 66.637 ns

2200G + 32GB at 2933MHz 1.12V

Type size speed
Memory 29.9G 12.3 GB/s

I completed 1 pass at 1:42:08. Total testing took 2:20. As I say, testing is an ongoing process, and 2 hours of intensive testing is generally enough. This is a reason for finding the breaking point, and rolling back from there, it is the more efficient test.

Total Physical Memory: 30663M (12544 MB/s)

Memory latency: 73.194 ns

Comparing this to the same RAM in the Optiplex, we've tripled latency and lost a third of our speed!

2200G + 32GB at 3200MHz 1.18V

Type size speed
Memory 29.9G 13.5 GB/s

Tested for 1:50

Total Physical Memory: 30663M (13832 MB/s)

Memory latency: 68.783 ns

This failed to boot using 1.15V.

2200G + Jazer 16GB at 2666MHz 1.1V

This Jazer RAM was tested last. I bought it cheaply from China and needed to be sure it was compliant.

Type size speed
Memory 13.9G 10.9 GB/s

2200G + Jazer 16GB + 4GB at 2400MHz

Type size speed
Memory 13.9G 9.9 GB/s

Total Physical Memory: 18369 (10195 MB/s)

Memory latency: 84.559 ns

2200G + 4GB at 2933MHz

Type size speed
Memory 3521M 9908 MB/s

That's all I recorded, pathetic. This stick is very slow by itself. Pairing it with the 16 GB Jazer does nothing for the speed of the Jazer, despite them both overclocking stably.

2200G + 4GB at 3200MHz

Type size speed
Memory 3521M 10.3 GB/s

Total Physical Memory: 3521 (10581 MB/s)

Memory latency: 67.114 ns

2200G + 16GB Jazer at 2667MHz

Type size speed
Memory 13.9G 10.9 GB/s

Total Physical Memory: 14273 (11189 MB/s)

Memory latency: 86.307 ns

2200G + 16GB Jazer at 2933MHz

Type size speed
Memory 13.9G 12.2 GB/s

Total Physical Memory: 14273 (12588 MB/s)

Memory latency: 72.121 ns

2200G + 16GB Jazer at 3200MHz at 1.35V (XMP)

Type size speed
Memory 13.9G 13.3 GB/s

Total Physical Memory: 14273 (13723 MB/s)

Memory latency: 68.545 ns

Started with the XMP rated voltage. Though my motherboard might protest, it would at least boot.

2200G + 16GB Jazer at 3200MHz at 1.25V

Type size speed
Memory 13.9G 13.6 GB/s

Total Physical Memory: 14273 (13984 MB/s)

Memory latency: 66.518 ns

Didn't test it for long. Getting it to boot through BIOS checks whilst undervolting would be a good start. After 3 failed attempts my BIOS reset.

2200G + 16 GB second Jazer stick at 3200MHz

The second stick arrived the next day. The manufacturer stated they would be unmatched and single channel if purchased separately. I had other ideas.

voltage booted time in test
1.21 yes 10m
1.19 no
1.21 no
1.23 no
1.25 no
1.3 yes 5m
1.27 no
1.24 yes 3.5h

This shows the BIOS is very temperamental to voltage changes. I didn't want to stress test at 1.3V.

2200G + Jazer 16 + Jazer 16 GB at 3200MHz

voltage booted time in test
1.26 no
1.28 no
1.3 no
1.32 no
1.34 no

The requirement for even higher voltage is because the pair draw twice the current. The over volting is to maintain 12V when high current causes it to droop. That each needed overvolting individually means they are taxing the limits of current delivery. I would rather run them with my Intel at 2400MHz, or here as 2933MHz, where they don't need extra juice.

2200G + Jazer 16 + Jazer 16 GB at 2933MHz at 1.2V

Type size speed
Memory 29.9G 17.5 GB/s

Total Physical Memory: 30657 (17968 MB/s)

Memory latency: 72.717 ns

2200G + Crucial 16 + Crucial 16 GB at 3200MHz at 1.15V

This Crucial RAM hits 3200MHz, in dual channel, at a more reasonable 1.2V (JEDEC).

Type size speed
Memory 31.9G 17.8 GB/s

Total Physical Memory: 32705 (18248 MB/s)

Memory latency: 85.035 ns

The latency is demonstrably more than the cheaper, Jazer pair, at 2933MHz.

2200G + Crucial 16 GB at 3200MHz at 1.2V

For some reason (I have to stop wearing out the DIMM sockets), I struggled to get it to boot as a single stick, so the voltage reset to 1.2V, which I'm fine with.

Type size speed
Memory 15.9G 13.0 GB/s

Total Physical Memory: 16321 (13347 MB/s)

Memory latency: 84.082 ns

Still stubborn latency.

2200G + Crucial 16 + Crucial 16 GB at 2933MHz CL22 at 1.2V

Type size speed
Memory 31.9G 17.0 GB/s

Total Physical Memory: 32705 (17434 MB/s)

Memory latency: 85.559 ns

The latency is only 0.5% worse. Latency in Ryzen systems is dominated by the CPU. As we will see in the next examples.

2200G + Crucial 16 + Crucial 16 GB at 2933MHz CL20 at 1.15V

3200 MHz runs at 1600 MHz, so the period is 1/1600MHz = 0.625ns. 22 clocks mean 13.75ns latency.

At 2933 MHz, period is 1/1466.6MHz = 0.682ns. 13.75/0.682 = 20.2. CL20 should be safe and reduce latency, by about 1ns.

Type size speed
Memory 31.9G 17.1 GB/s

Total Physical Memory: 32705 (17524 MB/s)

Memory latency: 89.804 ns

Though it "appears" to be 0.1 GB/s faster, latency got worse. I've no idea why.

While we've got the clock period handy, 0.682ns, I can flesh out the 40 cycles latency quoted for L3 cache access. 27ns. For cache. 90ns is not an uncommon latency according to my research. MemTest isn't the best benchmark. Latency examples I've seen have come from AIDA64. Indeed, those higher reported (old) figures rather make me feel like I'm cheating.

2200G + Crucial 16 + Crucial 32 GB at 2933MHz CL22 at 1.2V

Type size speed
Memory 47.9G 12.2 GB/s

Total Physical Memory: 49089 (12551 MB/s)

Memory latency: 74.386 ns

2200G + Crucial 16 + Crucial 32 GB at 3200MHz CL22 at 1.2V

Type size speed
Memory 47.9G 13.3 GB/s

Total Physical Memory: 49089 (13699 MB/s)

Memory latency: 70.333 ns

Now we can compare like for like since I'm tending to run at 3200 MHz more often. Speed is up, latency down.

Performance hasn't improved beyond the faster module running standalone, but it hasn't degraded much either. More like an average.

It was 13.5 GB/s with just the 32 GB at 3200MHz, and 13.0 GB/s with just the 16 GB at 3200 MHz.

The latency was 68.783ns for the 32 GB at 3200MHz alone and 84ns for the Crucial 16 GB at 3200MHz.

Conclusion

I trust low level tools to give me unbiased ratings of my hardware. Every IT professional should add MemTest86 and Ubuntu on their keyring.

I knew you could get a performance boost by pairing dissimilar modules. How could that scale? Dual channel boosts speed by interleaving data so both channels can deliver simultaneously. With a 4 GB and 32 GB module I would expect limited interleaving.

At least it doesn't make it any slower. Rather than interleaving stopping at, say, 8 GB, the same pseudo interleaving that makes the single 32 GB module, dual-channel, extends to cover the extra address space.

For the Optiplex (much faster to boot to MemTest86):

Configuration 4 GB 32 GB 4 + 4 GB 32 + 4 GB
Speed (GB/s) 11.9 14.8 18.7 19.4

The final column is a surprise, considering that for the Ryzen adding 4 GB to the Jazer 16 GB actually degraded speed. If we believe the figures, Intel leverages dual channel configurations much more easily and effectively than AMD.

Standard, branded, RAM overclocks and undervolts incredibly well! The 4 GB sticks were just ordinary 2400MHz sticks, each shipped with each of the DDR4 desktop PCs I own!

As long as I keep a record, it's worth comparing. It's going to be more relatable to average users who don't want to boot with USB and fiddle with BIOS.

Chinese brands like Jazer/Juhor are doing what I've just done, to bin memory, and then reselling with tighter margins. That or they are genuinely turning out 2666MHz DDR4 chips, from domestic fabs, newly set up as the US trade ban intensifies.

Jazer have slapped an XMP profile of 3200 MHz on 2666 MHz sticks, but it is inferior to average 2666MHz, branded, RAM. It's inferior because it requires greater voltage than my other 2666MHz stick to reach the same speed. If you look at the JEDEC timings, both sticks have identical timings at 2666 MHz (their JEDEC speed).

The resale value of "3200 MHz" is much more than 2666 MHz. Jazer is still much cheaper than 2666MHz from the UK. In the Intel system, which I can neither over clock nor under volt, no one would ever know the difference. It's cheap RAM for a reason, and a half decent test will spot where it flags.

Increasing memory clock speed by 10% yields a 2% improvement in measured bandwidth. This isn't linear, because from 2933 to 3200, the improvement is more like 5%.

This was long, but worth posting as it took me a long time to test and research. I went through a lot of RAM sticks. The Jazer ones were an unknown quantity so I made a video, it covers a lot less time than this written version, but may help resolve any questions I've unwittingly begged: MemTest86, how to test RAM with confidence. By the way, I eventually sped up the time to load the first MemTest test from 5 minutes to less than 1 minute. I used v10.5 instead of v10.4, and also a larger USB stick, burned very simply with Windows.