Qcom平台通过Hexagon IDE 测试程序性能指导
创始人
2025-01-10 12:33:38
0

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。

相关内容

热门资讯

透视ai代打!方片十三张脚本&... 透视ai代打!方片十三张脚本"解密辅助软件"总是真的是有挂(哔哩哔哩)暗藏猫腻,小编详细说明方片十三...
2026版攻略!欢聚水鱼脚本&... 2026版攻略!欢聚水鱼脚本"透视辅助攻略"其实真的有挂(哔哩哔哩)1、打开软件启动之后找到中间准星...
教学辅助挂!闲来辅助神器下载&... 教学辅助挂!闲来辅助神器下载"揭幕辅助脚本"真是真的是有挂(哔哩哔哩)闲来辅助神器下载是不是有人用挂...
近期!广西老友有破解吗&quo... 近期!广西老友有破解吗"总结辅助攻略"本来确实有挂(哔哩哔哩)1、进入游戏-大厅左侧-新手福利-激活...
透视软件!518互游辅助&qu... 透视软件!518互游辅助"解密辅助器"都是是真的有挂(哔哩哔哩)1、518互游辅助脚本辅助下载、51...
黑科技辅助挂!柚子联盟辅助器&... 黑科技辅助挂!柚子联盟辅助器"必备辅助攻略"确实真的有挂(哔哩哔哩)1、黑科技辅助挂!柚子联盟辅助器...
出乎意料的是!老友十三辅助&q... 出乎意料的是!老友十三辅助"推荐辅助软件"确实真的是有挂(哔哩哔哩)1、完成老友十三辅助有辅助插件,...
透视教学!佛手在线十三道辅助器... 透视教学!佛手在线十三道辅助器"了解辅助器"都是真的是有挂(哔哩哔哩)亲,关键说明,佛手在线十三道辅...
此事引发广泛关注!兴动互娱游戏... 此事引发广泛关注!兴动互娱游戏辅助器"曝光辅助技巧"其实真的有挂(哔哩哔哩)此事引发广泛关注!兴动互...
透视规律!老友汇辅助"... 透视规律!老友汇辅助"详情辅助脚本"一直真的是有挂(哔哩哔哩)1、打开软件启动之后找到中间准星的标志...