我有兩個數組:A
與N_A
隨機整數和B
與N_B
0
和(N_A - 1)
之間的隨機整數。我用的號碼B
作爲索引到A
在下面的循環:硬件預取器在這種內存訪問模式中是否受益?
for(i = 0; i < N_B; i++) {
sum += A[B[i]];
}
進行實驗上的英特爾i7-3770,N_A
= 256萬美元,N_B
= 64萬美元,該環路僅需要0.62秒,其對應到大約9納秒的存儲器訪問延遲。
由於此延遲太小,我想知道硬件預取器是否正在發揮作用。有人可以提供解釋嗎?