已关闭
[Performance]: 昇腾D310P集群化部署PPOCRv5,rec阶段频繁触发cpu调度导致npu使用率下降 #1493
Snakehj创建于  3月26日关闭于  8月19日
Snakehj
3月26日 创建

提交提案之前,请先检索仓库内是否已有相同的提案,如已有请在同一提案中进行讨论。

性能优化具体描述

rec阶段频繁触发cpu调度导致npu使用率下降。能否从host侧对cpu的动作需要优化

下图为单次运行一张图片时的,基于msprof与mindstudio的ppocrv5在昇腾D310P的性能分析
image.png

集群化部署的NPU监控:
image.png

性能劣化说明

其他相关讨论

环境信息

例如:
- 操作系统
- 昇腾硬件信息
- CANN软件版本
- 安装的对应软件版本

操作系统:
NAME="Huawei Cloud EulerOS"
VERSION="2.0 (aarch64)"
ID="hce"
VERSION_ID="2.0"
PRETTY_NAME="Huawei Cloud EulerOS 2.0 (aarch64)"
ANSI_COLOR="0;31"

昇腾硬件信息:
image.png

CANN软件版本:

version: 1.0

runtime_running_version=[8.3.0.1.200:8.3.RC1]
compiler_running_version=[8.3.0.1.200:8.3.RC1]
hccl_running_version=[8.3.0.1.200:8.3.RC1]
opp_running_version=[8.3.0.1.200:8.3.RC1]
toolkit_running_version=[8.3.0.1.200:8.3.RC1]
aoe_running_version=[8.3.0.1.200:8.3.RC1]
ncs_running_version=[8.3.0.1.200:8.3.RC1]
device-sw-plugin_running_version=[8.3.0.1.200:8.3.RC1]
opp_kernel_running_version=[8.3.0.1.200:8.3.RC1]
runtime_upgrade_version=[8.3.0.1.200:8.3.RC1]
compiler_upgrade_version=[8.3.0.1.200:8.3.RC1]
hccl_upgrade_version=[8.3.0.1.200:8.3.RC1]
opp_upgrade_version=[8.3.0.1.200:8.3.RC1]
toolkit_upgrade_version=[8.3.0.1.200:8.3.RC1]
aoe_upgrade_version=[8.3.0.1.200:8.3.RC1]
ncs_upgrade_version=[8.3.0.1.200:8.3.RC1]
device-sw-plugin_upgrade_version=[8.3.0.1.200:8.3.RC1]
opp_kernel_upgrade_version=[8.3.0.1.200:8.3.RC1]
runtime_installed_version=[8.3.0.1.200:8.3.RC1]
compiler_installed_version=[8.3.0.1.200:8.3.RC1]
hccl_installed_version=[8.3.0.1.200:8.3.RC1]
opp_installed_version=[8.3.0.1.200:8.3.RC1]
toolkit_installed_version=[8.3.0.1.200:8.3.RC1]
aoe_installed_version=[8.3.0.1.200:8.3.RC1]
ncs_installed_version=[8.3.0.1.200:8.3.RC1]
device-sw-plugin_installed_version=[8.3.0.1.200:8.3.RC1]
opp_kernel_installed_version=[8.3.0.1.200:8.3.RC1]

欢迎加入社区,感谢您对社区的贡献 🎉!

likedislike
ascend-robotascend-robot成员
3月26日 添加了label:performance
gcw_ZZtEoTSb
4月1日 评论:

有相关OCR的issue吗?没有搜索“ocr”关键字的其他问题。还请看能否从问题触发,分析优化性能。相比友商的性能,性能确实低了不少

likedislike
zouyizhou
zouyizhou
4月3日 评论:

现在采用的dymshape的om推理,每次推理完会释放显存,导致每次调用间隔增大,npu利用率较低,特定场景替换为固定shape可以缓解这个现象,后续会更新文档替换为静态om推理

likedislike
niushiya成员
4月3日 评论:

1、在REC阶段纯推理时间优化的比较好,当前310P3芯片5.9ms,A10同case性能在11.2ms;
2、当前atc使用的是dynamic shape;REC npu利用率低的原因是每次REC的输入图片 的shape不固定,输出结果的内存大小不一致,所以会存在较多的内存释放和申请,导致Host侧执行时间增加。

建议可以通过以下手段优化:
1、调整infer.py脚本的入参custom_size,设置为10e6,如果不行的话再逐步增大;该函数的含义为动态shape场景下aisbench的buffer size;
2、进一步地想优化性能的话,可以采用通过设置支持的BatchSize和动态分辨率来优化性能;
3、进一步地,如果对精度损失接受度比较高的话,可以加入预处理resize成统一的分辨率尺寸,然后使用静态shape推理;

参考文档如下:
https://www.hiascend.com/document/detail/zh/CANNCommunityEdition/80RC2alpha002/devaids/auxiliarydevtool/atlasatc_16_0010.html

likedislike
ascend-robotascend-robot成员
7月7日 关联了看板:MindStudio ISSUE管理
SSnakehj
8月19日 issue状态由 TODO 改变为 DONE
SSnakehj
8月19日 关闭了 issue
ascend-robotascend-robot成员
8月19日 添加了label:resolved