l2 cache缺失率低,运行时间反而长?

chika 2007-05-22 02:54:38
用vtune测试的,测试内容是2nd level cache load misses retired,测了两个程序a、b,这两个程序的主函数基本相同,只是主函数调用的数据预处理函数不同,编译出的两个版本,而数据预处理函数之后是调用实际的数据处理函数test,程序的时间消耗也主要在test函数上。

程序运行时间是,a的运行时间0.04秒,b为0.11秒,但是测试出来的test函数的2nd level cache load misses retired却是a为35014*26=910364(10.579%),b为24540*37=907980(0.576%),这是不是说明b的cache性能高呢,但为什么b的运行时间比a慢呢?

duration设的1000秒 sample interval设的0.01毫秒,其他都默认,是不是因为程序运行时间的问题还应该设置其他的选项?
...全文
501 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
chika 2007-05-31
  • 打赏
  • 举报
回复
谢谢楼上各位,我已经知道了,我是把那个百分比当成cache的缺失率了,其实是test函数的2nd level cache load misses retired值占整个程序的2nd level cache load misses retired值的百分比。对vtune不太熟悉,所以问题问的也不太清楚
IntelSupport 2007-05-28
  • 打赏
  • 举报
回复
其他的因素有没有考虑到。比如什么data dependency 等等。



一般情况下,同样的 test function,在底层和cpu 构架有关的问题不太会造成 a 0.04秒,b为0.11秒 2被多的差别。 可能是一些逻辑性的问题。



你吧程序贴出来, 大家可以分析下
IntelSupport 2007-05-28
  • 打赏
  • 举报
回复
楼上的说得对,

这说明性能的最大瓶颈不在这里。

2nd level cache load misses retired: 是个性能因素 但是在这个应用里面, 2nd level cache load misses retired 看起来不是起决定因素的问题。
flyingdog 2007-05-25
  • 打赏
  • 举报
回复
vtune可以测试每个函数,每个语句的时间花费,先测测到底是什么地方的时间不同吧。
chika 2007-05-23
  • 打赏
  • 举报
回复
对于单机程序来说,性能瓶颈还可能在哪里呢?
mathe 2007-05-23
  • 打赏
  • 举报
回复
这说明性能瓶颈不在这里
mathe 2007-05-23
  • 打赏
  • 举报
回复
比如可以花费在计算中

568

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