在以下场景中,硬件预取器是否会检测到步幅并预取块?
案例1:我正在生成唯一的随机编号(非重复)并列出那些随机编号。现在,通过在列表中使用那些随机的no,我在那个位置访问数组。因为在单次迭代中没有固定的步幅,硬件预取器将无法提前预取块。
现在,如果我对多次迭代使用相同的随机序列no,则在单次迭代中,硬件预取器将无法找到步幅,但对于多次迭代,我使用相同的序列。
那么,我的问题是,硬件预取器会检测到我重复使用的序列(以随机方式生成)并预取块吗?
我可以生成一个随机序列ONCE并使用相同的序列进行多次迭代吗? * 我可以使用这种方法来阻止硬件预取器检测到一个步幅吗? * < / p>
或者,我应该在每次迭代中生成随机数吗?