3 ms·
> with ~100ns latency to main memory, that's the equivalent of "only" 10 million IOPS (per channel) I think you're mixing up latency and throughput. IOPS is th
by adwn 4y ago
> with ~100ns latency to main memory, that's the equivalent of "only" 10 million IOPS (per channel)
I think you're mixing up latency and throughput. IOPS is throughput, and any single CPU core can have several RAM accesses in flight, not just one. So with DDR4-3200 you have more than 3 billion "IOPS" per channel, not 10 million as in your calculation.
- Tuna-Fish 4y agoNot quite so many. Each memory operation on modern CPUs is a minimum of 64 bytes, so on DDR4-3200 if you saturate a single 64-bit channel, you get 400 million IOPS. On DDR5, channels are 32 bits wide, but there are two in a DIMM, so a normal desktop system is actually "quad-channel", with each channel doing up to that 400 million IOPS if the ram speed is DDR5-6400. In practice, it's of course rare to completely saturate channels, just because of bank conflicts and refreshes, etc.
- acquacow 4y agoIOPS are not throughput at all... throughput can't even be calculated until you factor in the size of the I/O request. You can have 1M IOPS at 5MB/sec if your blocks of data are small enough, like 8k... vs 100k IOPS/sec at 1GB/sec throughput with 1MB request sizes... In this case 100k IOPS are getting you more throughput than your 1M IOPS.
- adwn 4y ago> IOPS are not throughput at all Yes, it is. You're thinking of "bandwidth"; the terms "throughput" and "bandwidth" are not interchangeable. IOPS and bandwidth are two different forms of throughput: the former has number of operations in the numerator, the latter has bytes.