Qcom平台通过Hexagon IDE 测试程序性能指导

news2024/9/22 11:34:03

Qcom平台通过Hexagon IDE 测试程序性能指导

  • 1 安装Hexagon IDE工具
  • 2 测试工程
    • 2.1 打开Hexagon IDE
    • 2.2 新建工程
    • 2.3 添加测试案例
      • 2.3.1 方法一:新建
      • 2.3.2 方法二:拷贝
    • 2.4 配置测试环境
      • 2.4.1 包含头文件
      • 2.4.2 添加程序优化功能(需先bulid一下)
      • 2.4.3 添加gprof测试性能
    • 2.5 编译
    • 2.6 运行
  • 3 解析gmon.t_0文件
  • 4 解读生成的txt文件

1 安装Hexagon IDE工具

安装包在共享盘中的地址为:Z:\Software_Data\Software\tool\Qcom,我安装的3.4.3版本:
在这里插入图片描述

安装时,可选择默认路径,也可选择其他路径。

2 测试工程

2.1 打开Hexagon IDE

在安装路径下打开Launch Hexagon IDE
在这里插入图片描述
在这里插入图片描述

2.2 新建工程

  1. 依次选择菜单栏的File >> New >> Hexagon Project:
    在这里插入图片描述

  2. 弹出建立工程的对话框:
    在这里插入图片描述

  1. Project name栏里填写项目名称,注意项目名称不能包含空格;

  2. Project location栏为打开Hexagon IDE工具时的工作地址,选择默认路径即可;

  3. Tools location栏为安装hexagon_sdk的工具路径,一般不能修改;

  4. Hexagon SDK location栏用来选择SDK的路径,打开Hexagon IDE时就自动填上;

  5. Project type栏里选择Executable(.exe),因为这个程序我们在Windows环境下运行;

  6. Architecture栏选择V60(-mv60);

  7. Choose project template栏选择General下的Empty Executable;

  8. 其余的无须修改,保持默认,如下:
    在这里插入图片描述

  9. 点击Finish新建完成,因Project location选择的是C:/Users/xx(我的workspace路径),此时在该路径下可以找到新建的工程:
    在这里插入图片描述

2.3 添加测试案例

添加测试案例有两个方法:新建和拷贝,新建适用于代码量小的测试,当测试代码文件较多时,建议使用拷贝。

2.3.1 方法一:新建

  1. 在项目名称上单击右键,选择New >> Source File
    在这里插入图片描述

  2. 弹出如下对话框
    在这里插入图片描述

注意:Source file框中填写源文件名称时,要加上文件类型,这里可以是C或者C++。在Template框中选择C或者C++,这里选择的要与填写的源文件类型相符。
3. 点击Finish完成创建
在这里插入图片描述

2.3.2 方法二:拷贝

将头文件、源文件和配置文件拷贝到新建的工程下,如下图
在这里插入图片描述

注意,可以将包含主函数的源文件放至src文件夹,拷贝完成之后需要在Hexagon IDE主界面中的Project Explorer中刷新,有两个方法:其一,在Project Explorer空白处单击右键,选中Refresh;其二,快捷键F5。

2.4 配置测试环境

配置测试环境主要包含三个:包含头文件、添加程序优化功能和添加gprof测试性能。包含头文件主要配置项目头文件路径,添加程序优化功能主要实现优化代码的功能,添加gprof测试性能主要是生成测试文件。

2.4.1 包含头文件

  1. 将头文件路径包含在工程中,在项目名称上单击右键,打开当前工程的Properties
    在这里插入图片描述

  2. 在弹出的界面中依次点击C/C++ General >> Paths and Symbols >> Includes >> GNU C >> Add
    在这里插入图片描述

  3. 接着在弹出的界面中点击File system,如下图
    在这里插入图片描述

  4. 选择头文件的路径,如下图
    在这里插入图片描述

  5. 点击OK保存,此时在Project Explorer中显示包含的文件
    在这里插入图片描述

2.4.2 添加程序优化功能(需先bulid一下)

  1. 同样打开当前工程的Properties,在弹出的界面中依次点击C/C++ Build >>Settings >> Tool Settings,Optimization为优化等级,将Hexagon C++ Compiler下的Optimization和Hexagon C Compiler下的Optimization均设置为为Optimize more(-O2)
    在这里插入图片描述

  2. 点击OK,设置成功。

