CPU性能优化--采集调用栈

我们可能经常会遇到程序热点函数多个调用调用情况这样就需要知道哪个函数调用foo次数最多应用程序函数出现热点要理解为什么特定函数呈现热点我们需要知道程序控制哪条路径最热

Intel VTune profiler基准测试x264源代码和汇编代码分析视图

分析foo所有调用逻辑可能非常耗时我们希望关注那些导致foo热点调用我们想知道程序CFG最热路径剖析工具通过收集性能样本捕获进程调用以及信息实现这一点然后所有收集进行分组从而使我们能够看到导致某个特定函数最热路径

linux perf工具收集调用栈三种可能方法

指针 perf record--call-graph fp 需要二进制构建时候带上--fnoomit-frame-pointer 参数

DWARF 调试信息perf record--call-graph dwarf 需要二进制文件编译构建带上DWARF调试信息 -g

intel最后分支记录Last Branch Record 硬件特性调用深度不如前面两种方法关于LBR更多信息参见6.2

下面使用Linux perf采集程序调用栈示例根据输出结果我们知道foo55%执行时间是从funcl调用的,我们可以清楚看到foo调用之间开销分布

使用Intel vtune profier时候可以配置分析功能选中 收集来采集调用数据

5.4.4 火焰

是一种常用可视化剖析数据程序最热代码路径方法可以让我们看到哪些函数占用了大部分执行时间

5.5 屋顶线性能模型

屋顶线性能模型加利福利亚分校2009提出来一种面向吞吐性能模型常用语性能计算模型屋顶线表示应用程序性能不可能超过计算机处理能力事实程序中每个函数循环计算机计算能力或者内存容量限制应用程序受到某个屋顶线函数的限制

硬件有两个主要限制计算速度数据搬移速度应用程序最大性能峰值计算性能平台带宽算数强度乘积之间最小限制24显示屋顶线基于硬件限制绘制两个应用程序AB性能程序不同部分可能具有不同性能特征屋顶线模型考虑这一点可以同一个图上表示显示应用程序多个函数循环

强度FLOPS 字节之间比率可以根据程序每个循环进行计算现在我们计算代码清淡8代码强度最内层循环体有一个加法运算一个乘法运算因此2浮点运算还有三个操作一个操作

提高应用程序性能传统方法充分利用计算机SIMD多核功能, 通常需要很方面进行优化包括向量化内存线程。屋顶线方法有助于评估应用程序这些特征屋顶线我们可以绘制标量单核SIMD单核SIMD性能理论最大值可以让我们了解应用程序性能提高空间如果发现应用程序计算密集型并且性能低于峰值标量单核性能应该考虑强制向量化并利用多个线程分配工作相反如果应用程序算术强度比较低应该寻找改善内存访问方法使用屋顶线模型性能最终目标向上移动向量化现成话向上移动通过算术强度优化内存访问将点向右移动同事还可能提高性能

理论最大值可以根据所使用计算机特征计算计算机理论最大值并不困难对于Intel Core i5-8259U处理器具有avx22融合乘加单元最大FLOPS可以通过如下公式

峰值 FLOPS = 8(逻辑核数量) x 256(avx)位宽/ 32(浮点数大小)

总之 屋顶线性能模型有助

1 识别性能瓶颈

2 指导软件优化

3 确定何时优化已经达到了极限

4 评估机器能力相关性能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/61841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

milvus es

ES 与 Milvus 结合实现高效文档搜索的实战指南 原文链接 目录 背景介绍场景与效果概述架构对比与问题分析Milvus 向量搜索架构ES Milvus 搜索架构详细流程解析Milvus 搜索配置详解ES 搜索策略与 DSL 配置结果合并与排序策略总结与未来优化 1. 背景介绍 随着团队和公司的发…

Flutter 设计模式全面解析:抽象工厂

设计模式作为软件开发中的经典解决方案,在 Flutter 的开发中也能为我们提供强大的架构支持。本文来介绍一下如何在 Flutter 中来实现抽象工厂设计模式,以及如何创建一系列相关或依赖对象并优雅地管理它们之间的复杂依赖关系。 日常开发中我们也能经常看…

『 Linux 』网络层 - IP协议 (二)

文章目录 路由NAT技术分片与组装分片的组装IP协议分片的短板 路由 通常情况路由器具备了一个非常重要的功能,即构建子网; 同时路由器需要实现跨网络通信,说明路由器必须存在两个或以上的IP地址,通常在路由器中可以看到几个接口,分别是一个WAN口和几个LAN口; WAN口IP被称为公网I…

深度学习实战图像缺陷修复

这里写目录标题 概述1. 图像缺陷修复的研究背景2. 传统图像缺陷修复方法的局限性(1) 基于纹理合成的方法(2) 基于偏微分方程(PDE)的方法 3. 深度学习在图像缺陷修复中的兴起(1) 深度学习的基本思路(2) 深度学习方法的优势(3) 关键技术的引入 4. 深度学习…

【SQL实验】索引操作(菜单操作和命令操作)

【代码是自己的解答,并非标准答案,也有可能写错,文中可能会有不准确或待完善之处,恳请各位读者不吝批评指正,共同促进学习交流】 文件”成绩管理”导入【具体操作前几篇文章详细展示过来,这里跳过。还是不太…

