常用的网站类型有哪些类型有哪些类型,下载优化大师安装桌面,浙江省住建厅网站,六安网络科技有限公司现代CPU持续的添加新特性#xff0c;使用这些特性可以大大简化找到底层问题的方法。 1 自顶向下微架构分析TMA#xff0c;是一种识别应用程序低效使用CPU微架构的强大技术#xff0c;识别负载的瓶颈#xff0c;定位出现问题的代码具体位置#xff0c;封装了CPU微架构中复杂… 现代CPU持续的添加新特性使用这些特性可以大大简化找到底层问题的方法。 1 自顶向下微架构分析TMA是一种识别应用程序低效使用CPU微架构的强大技术识别负载的瓶颈定位出现问题的代码具体位置封装了CPU微架构中复杂的技术点。 2 最后分支记录(last branch record)LBR是在执行过程中连续记录最新分支结果的机制通常用来采集调用栈热点分支计算每个分支的错误预测概率等等。 3 基于处理器事件的采样是一种增强的采样技术主要优势有降低采样开销和提供精确事件的能力。精确事件可以定位导致特定性能事件的具体指令。 4 Intel 处理器追踪是一种基于每条指令的时间戳记录和重建程序执行过程的工具主要用途是对性能故障进行事后分析和根因定位。 6.1 自顶向下微架构分析技术 TMA是识别程序CPU性能瓶颈的一种非常强大的技术不需要开发者对CPu的微架构和PMC有深入理解就能有效的找到CPU的性能瓶颈 TMA能识别程序中每个热点停滞执行的原因导致停滞瓶颈可能跟前端绑定后端绑定退休错误投机有关。图28描述了TMA性能瓶颈分类的概念我们知道CPU中有内存缓冲区它们持续跟踪正在执行的指令的信息。只要信的指令被取地址或者译码都在回在这些缓冲区中记录新的条目。如果在指定执行周期中指令对应的微操作没有被分配可能有两种原因不能对它进行取地址和译码。后端负载过重导致无法为新的微操作分配资源。被分配和调度执行但是没有退休的微操作跟错误投机相关。 TMA通过采集特定指标来观察程序的执行情况基于这些指标通过将应用程序关联到某个分类来表征其类型。每个分类中都嵌套更细的分类。可以更好的细分程序中CPU性能瓶颈我们多次运行被测试程序每次都关注特定的指标并往下钻。直到找到更详细的性能瓶颈分类。 TMA 槽位 非停滞 停滞 退休 错误投机 前端绑定 后端绑定 基础轻量 微码序列器 分支预测错误 机器清理 读取延迟 读取带宽 核绑定 内存绑定 浮点算数运算 其他 辅助 ITLB未命中 指令缓冲未命中 分支重定向 读取源1读取源2 除法器 执行端口利用率 存储绑定L1缓存绑定 L2缓存绑定 Ln缓存绑定 外存绑定。 标量运算向量运算 3 号端口1或2号端口 0号端口内存带宽内存延迟。 在真实的应用场景中性能可能受限于多种因素TMA需要同时向下钻多个类别确定每个类别瓶颈对程序性能的影响分析工具Intel Vtune Profiler AMD uprof 可以在一次基准测试运行中计算所有相关的指标。 前两层的TMA指标都是通过所有流水线槽位利用率来表示的。 6.1.1 Intel Vtune Profiler中的TMA TMA在最新的Intel Vtune Profiler的微架构搜索分析中有体现图30展示了7.zip基准测试的分析总结从图可以看到CPU错误投机导致了显著的执行时间浪费。 该工具的精妙之处就是可以单击自己感兴趣的指标可以展示与该指标相关的函数例如。 单击错误投机指标你将会看到图31展示的内容。 如果双击Lzma_DecodeReal2函数,Intel Vtune Profiler会展示代码视图如图32所示高亮显示的代码对LzmaDec_DecodeReal2函数的分支预测错误贡献最大。 最图32 微架构搜索源代码和汇编指令视图 6.1.2 linux perf中的TMA linux内核从4.8开始perf增加了一个 --topdown参数可以在perf stat命令中打印TMA第一层指标该层只有4个类别。 retiring bad speculat FE bound BE bound 为了获得高层TMA指标的值linux perf需要剖析整个系统-a, 所以我们可以看到所有的CPU核指标。但是通过taskset -c 0可以将基准测试绑定到core 0, 所以可以看到第一行也就是s0-c0对应的这一行。 可以使用toplev工具获得TMA 的第23及其他层指标。