1.设计数据密集型程序,评估CPU数据预取效果:
建立一个长度为1024*1024*64的一维数组,不采用预取技术的方法是,以16为步长(尽量保持数据不在一个cache行)取数据,并作运算,计算该过程所用时间;采用预取技术的方法是,采用_mm_prefetch函数进行数组的欲取,仍然以16为步长(尽量保持数据不再一个cache行)取数据,并作运算,计算该过程所用时间。源代码如下,在win7命令行中,使用dev c++编译命令:g++ test.cpp,实验结果如下:
1.设计数据密集型程序,评估CPU数据预取效果:
建立一个长度为1024*1024*64的一维数组,不采用预取技术的方法是,以16为步长(尽量保持数据不在一个cache行)取数据,并作运算,计算该过程所用时间;采用预取技术的方法是,采用_mm_prefetch函数进行数组的欲取,仍然以16为步长(尽量保持数据不再一个cache行)取数据,并作运算,计算该过程所用时间。源代码如下,在win7命令行中,使用dev c++编译命令:g++ test.cpp,实验结果如下: