intel-vtune微架构分析法(分析cpu硬件执行效率)

 1微架构分析

   一旦使用热点分析确定代码中的热点,就可以执行微架构分析来分析代码执行效率,来分析代码通过核心管道的效率。vtune启动分析微架构后,VTune会收集硬件事件,然后,它计算出一组用于指标的预定义比率,帮助分析代码执行级执行性能问题。

   微架构分析方法因cpu硬件体系结构有差异。对于“Ivy Bridge” 开头的cpu,采用基于使用自顶向下特征方法的自上而下的微体系结构分析方法,该方法是基于事件的指标的层次结构,可识别应用程序主要的硬件性能瓶颈。

intel-vtune微架构分析法(分析cpu硬件执行效率)_第1张图片

2cpu瓶颈分类

    从概念上讲,超标量处理器可以分为前端和后端,在前端将指令提取并解码为构成它们的微操作uOp,在后端执行所需的计算,并回写结果。在每个周期中,前端最多生成其中四个操作。它将它们放入管道插槽中,然后传递给后端执行。

     因此,对于以时钟周期为单位的给定执行持续时间,很容易确定包含在该持续时间内可以淘汰的有用工作的流水线时隙的最大数量。但是,包含有用工作的退休管道插槽的实际数量很少等于此最大值。这可能是由于多种因素造成的:

     a.某些管道插槽无法完成有用的工作,可能是因为前端无法及时获取或解码指令(前端绑定执行),或者是因为后端没有准

         备 好接受某种特定类型的更多操作(后端绑定执行)。

     b.此外,即使是包含有用工作的管道插槽,也可能由于不良推测而无法退役。 

     c.前端绑定执行可能是由于大型代码工作集,不良的代码布局或微代码辅助。

     d.后端绑定执行可能是由于长延迟操作或执行资源的其他争用造成的。错误的推测最常见的原因是分支预测失误。

每个指令周期,每个cpu内核可以填充4个有用的微操作进入四个流水线插槽。因此,对于某个时间间隔,可以确定在该时间间隔内填满的流水槽和空的流水槽的数量。通过这种分析,将所有流水线插槽分为一下四类:

  • 包含已发布和淘汰的有用工作的管道插槽(已淘汰)

  • 包含已发布和已取消的有用工作的管道插槽(错误推测)

  • 由于前端问题而无法进行有用工作的管道插槽(前端阻塞)

  • 由于后端(后端阻塞)的备份而无法完成有用工作的管道插槽

你可能感兴趣的:(intel-vtune微架构分析法(分析cpu硬件执行效率))