昇腾学院 | 案例分享 模型处理时延长达600ms问题

举报
xiongoal 发表于 2020/03/25 02:29:34 2020/03/25
【摘要】 问题现象描述问题现象:模型输入数据尺寸是1000*128*7*7(NCHW),4个fc算子组成的网络模型,模型处理时延将近600ms。关键过程、根本原因分析关键过程:1. 为了测试模型推理时延,需要构造模型推理的工程,准备数据集和模型文件。2. 在程序里面进行打点处理,以便计算模型处理时延。图1-1 程序加点计算时延3. 打开日志查看模型处理时间,包括模型的数据输入、推理和数据输出耗时。4....

问题现象描述

问题现象:模型输入数据尺寸是1000*128*7*7NCHW),4fc算子组成的网络模型,模型处理时延将近600ms


关键过程、根本原因分析

关键过程:

1. 为了测试模型推理时延,需要构造模型推理的工程,准备数据集和模型文件。

2. 在程序里面进行打点处理,以便计算模型处理时延。

图1-1 程序加点计算时延

1.png

3. 打开日志查看模型处理时间,包括模型的数据输入、推理和数据输出耗时。

4. 通过使用profiling工具,可以查看模型的单个算子时延以及模型的数据转换时延,如下图所示,单个模型的推理时延都在20ms之内,主要耗时在于数据转换过程。

图1-2 Profiling工具显示单个算子的时延都在20ms之内

1.jpg

图1-3 Profiling工具显示数据转换时延530ms

1.jpg

5. 通过上述数据说明,百万级输入情况下,fp32fp16,数据转换过程中耗时较多,同时模型的C通道是128,导致无法使用ai core进行加速。

根本原因分析:

1、对于百万级输入数据,fp32转成fp16过程中,数据转换耗时较多,导致模型整体推理时延较大。

2、模型输入的通道大于3,导致aipp无法使用,即数据的搬运处理不是用ai core进行加速,是使用cpu核处理。


结论、解决方案及效果

结论:

1、模型处理时延大的主要原因体现在无法使用ai core资源对百万级数据量进行数据转换。

解决方案:

1、  在模型转换时以5D FP16输出,后一个设置是5D FP16输入,该方案必须保证模型的中间层没有额外处理。

2、  修改NCHWC通道为3,使用aipp进行加速。


经验总结、预防措施和规范建议

建议通道数改成3,使用ai core资源进行数据转换过程,降低数据转换时延。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。