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

avatar
作者
筋斗云
阅读量:2

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

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。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!