【发布时间】:2011-01-22 03:17:13
【问题描述】:
现代 CPU 的缓存访问速度是多少? Intel P4、Core2、Corei7、AMD 在每个处理器时钟周期可以从内存读取或写入多少字节?
如果有的话,请用理论(ld/sd 单元的宽度,其吞吐量以 uOPs/tick 为单位)和实际数字(甚至 memcpy 速度测试或 STREAM 基准测试)来回答。
PS 这是一个问题,与汇编程序中加载/存储指令的最大速率有关。可以有理论上的加载速率(所有指令 Per Tick 都是最宽的加载),但处理器只能给出其中的一部分,即实际的加载限制。
【问题讨论】:
-
@osgx:转移到 serverfault 等,不是编程问题吗?
-
@TFD,不,这是非常编程相关的。
-
请参阅“分析英特尔酷睿 2 架构上的缓存带宽”,作者是工业大学信息服务和高性能计算中心的 Robert Sch¨one、Wolfgang E. Nagel 和 Stefan Pfl¨uger Dresden, 01062 Dresden, Germany 本文介绍了计算内核和不同缓存之间的测量带宽。 STREAM benchmark1 是科学家用来确定内存带宽的最常用的内核之一。为了更深入地了解 STREAM 基准,我们重新设计了小问题规模的准确值。
-
那么你想知道“加载/存储指令的最大速率”还是“加载/循环的字节数”的答案?答案是完全不同的。最近的 CPU 更多地受到指令(例如,2 次加载/周期)的限制,而不是字节(因此字节加载和 32 字节加载具有大致相同的成本),至少在靠近内核的缓存级别。对于 DRAM,它更多的是关于缓存行/周期:即,无论您加载整行还是 1 个字节,它的成本都是一样的。
标签: performance caching cpu cpu-architecture cpu-cache