5.4. J5计算平台评测指南¶
由于各家计算平台的架构和设计往往不尽相同,因此如果仅以某个单一指标去进行评测,就可能无法全面地衡量出它的实际性能。 下文将从几个常用的评测维度为您进行说明,贴合业务落地的场景和要求综合考虑这些因素,才能更好地衡量出一款计算平台的实际性能。
5.4.1. 单帧延时(Latency)¶
单帧延时体现了单个模型处理一帧数据所需的时间,是衡量计算平台能满足实时性能要求的一个重要指标。 但由于不同计算平台有多核、大小核、异构计算等不同的架构和设计,所以单帧延时指标有时并不能体现全部性能。 例如双核BPU的J5在评测单帧延时的时候,就会有一个核心处于空闲状态。
J5单核单线程评测模型Latency的参考命令如下:
hrt_model_exec perf --model_file xxx.bin --thread_num 1 --core_id 1
5.4.2. 吞吐量(FPS)¶
吞吐量体现了计算平台在满载/接近满载的状态下,单位时间内能够处理的图像总帧数。 在真实场景中,计算平台由于要并发处理多个摄像头的数据,所以越大的吞吐量才能满足更大的数据处理要求, 更贴合实际性能表现,也能作为统一的指标综合体现不同计算平台架构的能力。
吞吐量一般可通过 增加并发多线程 ,或者使用 多batch模式 进行评测。
J5双核多线程评测模型FPS的参考命令如下:
hrt_model_exec perf --model_file xxx.bin --thread_num 8 --core_id 0
5.4.3. J5计算平台特性¶
在评测一款计算平台性能时,还应综合考虑其设计特性。以J5为例,主要包括以下几个方面。
5.4.3.1. 多batch模型¶
对于J5等中高计算能力平台,小分辨率输入或者小计算量的模型往往不能获取高效的计算效率。 针对这种情况,您可以通过多batch模式来部署模型(例如 batch=8)。
J5支持在模型转换时通过yaml文件中的 input_batch
参数配置编译多batch模型。
部署示例可以在OE包 ddk/samples/ai_toolchain/horizon_runtime_sample/code/02_advanced_samples/nv12_batch
路径下找到。
5.4.3.2. 大分辨率输入¶
除了多batch模式外,增大模型的输入分辨率也可以获取更加高效的计算效率。 如采用720P、1080P等更贴合实际业务落地场景的分辨率进行评测。
5.4.3.3. GroupConv优化¶
J5计算平台针对GroupConv,乃至DepthwiseConv都做了针对性的优化,所以更推荐使用MobileNet、EfficienNet等结构做为模型的Backbone。
5.4.4. J5评测方法¶
为了简化您的评测过程,J5工具链从1.1.52a版本起新增了 fast-perf
(快速性能评测)模式,此模式下您可以不依赖于yaml配置文件,
直接编译得到板端最高性能的bin模型,具体使用方法为:
hb_mapper makertbin --fast-perf --march bayes --model model.onnx --model-type onnx
在开启 fast-perf
(快速性能评测) 模式下,工具内部会自动完成如下操作:
将BPU可执行算子尽可能运行在BPU上(即可通过yaml文件中node_info参数指定在BPU上运行的算子)。
删除模型首尾可删除的CPU算子,包括:Quantize/Dequantize、Transpose、Cast、Reshape等。
以性能最高的O3优化等级编译模型。