SNPE-Benchmark

本文介绍了SNPE SDK中的Benchmark工具,用于评估模型在骁龙平台上的性能,包括CPU、GPU、DSP、AIP等硬件。通过配置JSON和Python脚本,演示了如何使用Benchmark对TensorFlow Deeplab V3模型进行测试,并解读了benchmark结果,涵盖了配置参数、初始化指标和模型推理性能分析。同时,文中还分享了解决常见问题的方法和技巧。

SNPE提供了Benchmark工具评估模型在骁龙平台上的性能,能够测模型运行时每一层的耗时,以方便评估模型在CPU、GPU、DSP、HTP、AIP上的性能

Benchmark工具

SNPE SDK 中的Benchmark工具由一组python脚本组成,在Android手机上运行网络并收集性能指标

从脚本中可以看出,snpe_bench.py是调用snpe-net-run在目标设备上推理DLC模型,然后将收集性能指标,最后整理成方便阅读的.csv 或者 json格式。

  • 工具:snpe-1.65.0.3676/benchmarks/snpe_bench.py
  • 文档:https://developer.qualcomm.com/sites/default/files/docs/snpe/benchmarking.html
╭─ /home/workspace/snpe-1.65.0.3676/benchmarks 
╰─ tree
├── alexnet_sample.json
├── config_help.json
├── snpe_bench.py
└── snpebm

在这里插入图片描述

benchmark脚本的输入是一个JSON配置文件。

config.json的配置选项

{
    "Name":"AlexNet", // 这个json配置的名字
    "HostRootPath": "alexnet", // 主机电脑上的输出文件夹。它可以是一个绝对路径或当前工作目录的相对路径。
    "HostResultsDir":"alexnet/results", // 存放所有benchmark结果的目录
    "DevicePath":"/data/local/tmp/snpebm",// 手机设备上放置所有benchmark有关的数据、库、模型等的文件夹
    "Devices":["454d40f3"], // 运行benchmark手机的序列号,目前只支持一个手机。如果为空,则自动选择。
    "HostName": "localhost", //【可选项】手机设备所连接的远程机器名或者IP
    "Runs":2, // 模型推理的次数,每个加速硬件,每个测量指标
    "Model": { //模型和数据在主机电脑上的存放位置
        "Name": "ALEXNET", 
        "Dlc": "../models/alexnet/dlc/bvlc_alexnet.dlc",
        "InputList": "../models/alexnet/data/target_raw_list.txt",
        "Data": [
            "../models/alexnet/data/cropped"
        ]
    },
    "Runtimes":["GPU", "CPU"], // 想要测试的加速硬件,包括"CPU","GPU","GPU_s","GPU_FP16","DSP","AIP","AIP_ACT16"
    "Measurements": ["timing", "mem"], // Timing 表示测试时间,mem表示测试使用的内存
    "CpuFallback": True, //【可选项】表示当一个层在其他硬件不能跑时,网络是否可以回退到CPU上,默认为false
    "BufferTypes": ["ub_float", "ub_tf8", "ub_tf16"], //【可选项】制定需要测量的输入数据的方式,如果为空,则会测量所有可能选项
    注意:ub_tf8只在DSP,AIP,AIP_ACT16运行时上支持,对于其他运行时它会被忽略,ub_tf16只在AIP,AIP_ACT16运行时上支持,对于其他运行时它会被忽略。
对于AIP_ACT16运行时,如果没有指定BufferTypes,则默认考虑[float, ub_float, ub_tf16]。
    "PlatformOptions": ["unsignedPD:ON" ], //【可选项】SNPE的Platform Option, 如果是商用手机,这个unsignedPD:ON是必选项
     /*【可选项】配置 performance 模式,也可以通过命令行配置, -p PERFPROFILE, --perfprofile PERFPROFILE 
       balanced, default, sustained_high_performance, high_performance, power_saver, system_settings */
    "PerfProfile": "burst",
     //【可选项】配置 profiling level,也可以通过命令行配置.  -l PROFILINGLEVEL, --profilinglevel PROFILINGLEVEL, 
     // Level mode (off, basic, moderate, detailed), 默认是basic。Detailed 会显示每一层的耗时。
    "ProfilingLevel": "detailed"  
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值