如何计算理论上的最大 CPU-RAM 带宽?
Posted
技术标签:
【中文标题】如何计算理论上的最大 CPU-RAM 带宽?【英文标题】:How to calculate the theoretically maximal CPU-RAM bandwidth? 【发布时间】:2019-03-11 22:56:28 【问题描述】:CUDA (GPGPU) 程序员很早就被教导要测量他们的程序的带宽,看看它们是否接近理论最大值(可以在 GPU 规范中查找或使用标准实用程序进行测量)。
这对于内存带宽受限的程序显然很有用。
有没有办法计算理论上的最大 CPU-RAM 带宽(考虑到典型设置是多 DIMM 和多核,有时是多插槽)?
【问题讨论】:
【参考方案1】:你可以在ark.intel.com上找到一些相关的资料,比如core i7-6700K,网站读取带宽为34.1 GB/s,即8(bits/Transactions)*2(内存通道) *2.133GT/s(RAM 模块的事务) = 34.128 GB/s。
对于更新的处理器,并非所有信息都可用,但您可能会发现:Core i9-9980XE 具有 8*4*2.666 = 85.312 GB/s 峰值带宽。
这是假设安装了最佳的 DDR4 内存模块。
Piriform's speccy 工具可以在 RAM 菜单上为您提供以下硬件信息:
在这种情况下,两个插槽 2133 GT/s 和两个通道 = 34.1GB/s。
【讨论】:
我的经验是,您需要不同内核上的多个线程才能接近峰值带宽。根据 CPU 供应商的不同,单核带宽可能从正常到非常低不等。 根据你自己的公式,你应该得到了 34G bits /s(这是不正确的)。正确的公式是 64 位(总线宽度)* 2 * 2133 = 237 Gbits/s = 34 GB/s。以上是关于如何计算理论上的最大 CPU-RAM 带宽?的主要内容,如果未能解决你的问题,请参考以下文章