Atlas 200I A2加速模块Conv2D卷积算子效率极低?
收藏回复举报
Atlas 200I A2加速模块Conv2D卷积算子效率极低?
发表于2024-09-20 09:36:29
0 查看

使用mindspore lite 2.0转换的mindir模型,在Atlas 200 DK和Atlas 200I DK A2两块开发板上,后者推理速度慢十几倍?

仅仅特征提取环节的2个Conv2D算子计算循环数达到了172亿次,耗时14.16秒,占推理总耗时的97%,是什么原因?是硬件设计缺陷?还是mindspore lite的模型转换缺陷?

模型是在Mindspore2.0平台上训练的,导出为mindir格式,模型大小为126.5MB。

一、在Atlas 200 DK上试验,推理1.1s

软件配套:CANN 6.3.RC1 + Mindspore 2.0.0 + Mindspore lite 2.0.0

步骤:

(1)根据官方文档,使用Mindspore lite 的Python接口对原mindir模型进行转换(云侧工具),转换后大小为107.2MB;

(2)按照官方文档,使用Mindspore lite 的Python接口加载转换后的模型进行循环推理(云侧推理->基础推理),推理一次用时约1.1s(batch=5)。

推理时间见下图:



二、在Atlas 200I DK A2上试验,推理14.5s

软件配套,分别测试了2个版本,测试结果一致:

(1)默认镜像中包含的CANN 7.0.0. beta1 + Mindspore 2.0.0 + Mindspore lite 2.0.0 

(2)默认镜像中包含的CANN 7.0.0. beta1 + Mindspore 2.2.14 + Mindspore lite 2.2.14

步骤:

(1)根据官方文档,使用Mindspore lite 的Python接口对原mindir模型进行转换(云侧工具),转换后大小为106.1MB;

(2)按照官方文档,使用Mindspore lite 的Python接口加载转换后的模型进行循环推理(云侧推理->基础推理),推理一次用时约14.5s(batch=5)。

推理时间见下图



三、 Profiling数据采集分析

(1)使用Mindspore lite 2.0.0转换mindir模型后,能够同时生成.mindir和.om格式模型(Mindspore lite 2.2.14 没能生成om模型),因此可以使用Profiling pyACL API采集并落盘性能数据,得到数据 PROF_000001_20240902214031975_BMMFKPLFNFJRNJBA

(2)使用msprof工具解析性能数据

(1)执行命令,解析性能数据:msprof --export=on --output=./PROF_000001_20240902214031975_BMMFKPLFNFJRNJBA/

(2)得到mindstudio_profiler_output目录,包含以下数据文件

api_statistic_20240903190336.csv

ddr_20240903190336.csv

llc_read_write_20240903190336.csv

msprof_20240903190336.json

npu_mem_20240903190336.csv

op_statistic_20240903190336.csv

op_summary_20240903190336.csv

step_trace_20240903190336.csv

step_trace_20240903190336.json

task_time_20240903190336.csv

(3)查看其中的op_summary_20240903190336.csv和task_time_20240903190336.csv文件,发现有2个算子耗时特别多,共约14s左右,如何进行优化?是什么在Atlas 200 DK上没有出现这种情况?

任务用时见下图



算子用时见下图



本帖最后由 匿名用户2024/09/20 16:40:38 编辑

我要发帖子