2.4.3 添加gprof测试性能

  1. 同样打开当前工程的Properties,在弹出的界面中依次点击Run/Debug Settings >> SHS_haptic_effect(工程名),在弹出的界面中点击Simulator,并在当前界面的Miscellaneous flags框中添加- -profile命令,用于生成gmon文件
    在这里插入图片描述

  2. 点击OK,设置成功。

2.5 编译

  1. 在项目名称上单击右键,点击Build Project编译,或者直接采用快捷键Ctrl + B。编译完成后,会在项目下生成编译好的Binaries文件
    在这里插入图片描述

  2. 同时在项目路径下的LLVM Debug文件夹下生成可执行文件
    在这里插入图片描述

2.6 运行

  1. 在工具栏点击运行按钮
    在这里插入图片描述

  2. 运行结束会显示如下界面
    在这里插入图片描述

  3. 运行结束后会在项目所在的文件夹下生成gmon.t_0文件
    在这里插入图片描述

3 解析gmon.t_0文件

  1. cmd进入高通SDK路径下的bin目录下,有一个hexagon-gprof.exe文件,gprof是一个用于读取profile结果文件的工具
    在这里插入图片描述

  2. 将gmon.t_0文件拷贝至该文件夹下,并在cmd界面执行hexagon-gprof.exe,命令如下:
    在这里插入图片描述

注意:如须重新解析新生成的gmon.t_0文件,需将新生成的gmon.t_0文件重新拷贝到该目录下。
指令:.\hexagon-gprof.exe C:\Users\xx\xxxxx_effects\LLVM_Debug\xxxxx_effects gmon.t_0>xxxxxx_effects.txt

4 解读生成的txt文件

  1. 通过gprof解析生成的txt文件头如下
    在这里插入图片描述

  2. 各参数代表含义如下
    %time 函数执行占时百分比
    cumulative cycle(s) 函数和以上所有函数累积执行周期
    self cycle(s) 函数执行周期
    calls 函数执行总次数
    self Mc/call 函数每执行一次的执行周期
    total Mc/call 函数及其衍生函数执行一次的执行周期
    name 函数名

  3. MCPS(Million Cycles Per Second)计算公式:
    某函数的MCPS = total_cycles × Fs / (time × number of channels × Fs ×1000000)

  4. 示例
    如函数butter_filter_process_new执行周期9340704,采样率48k,time为2s,number of channels为2,则函数butter_filter_process_new的MCPS为
    MCPS = 934070448000/(22480001000000)
    注意:如果某函数有衍生函数,则计算MCPS时需加上所有衍生函数的self cycles。

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

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

相关文章

nodejs安装+踩坑报错解决

下载Node.js安装包 官网下载地址:http://nodejs.cn/download/,根据自己电脑选择32位还是64位, 下载地址 选择合适的版本下载 X86是32位的,X64是64位的,我们一般是下载win版X64的msi文件的是点击可以直接启动安装程序的…

框架设计MVC

重点: 1.用户通过界面操作,传输到control,control可以直接去处理View,或者通过模型处理业务逻辑,然后将数据传输给view。 2.control包含了model和view成员。 链接: MVC框架详解_mvc架构-CSDN博客 MVC架…

使用 Python 爬虫实现自动获取天气信息并语音播报

简介 在本文中,我将介绍如何使用 Python 编写一个简单的爬虫程序,该程序可以自动获取某个城市的天气信息,并使用语音库将这些信息播报出来。我们将使用 pyttsx3 库进行语音播报,以及 requests 和 lxml 库来获取和解析网页数据。 …

深度刨析程序中的指针

前面我们已经学习过了指针的一下性质: 指针就是个变量,用来存放地址,地址唯一标识的一块内存空间指针的大小是固定的4/8个字节(32位平台/64位平台)指针是有类型,指针的类型决定了指针的加减整数的步长&…

C语言------指针讲解(2)

目录 一、数组名的理解 二、使用指针访问数组 三、一维数组传参的本质 四、冒泡排序 五、二级指针 六、指针数组 七、指针数组模拟二维数组 一、数组名的理解 通过学习,我们知道:数组名和数组首元素的地址打印出来的结果一模一样,数组…

C语言函数:编程世界的魔法钥匙(1)

目录 1.C语言中的函数是什么? 2.函数的分类: 2.1 标准库函数 2.1.1 库函数的诞生: 2.1.2 库函数的作用: 2.1.3 如何学习使用库函数 2.2 自定义函数 2.2.1 函数的组成: 2.2.2 自定义函数的优点 2.2.3 例题 3…

Windows下安装Mujoco1.50

