建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

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

确定
我再想想
选择版块
标签
您还可以添加5个标签
  • 没有搜索到和“关键字”相关的标签
  • 云产品
  • 解决方案
  • 技术领域
  • 通用技术
  • 平台功能
取消

Xiaoxia

发帖: 5粉丝: 0

发消息 + 关注

发表于2021年01月15日 14:41:07 191 6
直达本楼层的链接
楼主
显示全部楼层
[Atlas300] 【昇腾Atlas300】【模型推理】图像推理的性能问题

【功能模块】

atlas300执行图像分类(efficientnet )任务的推理

【操作步骤&问题现象】

1、使用dvpp模块进行decode和resize,对应接口是异步的

2、执行推理(execute)同步接口

目前在一张卡的一个device上执行上述任务,发现单batch情况下卡的利用率只有30%,多batch(batch_szie=32)情况下利用率只有60%,性能并没有达到最优。请问下,如果将推理改为异步,是否会提高卡的利用率呢,另外,由于解码使用的是dvpp中的异步接口,再使用异步推理的时候如何与异步解码的数据进行通信呢;这种需求应该是属于多stream情形吧,stream1(执行异步解码)、stream2(执行异步推理),请问是否有这种情形下的样例呢?


举报
分享

分享文章到朋友圈

分享文章到微博

xiaoyifan6

发帖: 5粉丝: 28

发消息 + 关注

发表于2021年01月15日 15:11:18
直达本楼层的链接
沙发
显示全部楼层

1.如果将推理改为异步,是否会提高卡的利用率呢?

答:理论上应该是可以的。

2.由于解码使用的是dvpp中的异步接口,再使用异步推理的时候如何与异步解码的数据进行通信呢?

答:参考这个:https://support.huaweicloud.com/asdevg-c-cann/atlasapi_07_0155.html

3.这种需求应该是属于多stream情形吧,stream1(执行异步解码)、stream2(执行异步推理),请问是否有这种情形下的样例呢?

一般我们是使用单线程,多stream模型。

https://support.huaweicloud.com/asdevg-c-cann/atlasdevelopment_01_0009.html

image.png

https://support.huaweicloud.com/asdevg-c-cann/atlasdevelopment_01_0033.html

目前暂时没有多stream的样例,可以参考上面的链接体会一下。

点赞 评论 引用 举报

Xiaoxia

发帖: 5粉丝: 0

发消息 + 关注

发表于2021年01月15日 15:24:09
直达本楼层的链接
板凳
显示全部楼层

你发的资料我都看过但是还是有些疑问,我理解的是这个问题类似与是消费者生产者问题,异步解码通过一个stream1产生的数据不停的放入一个queue1中,然后异步推理通过stream2不停的从queue1中拿数据进行推理获取结果,疑问是:
1. 这个queue是需要自己来维护吗,还是有接口提供了类似的功能
2. 这里的stream1和stream2应该是并发的,stream2如何去stream1(queue1)中获取数据呢


点赞 评论 引用 举报

Xiaoxia

发帖: 5粉丝: 0

发消息 + 关注

发表于2021年01月15日 17:03:45
直达本楼层的链接
地板
显示全部楼层

异步解码+异步推理在单Device上需要怎么去设置context和stream的关系比较好呢,我理解的是一个context,两个stream,一个stream1进行异步解码,一个stream2进行异步推理,但是由于解码和推理的速度快慢不一致,如何协调stream1和stream2比较好呢,能否详细解答一下呢

点赞 评论 引用 举报

yaphets

发帖: 24粉丝: 5

发消息 + 关注

发表于2021年01月15日 17:03:49
直达本楼层的链接
5#
显示全部楼层

回复:Xiaoxia 发表于 2021-1-15 15:24 你发的资料我都看过但是还是有些疑问,我理解的是这个问题类似与是消费者生产者问题,异步解码通过一个stream1产生的数据不停的放入一个queue1中,然后异步推

可以用ascendbase中的blockingqueue。



评论
Xiaoxia 2021-1-18 09:33 评论

是Ascend中的吗,怎么用呢,能指导下不

... 查看全部
点赞 评论 引用 举报

chenzhm

发帖: 5粉丝: 0

发消息 + 关注

发表于2021年01月15日 17:13:56
直达本楼层的链接
6#
显示全部楼层

stream1产生的数据不停的放入一个queue1中,然后异步推理通过stream2不停的从queue1中拿数据进行推理获取结果,应该需要自己创建队列

但是你可以使用多个stream同时解码多张图,等解码完成再用一个stream做推理,这样也能解决解码速度瓶颈的问题。

评论
Xiaoxia 2021-1-15 17:49 评论

谢谢你的回复,解码过程所用的是acl.media.dvpp中的异步接口:dvpp_jpeg_decode_async和dvpp_vpc_resize_async,这两个不是应该已经是异步了吗,还要再多弄stream来解码应该没必要了,我现在的性能瓶颈是推理没有解码快,推理用的是同步,改成异步应该会快一点,但我不知道异步解码和异步推理两个stream之间以及contex怎么协同才好,能详细指导下不

... 查看全部
点赞 评论 引用 举报

yaphets

发帖: 24粉丝: 5

发消息 + 关注

更新于2021年01月18日 09:47:56
直达本楼层的链接
7#
显示全部楼层

你到昇腾社区,下载apisample,进入到ascendbase。就有blockingqueue的定义,消费者生产者模式。队列大小,锁等功能已经添加,无需自己再写一次

image.png

评论
Xiaoxia 2021-1-18 10:53 评论

这是个好工具,但是我找了一圈没找着在哪下载,哥,不如提供下链接呀

... 查看全部
xiaoyifan6 2021-1-18 11:35 评论

评论 Xiaoxia:https://www.huaweicloud.com/ascend/mindx-sdk/refrence-design sample下载链接

... 查看全部
yaphets 2021-1-18 14:18 评论

评论 Xiaoxia:不好意思,我看错了,你用的是toolkit中的sample,我以为是社区的sample。

... 查看全部
点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册