如何计算理论上的最大 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 带宽?的主要内容,如果未能解决你的问题,请参考以下文章

计算机网速与带宽

交换机转发速率吞吐量背板带宽计算(详解)

交换机转发速率吞吐量背板带宽计算(详解)

交换机转发速率吞吐量背板带宽计算(详解)

arm总线带宽的余量如何设计大于30

宽带速度怎么计算