AI开发平台MODELARTS-性能调优:性能测试
性能测试
benchmark工具也可用于性能测试,其主要的测试指标为模型单次前向推理的耗时。在性能测试任务中,与精度测试不同,并不需要用户指定对应的输入(inDataFile)和输出的标杆数据(benchmarkDataFile),benchmark工具会随机生成一个输入进行推理,并统计推理时间。执行的示例命令行如下。
#shell benchmark --modelFile=resnet50.mindir --device=Ascend
为了简化用户使用,ModelArts提供了Tailor工具便于用户进行Benchmark性能测试,具体使用方式参考Tailor指导文档。
在某些推理场景中,模型输入的shape可能是不固定的,因此需要支持用户指定模型的动态shape,并能够在推理中接收多种shape的输入。在CPU上进行模型转换时无需考虑动态shape问题,因为CPU算子支持动态shape;而在昇腾场景上,算子需要指定具体的shape信息,并且在模型转换的编译阶段完成对应shape的编译任务,从而能够在推理时支持多种shape的输入。
绝大多数情况下,昇腾芯片推理性能相比于CPU会好很多,但是也可能会遇到和CPU推理性能并无太大差别甚至出现劣化的情况。造成这种情况的原因可能有如下几种:
- 模型中存在大量的类似于Pad或者Strided_Slice等算子,其在CPU和Ascend上的实现方法存在差异(硬件结构不同),后者在运算此类算子时涉及到数组的重排,性能较差;
- 模型的部分算子在昇腾上不支持,或者存在Transpose操作,会导致模型切分为多个子图,整体的推理耗时随着子图数量的增多而增长;
- 模型没有真正的调用昇腾后端,而是自动切换到了CPU上执行,这种情况可以通过输出日志来进行判断。
- 性能测试使用教程_性能测试操作步骤_性能测试快速入门-华为云
- 性能测试使用流程_性能测试怎么样_性能测试 CodeArts PerfTest-华为云
- 什么是性能测试_性能测试作用_性能测试 CodeArts PerfTest-华为云
- 性能测试产品优势_性能测试应用场景_性能测试CodeArts PerfTest-华为云
- ModelArts是什么_AI开发平台_ModelArts功能
- 性能测试有哪些特性_性能测试特点_性能测试 CodeArts PerfTest-华为云
- 性能测试基本概念_性能测试有什么作用_性能测试 CodeArts PerfTest-华为云
- 文档数据库服务DDS性能调优_MongoDB性能调优_华为云
- 免费专题
- 如何创建定时压测_性能测试服务_定时压测-华为云