Windows下安装Mujoco1.50复现强化学习论文 很多经典强化学习算法(DDPG、PPO)使用Mujoco环境进行实验和评估,配置复现环境非常困难,有以下几点原因: 年代久远,Mujoco-py的依赖管理做的不好,仅限…

Apache trino的ldap认证开启

作者:櫰木 1、背景 由于trino 默认没有开启用户认证体系,需要ldap用户进行认证。开启tls和ldap用户认证,提高安全性。 2、配置 前置条件。 trino 集群已经部署完成 ldap 服务 openjdk 版本大于11.0.17 生成证书 keytool -genkeypair…

实现异步天气数据获取与Spring缓存集成

你好呀,我是小邹。 在Web应用中,实时天气数据的获取是一个常见的需求,特别是在需要频繁更新天气信息的场景下,如旅游网站、天气应用或任何需要展示地理位置相关天气的应用。然而,频繁的外部API调用不仅会增加服务器的…

Hive理论讲解

Hive介绍 1、Hive本质 Hive本质是【数仓设计方案】,hive本身并不存储数据【数据包含:元数据 (表)数据】。 2、hql和sql对比 sql 结构化查询语言【structured query language】hql hive/hadoop类sql查询语言【hive/hadoop query language like sql…

工业三防平板可优化工厂流程管理

在当今高度自动化和数字化的工业生产环境中,工业三防平板正逐渐成为优化工厂流程管理的关键工具。其强大的功能和卓越的性能,为工厂带来了更高的效率、更低的成本以及更出色的质量控制。 工业三防平板,顾名思义,具备防水、防尘、防…

(01)Unity使用在线AI大模型(使用百度千帆服务)

目录 一、概要 二、环境说明 三、申请百度千帆Key 四、使用千帆大模型 四、给大模型套壳 一、概要 在Unity中使用在线大模型分为两篇发布,此篇文档为在Python中使用千帆大模型,整体实现逻辑是:在Python中接入大模型—>发布为可传参的…

eclipse 新建类class文件增加copyright版权信息

1、Window -> Preferences 2、输入code,找到code templates Java > Code Style > Code Templates 比如进行如何的设置: 3、新增类文件,会自动增加版权:

[Vulnhub] digitalworld.local-JOY snmp+ProFTPD权限提升

信息收集 IP AddressOpening Ports192.168.101.150TCP:21,22,25,80,110,139,143,445,465,587,993,995 $ nmap -p- 192.168.101.150 --21,22,25,min-rate 1000 -sC -sV PORT STATE SERVICE VERSION 21/tcp open ftp ProFTPD | ftp-anon: Anonymous FTP logi…

昇思25天学习打卡营第11天|NLP-LSTM-CRF序列标注

打卡 目录 打卡 序列标注 条件随机场(Conditional Random Field, CRF) SCORE计算 SCORE 计算的代码 Normalizer计算 Normalizer 计算的代码实现 Viterbi算法 CRF层组装 BiLSTMCRF模型 模型实例化 模型训练 模型预测 新造一个句子重新预测看效果 序列标注 序列标…

安装adb和常用命令

下载ADB安装包 https://dl.google.com/android/repository/platform-tools-latest-windows.zip 解压安装包 解压如上下载的安装包,然后复制adb.exe所在的文件地址 配置环境变量 我的电脑——>右键属性——>高级系统设置——>环境变量——>系统变量—…

solidity基础语法(以太坊solidity合约)

solidity基础语法(以太坊solidity合约) 1-值类型和取值范围2-引用类型3-引用类型高阶4-固定数组和动态数组 1-值类型和取值范围 https://learnblockchain.cn/docs/solidity/introduction-to-smart-contracts.html#subcurrency https://learnblockchain…

R语言包AMORE安装报错问题以及RStudio与Rtools环境配置

在使用R语言进行AMORE安装时会遇到报错,这时候需要采用解决办法: AMORE包安装,需要离线官网下载安装包: Index of /src/contrib/Archive/AMORE (r-project.org)https://cran.r-project.org/src/contrib/Archive/AMORE/ 一、出现…

MySQL第九次作业

1、安装redis,启动客户端、验证。 首先选择版本 进去之后是这样,一个是压缩包,一个是安装包 点击下载好的安装包,开始安装 选择“添加Redis目录到环境变量PATH中”,这样方便系统自动识别Redis执行文件在哪里。 其他一…

新版本 idea 创建不了 spring boot 2 【没有jkd8选项】

创建新项目 将地址换成如下 https://start.aliyun.com/