离线推理性能问题分析
【摘要】 传统模型迁移到昇腾设备上出现了性能问题,介绍性能问题的定位方法和解决方案,重点介绍了性能问题的定位定界方法。
概述
PTA性能调优参考指导:链接
性能问题背景
模型从GPU设备迁移到昇腾设备上进行推理时,模型的开箱性能差。
推理e2e耗时
infer_e2e_time = 数据加载时间 + 模型前向时间 + 模型后处理时间 + 通信时间 + 调度时间
- 数据加载时间:模型在加载自身所需要的数据(如图片、视频和文本等)的时间,包括将数据从硬件存储设备读取到CPU(Central Processing Unit)中、CPU中数据的预处理(编解码等操作)、CPU数据放到Device上的时间。对于一些需要切分在若干张卡上的模型,数据加载还包括从数据加载卡广播到其他卡上的时间。
- 模型前反向时间:深度学习模型Forward所需的时间。
- 模型后处理时间:包括数据的后处理、数据同步等。
- 通信时间:单节点时卡之间和多节点时节点之间的通信时间。由于PyTorch的特殊机制,在通信和计算可以并行的情况下,表示未被计算掩盖的通信时间。
- 调度时间:模型从CPU的指令到调用NPU侧的核(Kernel)所需要的时间。
性能优化目标
- 计算:算子性能优化、融合算子、AICPU转AICore等
- 通信:通信占比是否合理
- 调度:free占比尽可能小、计算掩盖调度时间等
性能分析
性能调优流程:性能数据采集-》算子层优化-》调度策略调整-》通信机制-》模型编译下发等
性能数据采集
- 方式1:使用ais_bench采集profiling
python -m ais_bench --model ./resnet50_bs1.om --output `pwd`/performance_test --profiler 1
- 方式2:使用msprof工具采集
msprof --output=./msprof_out --application="python3 om_infer.py"
性能数据文件分析
各性能文件解析说明:链接
使用msprof-analyze工具分析性能数据
参考指导:链接
pip3 install msprof-analyze
msprof-analyze advisor all -d ./msprof_out/
使用MindStudio Insight可视化工具分析性能
参考指导:链接
优化方案
参考文档:性能优化
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)