Question How do you calculate how much of a difference dual channel makes over single channel?

Cyber_Akuma

Distinguished
Oct 5, 2002
451
12
18,785
So I have apparently been understanding how Dual Channel works completely wrong for years now. I know that it means putting each RAM stick in a different channel, so that you get more throughput over two channels together than just congesting one, but I used to think that meant the reason a 3600Mhz kit would show up as 1800 for example was because each one in a channel was running at that speed to add up to 3600. I found out that I was completely wrong about this, and that the reason RAM appears as half it's advertised speed is because due to modern RAM being double-data-rate, it's accessed twice per clock tick on both the rising and falling edge, so that it is running at 1800 but able to run like that twice per tick.

So this made me try to look up what precisely Dual Channel does since I had it all wrong, but I surprisingly couldn't really find proper answers on this. I saw one claim that it doubles your throughput so if you were reading and writing to them at 16GB/s, it would be 32GB/s. I saw others saying it's somewhat of a "10-15% performance increase" but that doesn't really explain much, and I have no idea if neither or even both of these are true.

With how much talk I have seen of being sure to get dual-RAM kits and to put them each in a different channel for Dual Channel, and how you are leaving performance on the table if you don't do that, I would have expected it would not be hard to Google exactly how it's making a difference and how much of a difference it makes.
 

DSzymborski

Titan
Moderator
So I have apparently been understanding how Dual Channel works completely wrong for years now. I know that it means putting each RAM stick in a different channel, so that you get more throughput over two channels together than just congesting one, but I used to think that meant the reason a 3600Mhz kit would show up as 1800 for example was because each one in a channel was running at that speed to add up to 3600. I found out that I was completely wrong about this, and that the reason RAM appears as half it's advertised speed is because due to modern RAM being double-data-rate, it's accessed twice per clock tick on both the rising and falling edge, so that it is running at 1800 but able to run like that twice per tick.

So this made me try to look up what precisely Dual Channel does since I had it all wrong, but I surprisingly couldn't really find proper answers on this. I saw one claim that it doubles your throughput so if you were reading and writing to them at 16GB/s, it would be 32GB/s. I saw others saying it's somewhat of a "10-15% performance increase" but that doesn't really explain much, and I have no idea if neither or even both of these are true.

With how much talk I have seen of being sure to get dual-RAM kits and to put them each in a different channel for Dual Channel, and how you are leaving performance on the table if you don't do that, I would have expected it would not be hard to Google exactly how it's making a difference and how much of a difference it makes.

You're not going to get an exact amount of percentage because it's not some fixed, static thing. It's something that has to be tested for a specific task using specific equipment. You're asking a question that can't be answered for all situations, so you're not going to get an easy X% answer.

What you're asking is a bit like asking "how much faster could I prepare dinner if a friend helps me?" Some tasks will scale well, like you chopping an onion while your friend peels the potatoes. But some tasks won't; having a friend doesn't make water boil or pasta cook any faster.
 

Cyber_Akuma

Distinguished
Oct 5, 2002
451
12
18,785
You're not going to get an exact amount of percentage because it's not some fixed, static thing. It's something that has to be tested for a specific task using specific equipment. You're asking a question that can't be answered for all situations, so you're not going to get an easy X% answer.

What you're asking is a bit like asking "how much faster could I prepare dinner if a friend helps me?" Some tasks will scale well, like you chopping an onion while your friend peels the potatoes. But some tasks won't; having a friend doesn't make water boil or pasta cook any faster.

That's kinda why I said the whole percentage thing is pretty vague. It's like saying a CPU is X% better for gaming, that's going to vary from game to game. Which is why I was also asking if there even is a flat number like the throughput I mentioned or if that's complete gibberish, and exactly how it works so I can get an understanding of how to try to calculate it in different situations.
 

DSzymborski

Titan
Moderator
That's kinda why I said the whole percentage thing is pretty vague. It's like saying a CPU is X% better for gaming, that's going to vary from game to game. Which is why I was also asking if there even is a flat number like the throughput I mentioned or if that's complete gibberish, and exactly how it works so I can get an understanding of how to try to calculate it in different situations.

There is no one magic %. Just estimates from people testing specific situations using specific hardware.
 
Try your own test.
Run an app of interest normally in dual channel mode, then repeat by moving a stick to get single channel mode.
Synthetic ram tests will not match real world results.
Few, real apps, I think will make much difference.
If you are using integrated graphics, there will be a bigger difference.
 
