【发布时间】:2014-03-15 13:25:10
【问题描述】:
我有两个数组:A 和 N_A 随机整数和 B 和 N_B 之间的随机整数 0 和 (N_A - 1)。我在以下循环中使用B 中的数字作为A 的索引:
for(i = 0; i < N_B; i++) {
sum += A[B[i]];
}
在 Intel i7-3770 上进行实验,N_A = 2.56 亿,N_B = 6400 万,此循环仅需 0.62 秒,对应的内存访问延迟约为 9 纳秒。
由于这个延迟太小,我想知道硬件预取器是否在起作用。有人可以解释一下吗?
【问题讨论】:
标签: performance hardware ram prefetch