The Changing Relationship Between Memory, I/O, and Network Bandwidth
blog.enfabrica.net
blog.enfabrica.net
The other element which is a bit scary is that it's fairly rare these days for mass market companies to index deeply on tech which isn't available in public clouds, so until AWS supports this sort of thing, it's unlikely that many folks will target it. You can kind of see this with the Optane PDIMMs - they looked absolutely fantastic, but given you couldn't get them on any AWS instance there wasn't much point actually trying to use them outside of very specific applications - as a software engineer this hardware lets me build my software very differently and in a simpler way, but how can I possibly risk architecting based on that if it then cannot support a customer's cloud migration?
Obviously v different in HPC contexts.
And it should always be said - latency is very different between these. Memory latency still measured in nanoseconds, PCIe latency still measured in 10s of microseconds, about 3 orders of magnitude difference.
It still grates me that the only interface we ended up with for high speed durable data is nvme through pcie and regret the lost promise of fast byte-addressable persistent memory, but once again, worse is better seems to have won?
I thought Intel was pretty clear by saying they warranted the modules for five years of continuous operation regardless of workload.
Are there server processors on the market yet that support DDR5-6400? Intel Sapphire Rapids and AMD Genoa only support DDR5-4800. Faster DIMMs are available (especially in the consumer market segments) but it seems quite reasonable to base this kind of analysis on what's actually officially supported and widely available.
Is it the 38 GB/s for DDR5-4800 in the article hypothetical, my motherboard / CPU is a bottleneck somehow, or that memtest86 bundled with my motherboard isn’t capable of calculating bandwidth correctly for my system?
One a 13900 core, with default clock, should be able to read at max. rate 89.2/2 = 44.8 GB/s (small gigabytes = 10^9). One DDR5 module running at 6000 MT/s has maximum throughput 48 GB/s. Granting some unknown slowdowns due to error corrections and other things I would be expecting to see at least above 40 GB/s. With two RAM modules and two or more cores working, one should be able to get above 80GB/s.
Perhaps memtest does something that limits its memory performance (maybe it uses old less-efficient instructions for reading memory instead of SSE/AVX) or maybe it makes a factor 2 error in calculation of the speed.
That's still a large discrepancy though where I'm typically 30% away from the nominal speed.
https://zsmith.co/bandwidth.php
Make sure all power saving stuff is disabled in BIOS, that XMP is being used, and Linux is not booting with some weird ACPI/APIC flags. Try ganged/unganged mode (DCT) in BIOS.
https://zsmith.co/bw-table.php
First row for Intel Core i7-930, DDR3 2000 MT/s he should be getting at most 16GB/s for reading from DRAM modules (not cache), but he's actually getting 18.4 GB/s, big 15% more. Maybe more cores were used, then the theoretical limit of that processor is 25.6GB/s, and the result is not that great.
But then for i5-520M, 1066MT/s he should be getting 8.5GB/s per core, but he's getting less, only 7.1GB/s.
Maybe contact the author (his email is in README.txt) and ask for clarifications on these discrepancies and help on your problem.
I think there is a problem somewhere with your system/measurements. With 6000 MT/s, there's no way getting 25GB/s is fine - that's what DDR4 3200MT/s should able to do. You should be getting close below 48 GB/s on one core, and 89.6GB/s multicore. And writes should be slower than reads.
https://www.thefpsreview.com/2022/10/20/intel-core-i9-13900k...