You got the DDR part correct. Each module (stick) of RAM transfers data 64 bits at a time. A dual channel configuration makes the system think the data bus is 128 bits wide rather than 64. A triple channel system (yes, they do exist) makes it seem like the data bus is 192 bits wide and a quad channel system makes the data bus appear to be 256 bits wide. So when a memory operation is performed, the system moves that many bits at a time - 64, 128, 192, or 256 depending on the # of channels. Now this is on each rising or falling edge of the clock signal in a dual data rate (DDR) system.

There is some overhead so you don't get exactly the number of bits transferred at each step as indicated above.
 
With how much talk I have seen of being sure to get dual-RAM kits and to put them each in a different channel for Dual Channel, and how you are leaving performance on the table if you don't do that, I would have expected it would not be hard to Google exactly how it's making a difference and how much of a difference it makes.
The reason why the answer is "it depends" is because the CPU isn't constantly accessing data from memory all the time. That is, even in apparent heavy workloads, there isn't a constant, maxed out stream of data going back and forth between the CPU.

For example, the CPU torture test Prime95 has a configuration where you can run the entirety of a test in a way that fits in the CPU's cache, so it doesn't even touch memory despite the CPU usage maxing out. Other heavy workloads like say encoding video files, only produce enough data to trickle back into RAM, probably for similar reasons (the data it's working on at a given time can fit in cache).

The only CPU workload I've seen that consistently improves with memory bandwidth performance is file compression and decompression.
 
  • Like
Reactions: Cyber_Akuma

Cyber_Akuma

Distinguished
Oct 5, 2002
451
12
18,785
Ok, so it does indeed double the bandwidth and on-paper the bits, but what kind of an impact this can have if any at all is heavily dependent on the application running and what it's doing... and if it's a small enough workload that it can fit in the CPU cache.

I have to admit, with how adamant I see it being brought up when a system is using only one stick of RAM instead of two or when someone is using the wrong channels for years now, I thought it would be a lot more straightforward how much of a difference it makes, or at least easier to calculate the difference rather than it being a "from a noticeable difference to no difference at all" thing that you would have to benchmark on a per-workload basis to see if it even makes a difference.
 

USAFRet

Titan
Moderator
Ok, so it does indeed double the bandwidth and on-paper the bits, but what kind of an impact this can have if any at all is heavily dependent on the application running and what it's doing... and if it's a small enough workload that it can fit in the CPU cache.

I have to admit, with how adamant I see it being brought up when a system is using only one stick of RAM instead of two or when someone is using the wrong channels for years now, I thought it would be a lot more straightforward how much of a difference it makes, or at least easier to calculate the difference rather than it being a "from a noticeable difference to no difference at all" thing that you would have to benchmark on a per-workload basis to see if it even makes a difference.
The general thought is a 15-20% difference.

But there is no universal calculation. Different software use cases are different.
Gaming vs video editing vs spreadsheet number crunching.
 
  • Like
Reactions: Cyber_Akuma

Karadjgne

Titan
Ambassador
Ram doesn't have Channels. The memory controller on the cpu does, in combination with the layout of the motherboard. You can use the same stick of ram in single, dual or quad channel depending on the board and cpu.
Each upgrade in Channel theoretically can double the bandwidth by using each stick synchronous, not simultaneous. Dual channel can be faster than single channel if the bandwidth gets saturated on the first, it switches to second. With single channel, if the bandwidth is saturated, windows assigns pagefile.sys to activate temporary ram from storage. Pc slows to a crawl.

Ram does have Rank. Single rank ram is all the chips are consecutively accessed, so if the stick has 8x 1Gb chips, it starts with the first chip and then goes up in order. Dual rank ram is 2x sets of single rank, where you might see 16x 500Mb chips, 8 per side of the pcb. But instead of accessing 1 through 16 in series, it accesses 1-8 and 9-16 in synchronous parallel, first one set then the other. This can be faster than Single rank as the cpu is pulling from one side while the storage is filling the other. Single rank tries to fill while simultaneously trying to dump, and large files can cause a bottleneck.

But as to a % of how much, that's an impossibility to assume. It's totally dependent on the ram type, size, motherboard, cpu and loads, so is constantly changing, and just as different from anyone elses pc at any given time.
 
  • Like
Reactions: Cyber_Akuma

Cyber_Akuma

Distinguished
Oct 5, 2002
451
12
18,785
Ram doesn't have Channels. The memory controller on the cpu does, in combination with the layout of the motherboard. You can use the same stick of ram in single, dual or quad channel depending on the board and cpu.

Well yeah, I know that. I wasn't trying to imply the RAM modules themselves are somehow single or dual channel.

Each upgrade in Channel theoretically can double the bandwidth by using each stick synchronous, not simultaneous. Dual channel can be faster than single channel if the bandwidth gets saturated on the first, it switches to second. With single channel, if the bandwidth is saturated, windows assigns pagefile.sys to activate temporary ram from storage. Pc slows to a crawl.

Wait, so both channels aren't being used at once? It switches to the other if one gets saturated? But then if it just switches and can't use both at once how is that helping since then the other channel isn't being used when it switches over?

Ram does have Rank. Single rank ram is all the chips are consecutively accessed, so if the stick has 8x 1Gb chips, it starts with the first chip and then goes up in order. Dual rank ram is 2x sets of single rank, where you might see 16x 500Mb chips, 8 per side of the pcb. But instead of accessing 1 through 16 in series, it accesses 1-8 and 9-16 in synchronous parallel, first one set then the other. This can be faster than Single rank as the cpu is pulling from one side while the storage is filling the other. Single rank tries to fill while simultaneously trying to dump, and large files can cause a bottleneck.

Yeah, I remember trying to research the whole rank thing about a year ago. I was at first under the mis-understanding that single rank would be faster, now it seems it's dual rank that is faster. And apparently the benefits of two dual-rank modules in dual-channel are even more than two single-rank modules in dual-channel?

But as to a % of how much, that's an impossibility to assume. It's totally dependent on the ram type, size, motherboard, cpu and loads, so is constantly changing, and just as different from anyone elses pc at any given time.

Yeah, that's the part that confuses me a bit. Not that it's dependent and the scenario can very wildly depending on your hardware and what the application is doing, but how universally for years it's been common pc building knowledge to use two sticks for dual channel and it being considered a big blunder for a pc builder or a prebuilt or so to use one stick when the actual results can be so up in the air and vary.
 

USAFRet

Titan
Moderator
Yeah, that's the part that confuses me a bit. Not that it's dependent and the scenario can very wildly depending on your hardware and what the application is doing, but how universally for years it's been common pc building knowledge to use two sticks for dual channel and it being considered a big blunder for a pc builder or a prebuilt or so to use one stick when the actual results can be so up in the air and vary.
Given a desired amount of RAM, there is little reason to choose 1x 16GB stick vs 2x 8GB.
The 1x stck incurs a performance penalty, even though the capacity is the same.
 
  • Like
Reactions: Cyber_Akuma

Karadjgne

Titan
Ambassador
Wait, so both channels aren't being used at once? It switches to the other if one gets saturated? But then if it just switches and can't use both at once how is that helping since then the other channel isn't being used when it switches over?
Ram operates in the realm of nanoseconds, or less per operation. Thats where timings live. Time to enter, time wait, time to get to the exit, time to wait on the door opening, time to go through the door, time to get pushed out to cpu etc.

Think about it. Punch something 5x, not hard, just a 1 handed jab. Now do the same in a 1-2 combo with both hands. As you pull back with one, you are punching with the other. Data isn't one long string, it's a series of mostly small files, so as one file is getting shipped through and out, another is preparing to get shipped out. 1-2 punch endlessly. Faster than pushing 1 at a time.

At the cpu, the memory controller gets data at gate A, assigns it a thread, then assigns data at gate B a thread before A is fully finished, by the time the MC gets back to gate A, data A is new and gets a new thread etc. So the stream is constant and simultaneous, but control is bounced between gates. It's faster than the MC sitting and waiting on A data to finish, then assigning the next A data and so on. Higher data transmission and input, same time period.

How efficient that process is depends on the load and the memory and MC and cpu, typically ram ability exceeds cpu ability to process so performance isn't double fast with dual channel, landing closer to 150% than 200%, but that can just as easily be 100%, same speeds as single channel, if that's how the loads play out.
 
Last edited:
  • Like
Reactions: Cyber_Akuma
Wait, so both channels aren't being used at once? It switches to the other if one gets saturated? But then if it just switches and can't use both at once how is that helping since then the other channel isn't being used when it switches over?
Wag.
Think of ram settling time.
I grab a chunk from the first channel.
I can't grab another chunk from that channel until the ram has settled.
Instead of waiting I go to the second channel and grab a chunk.
While I'm doing that with the second channel the first channel has settled so it's ready to give another chunk.
So back and forth I go not having to wait for settling time.
 
  • Like
Reactions: Cyber_Akuma