该参数用于测试模型性能。该模式下,您无需输入数据,程序根据模型信息自动构造输入tensor,tensor数据为随机数。
程序默认单线程运行200帧数据,当指定perf_time
参数时,frame_count
参数失效,程序会执行指定时间后退出。
输出模型运行的latency、以及帧率信息。程序每200帧打印一次性能信息: latency的最大、最小、平均值,不足200帧程序运行结束打印一次。
程序最后输出running相关数据, 包括:程序线程数、帧数、模型推理总时间,模型推理平均latency,帧率信息。
支持hbm模型。
若在 perf 时,不指定输入,工具内部会随机构造,但如果模型本身对输入强依赖,随机构造的输入可能会使程序core dump。
参数 | 参数说明 | 关联参数 | |
---|---|---|---|
-h, --help | 无。 | 显示帮助信息。 | 无。 |
-v, --version | 无。 | 查看工具的 dnn 预测库版本号。 | 无。 |
perf | 无。 | 该参数用于执行模型性能分析,获取性能分析结果。 | 该参数需要与 model_file 一起使用,用于获取模型的详细信息。 |
model_file | string | 模型文件路径,多个路径可通过逗号分隔。 | 无。 |
model_name | string | 指定某个模型的名称。 | 无。 |
core_id | string | 指定运行核。0:任意核,1:core0,2:core1,以此类推。默认为 0。当指定多个核运行时,用英文字符的逗号隔开,如 "1,2" 。 | 无。 |
input_file | string | 模型输入信息。输入后缀必须为PNG /JPG /JPEG /png /jpg /jpeg /bin /txt 中的一种。每个输入之间需要用英文字符的逗号隔开, ,如:xxx.jpg,input.txt 。 | 无。 |
input_img_properties | string | 模型图像输入的色彩空间信息,参数范围[Y , UV ]。 | 该参数需要与input_file 一起使用,input_file 中每一个图片类型输入都需要指定一个Y /UV 类型,每个输入色彩空间之间需要用英文字符的逗号隔开, ,如:Y,UV 。 |
input_valid_shape | string | 模型动态 validShape 输入信息。 若模型输入属性 validShape 中含有 -1 ,则需要将 -1 的部分进行补全,多个 validShape 间通过英文分号间隔。如:--input_valid_shape="1,376,376,1;1,188,188,2" 。 | 无。 |
input_stride | string | 模型动态 stride 输入信息。若模型输入属性 stride 中含有 -1 ,则需要将 -1 的部分进行补全,多个 stride 间通过英文分号间隔。如:--input_stride="50176,224,1,1;25088,224,2,1" 。 | 无。 |
frame_count | int | 执行模型运行帧数。infer 时,默认为 1。perf 时,默认为 200。 | 当子命令为perf 时,没有设置perf_time 时生效。 |
dump_intermediate | string | dump模型每一层输入和输出,参数范围[0, 3]。默认为 0。dump_intermediate=0 时,默认dump功能关闭。dump_intermediate=1 时,模型中每一层节点输入数据输出数据以 bin 方式保存, 其中节点输入输出为 stride 数据。dump_intermediate=2 时,模型中每一层节点输入数据和输出数据以 bin 和 txt 两种方式保存,其中节点输入输出为 stride 数据。dump_intermediate=3 时,型中每一层节点输入数据和输出数据以 bin 和 txt 两种方式保存,其中节点输入输出为 valid 数据。 | 无。 |
perf_time | int | 设置perf 运行时间,单位:分钟。默认为 0。 | 无。 |
thread_num | int | 设置程序运行线程数(并行度),数值可以表示最多有多少个任务在并行处理,参数范围[1, 64], 默认为 1。 测试延时,数值需要设置为1,没有资源抢占发生,延时测试更准确。 测试吞吐,建议设置 > 3 * N(BPU核心个数),调整线程数使BPU利用率尽量高,吞吐测试更准确。 | 无。 |
profile_path | string | 统计工具日志产生路径,运行产生profiler.log和profiler.csv,分析op耗时和调度耗时。关于profiler.log和profiler.csv文件详细说明,请参考profile_path说明。 一般设置 --profile_path="." 即可,代表在当前目录下生成日志文件。 | 无。 |
设置profile_path参数且工具正常运行后会产生profiler.log和profiler.csv文件,文件中包括如下参数:
ucp_version:UCP及HBRT版本号。
perf_result:记录perf结果。
参数 | 说明 |
---|---|
FPS | 每秒处理的帧数。 |
average_latency | 指定模型中某个模型平均一帧运行所花费的时间。 |
参数 | 说明 |
---|---|
core_id | 程序运行设置的bpu核。 |
frame_count | 程序运行的总帧数。 |
model_name | 评测模型的名字。 |
run_time | 程序运行时间。 |
thread_num | 程序运行的线程数。 |
参数 | 说明 |
---|---|
Node-pad | 模型输入padding耗时。 |
Node-NodeIdx-NodeType-NodeName | 模型节点耗时信息。注:NodeIdx为模型节点拓扑排序的序号,NodeType为具体的节点类型,如Dequantize,NodeName为具体的节点名称。 |
参数 | 说明 |
---|---|
BPU_inference_time_cost | 每帧推理BPU处理器耗时。 |
CPU_inference_time_cost | 每帧推理CPU处理器耗时。 |
参数 | 说明 |
---|---|
TaskRunningTime | 任务实际运行耗时,耗时时间包括UCP框架耗时。 |
性能测试一次只支持运行一个模型,当 model_file
存在多个模型时,请设置 model_name
参数进行指定。