首页 > 其他分享 >CPU性能分析方法论 TMA(Top-down Microarchitecture Analysis)

CPU性能分析方法论 TMA(Top-down Microarchitecture Analysis)

时间:2024-11-14 21:46:25浏览次数:1  
标签:Top Analysis down TMA 指令 跳转 流水线 CPU 分支

image

from pixiv

前置知识

指令流水线与分支预测

指令流水线(英语:Instruction pipeline)是为了让计算机和其它数字电子设备能够加速指令的通过速度(单位时间内被执行的指令数量)而设计的技术。

流水线在处理器的内部被组织成层级,各个层级的流水线能半独立地单独运作。每一个层级都被管理并且链接到一条“链”,因而每个层级的输出被送到其它层级直至任务完成。

image

from 指令流水线wiki

上述说的流水线级数在此图上为4。

image

指令执行中产生一个“打嗝”(hiccup),在流水线中生成一个没有实效的气泡


条件分支指令通常具有两路后续执行分支。即不采取(not taken)跳转,顺序执行后面紧挨JMP的指令;以及采取(taken)跳转到另一块程序内存去执行那里的指令。是否条件跳转,只有在该分支指令在指令流水线中通过了执行阶段(execution stage)才能确定下来。

如果后来发现分支预测错误,那么流水线中推测执行的那些中间结果全部放弃,重新获取正确的分支路线上的指令开始执行。在分支预测失败时浪费的时间是从取指令到执行完指令(但还没有写回结果)的流水线的级数。

分支预测不同于“分支目标预测”(Branch target predictor)。后者是指对指令高速缓存中的内容,检测出其中的条件跳转指令与无条件跳转指令,然后为指令高速缓存预装入(prefetch)相应的跳转目标代码块。

即分支预测投机的指令是真正会执行的。

TMA基本概念

  1. TMA是什么?

    Top-down Microarchitecture Analysis,是对CPU性能瓶颈进行分析和优化的方法论。

    • Top-down是基于事件指标的层次组织。
      image
      从上图可以初步窥见,所谓事件是像缓存未命中事件、分支预测失败等影响CPU性能的事情。

    • 这套方法论计算基于流水线资源利用率。

参考博客

  1. Intel VTune Profiler Performance Analysis Cookbook — Simplified Chinese

  2. Top-down Microarchitecture Analysis Method Cookbook

  3. 倚天710性能监控 —— 自顶向下的CPU架构性能瓶颈分析方法-Topdown

  4. C/C++ 性能优化背后的方法论:TMAM

  5. 几句话说清楚13:什么是Top-Down性能分析方法

标签:Top,Analysis,down,TMA,指令,跳转,流水线,CPU,分支
From: https://www.cnblogs.com/cilinmengye/p/18546908

相关文章

  • MySQL数据库innodb_fast_shutdown参数
    innodb_fast_shutdown是MySQLInnoDB存储引擎的一个配置参数,控制在关闭MySQL服务时InnoDB的关机速度和数据恢复的方式。它有三个值,分别是0、1和2,每个值的作用如下:1.innodb_fast_shutdown=0功能:关闭时不会快速退出。MySQL会执行完全的InnoDB日志回滚过程,即使没......
  • Image与Bitmap的区别及相互转换
    1. Image.FromFile()返回的是某个继承自Image的具体类的对象,在这里,就是Bitmap或者Metafile其中之一。这应该算是factory pattern的一种形式。所以,Image类确实不能直接创建对象的,但这里Image.FromFile()返回的是Bitmap或者Metafile的对象。2. Bitmap不仅仅对应于bmp,其实只要是像......
  • Postman接口测试从入门到精通(二)
    十一、Postman批量运行测试用例十二、Postman数据驱动之cSV文件和JSON文件的处理十三、测试必须带请求头的接口常见的请求头:Host请求的主机地址connection  连接方式Accept客户端接收到的数据格式×-Requestea-Wih异步请求 User-Agent  客户端的用户类型Reterer  ......
  • CodeCraft-21 and Codeforces Round 711 (Div. 2) F. Christmas Game【阶梯博弈、换根
    这道题目是比较经典的树上阶梯博弈。设一个点的深度是\(dep_i\),如果两个点\(i,j\)满足\(dep_i\not\equivdep_j\modk\),则两个点对答案的影响是完全独立的。我们可以把图拆分为\(k\)部分,并且按照原图中的祖先关系把新图连接为\(k\)棵树。对于一个点\(i\),在新图中的深度为\(dep_......
  • 爬虫开发工具与环境搭建——使用Postman和浏览器开发者工具
    第三节:使用Postman和浏览器开发者工具在网络爬虫开发过程中,我们经常需要对HTTP请求进行测试、分析和调试。Postman和浏览器开发者工具(特别是Network面板和Console面板)是两种最常用的工具,能够帮助开发者有效地捕获、分析和调试HTTP请求与响应,从而使爬虫的开发过程更加顺利。1.......
  • CSDN批量导出文章为markdown,(给我文章自动转成vip可看。。。直接润)
    >我真服了。。。。太久没登,回来一看自个写的公开文章变vip文章了。。。。。。>  好活  #准备整个脚本把文章下载导出markdown找了一下,发现之前的的方法挺多都修复了。。。还加了反爬机制,自带的导出pdf文档,里面的代码无法完全显示>找了下是最新的方法:[CSDN文章......
  • 科研绘图系列:R语言功能通路表达热图(heatmap)
    文章目录介绍加载R包数据下载导入数据数据预处理热图:所有通路结果系统信息介绍R语言功能通路表达热图加载R包library(readxl)library(ggpubr)library(ggh4x)library(ggtext)library(tidyverse......
  • 如何把markdown文件导出为pdf
    1.下载Prince[下载小工具]下载后直接安装即可。2.添加环境变量先找到小工具的可执行文件Prince.exe的路径。.\Prince\engine\bin把Prince.exe的路径的添加到环境变量中,然后重启vscode。3.在vscode中把md文件转换成pdfa.先保证自己有MarkdownPreviewEnhanced......
  • Postman接口测试从入门到精通
     一、接口测试的简介和分类接测试就是测试系统组件接口之间的一种测试。分类︰测试外部接∶测试被测系统和外部系统之间的接口。(只需要测试正例即可,看是否调用成功即可)测试内部接口:1.内部接口只提供给内部系统使用。((预算系统,承保系统)(只需要测试正例即可)2.内部接口提供给外......
  • 「漏洞复现」某融信运维安全审计系统 download 任意文件读取漏洞
    0x01 免责声明请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需......