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代打);所有人都在...
一分钟揭秘!微扑克辅助软件(透... 一分钟揭秘!微扑克辅助软件(透视辅助)确实是有挂(2024已更新)(哔哩哔哩);1、用户打开应用后不...
五分钟发现!广东雀神麻雀怎么赢... 五分钟发现!广东雀神麻雀怎么赢,朋朋棋牌都是是真的有挂,高科技教程(有挂方法)1、广东雀神麻雀怎么赢...
每日必看!人皇大厅吗(透明挂)... 每日必看!人皇大厅吗(透明挂)好像存在有挂(2026已更新)(哔哩哔哩);人皇大厅吗辅助器中分为三种...
重大科普!新华棋牌有挂吗(透视... 重大科普!新华棋牌有挂吗(透视)一直是有挂(2021已更新)(哔哩哔哩)1、完成新华棋牌有挂吗的残局...
二分钟内幕!微信小程序途游辅助... 二分钟内幕!微信小程序途游辅助器,掌中乐游戏中心其实存在有挂,微扑克教程(有挂规律)二分钟内幕!微信...
科技揭秘!jj斗地主系统控牌吗... 科技揭秘!jj斗地主系统控牌吗(透视)本来真的是有挂(2025已更新)(哔哩哔哩)1、科技揭秘!jj...
1分钟普及!哈灵麻将攻略小,微... 1分钟普及!哈灵麻将攻略小,微信小程序十三张好像存在有挂,规律教程(有挂技巧)哈灵麻将攻略小是一种具...
9分钟教程!科乐麻将有挂吗,传... 9分钟教程!科乐麻将有挂吗,传送屋高防版辅助(总是存在有挂)1、完成传送屋高防版辅助透视辅助安装,帮...
每日必看教程!兴动游戏辅助器下... 每日必看教程!兴动游戏辅助器下载(辅助)真是真的有挂(2025已更新)(哔哩哔哩)1、打开软件启动之...