[pdf,epub]162页《分析模式》漫谈合集01-35提供下载

《分析模式》漫谈合集01-35的pdf、epub文件,已上传至本号的CSDN资源。 如果CSDN资源下载有问题,可到umlchina.com/url/ap.html。 已排版成适合手机阅读,pdf的排版更好一些。 ★UMLChina为什么叒要翻译《分析模式》? ★[缝合故事…

【Linux学习】【Ubuntu入门】1-7 ubuntu下磁盘管理

1.准备一个U盘或者SD卡(插上读卡器),将U盘插入主机电脑,右键点击属性,查看U盘的文件系统确保是FAT32格式 2.右键单击ubuntu右下角图标,将U盘与虚拟机连接 参考链接 3. Ubuntu磁盘文件:/dev/s…

移远通信推出全新5G RedCap模组RG255AA系列,以更高性价比加速5G轻量化大规模商用

11月20,全球领先的物联网整体解决方案供应商移远通信宣布,正式推出其全新5G RedCap模组RG255AA系列。该系列模组支持5G NR独立组网(SA)和LTE Cat 4双模通信,具有高性能高集成度、低功耗、小尺寸、高性价比等优势&#…

数据集-目标检测系列- 花卉 玫瑰 检测数据集 rose >> DataBall

数据集-目标检测系列- 花卉 玫瑰 检测数据集 rose >> DataBall DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 贵在坚持! 数据样例项目地址: * 相关项目 1)数据集可视化项…

GitHub 开源项目 Puter :云端互联操作系统

每天面对着各种云盘和在线应用,我们常常会遇到这样的困扰。 文件分散在不同平台很难统一管理,付费订阅的软件越来越多,更不用说那些烦人的存储空间限制了。 最近在 GitHub 上发现的一个开源项目 Puter 彻底改变了我的在线办公方式。 让人惊…

Python 使用 OpenCV 将 MP4 转换为 GIF图

以下是使用 Python 和 OpenCV 将 MP4 转换为 GIF 的示例代码: python import cv2 import imageiodef mp4_to_gif(mp4_path, gif_path, fps10, start_timeNone, end_timeNone):"""将MP4视频转换为GIF动图。:param mp4_path: 输入MP4视频的路径。:pa…

el-table的树形结构后端返回的id没有唯一键怎么办

前端自己生成唯一键 首先尝试了表格的几个字段用-拼接成唯一键 但是仍报错 只好自己利用uuid库生成;

【Linux】缓冲区/磁盘inode/动静态库

目录 一、缓冲区 (一)概念 (二)刷新策略 (三)仿写FILE (四)内核缓冲区 二、磁盘 (一)磁盘的存储 (二)磁盘的抽象存储结构 &am…

SpringBoot(9)-Dubbo+Zookeeper

目录 一、了解分布式系统 二、RPC 三、Dubbo 四、SpringBootDubboZookeeper 4.1 框架搭建 4.2 实现RPC 一、了解分布式系统 分布式系统:由一组通过网络进行通信,为了完成共同的任务而协调工作的计算机节点组成的系统 二、RPC RPC:远程…

【Github】如何使用Git将本地项目上传到Github

【Github】如何使用Git将本地项目上传到Github 写在最前面1. 注册Github账号2. 安装Git工具配置用户名和邮箱仅为当前项目配置(可选) 3. 创建Github仓库4. 获取仓库地址5. 本地操作(1)进入项目文件夹(2)克隆…

Spring:Spring整合Mybatis开发之纯Mybatis开发

目前我们已经对Spring有一个简单的认识了: Spring有一个容器,叫做IoC容器,里面保存bean。 在进行企业级开发的时候,其实除了将自己写的类让Spring管理之外,还有一部分重要的工作就是使用第三方的技术。前面已经讲了如何…

大语言模型---LoRA中损失值的计算

文章目录 概要损失计算流程小结 概要 Llama-7B模型的LoRA微调训练中,通过使用Cross-Entropy Loss来度量模型输出的预测分布和真实标签分布之间的距离,来衡量模型的准确性。 本文主要介绍LoRA中损失值的计算流程。 Cross-Entropy Loss作用:是…

如何选择服务器

如何选择服务器 选择服务器时应考虑以下几个关键因素: 性能需求。根据网站的预期流量和负载情况,选择合适的处理器、内存和存储容量。考虑网站是否需要处理大量动态内容或高分辨率媒体文件。 可扩展性。选择一个可以轻松扩展的服务器架构,以便…

IT资产管理工具-NetBox

IT资产管理工具-NetBox 推荐一款IT资产管理工具 了解推荐阅读官方中文文档 https://docs.wangluohe.com/introduction/ 硬件要求 ​ - 建议4Core 8G以上,100G存储空间 这里我使用的Linux镜像为 CentOS8-Stream 提前关闭Selinux和防火墙 部署NetBox 一&#…

实战 | C#中使用YoloV8和OpenCvSharp实现目标检测 (步骤 + 源码)

导 读 本文主要介绍在C#中使用YoloV8实现目标检测,并给详细步骤和代码。 详细步骤 【1】环境和依赖项。 需先安装VS2022最新版,.NetFramework8.0,然后新建项目,nuget安装 YoloSharp,YoloSharp介绍: https://github.com/dme-compunet/YoloSharp 最新版6.0.1,本文…