有人有过在 Core 2 Duo 处理器上使用预取指令的经验吗?
我一直在使用(标准?)预取集(prefetchnta
, prefetcht1
等)在一系列 P4 机器上取得了成功,但是当在 Core 2 Duo 上运行代码时,似乎prefetcht(i)
指令什么也不做,并且prefetchnta
指导效果较差。
我评估性能的标准是当向量大小足够大以实现缓存外行为时,BLAS 1 向量-向量 (axpy) 操作的计时结果。
英特尔推出了新的预取指令吗?
From an 英特尔参考文档 http://www.intel.com/Assets/PDF/manual/248966.pdf关于 Intel 64 和 IA-32 架构,请查看第 163 和 77 页:
Pentium 4 和 Intel Xeon 处理器
基于英特尔NetBurst
微架构引入硬件
除了软件之外的预取
预取。硬件预取器
透明地操作以获取数据
和来自内存的指令流
无需程序员
干涉。随后的
微架构持续改进
并向硬件添加功能
预取机制。早些时候
硬件的实现
预取机制重点关注
预取数据和指令
内存到L2;更近
实现提供了额外的
将数据从 L2 预取到的功能
L1。在英特尔 NetBurst 中
微架构、硬件
预取器可以跟踪8个独立的
溪流。
Pentium M 处理器还提供
数据的硬件预取器。它可以
跟踪 12 个独立的流
前进方向和 4 个流
向后的方向。处理器的
PREFETCHNTA 指令也取
64字节进入第一级数据
缓存而不污染
二级缓存。
英特尔酷睿单核和英特尔酷睿双核
处理器提供更先进的
数据的硬件预取器
奔腾 M 处理器。主要差异
总结于表 2-10 中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)