已关闭
[Bug]: 使用MS Lite aclrtMemsetAsync、aclrtSynchronizeStream进行模型推理后的现存释放特别耗时,跟模型推理耗时几乎持平 #235
hhhhwb创建于  3月25日关闭于  4月28日
hhhhwb
hhhhwb
3月25日 创建

Checklist


[x] 1. 我已经搜索过相关问题,但没有得到预期的帮助.

[ ] 2. 最新版本中该错误尚未修复.

[ ] 3. 请注意,如果您提交的Bug描述缺少相应的环境信息和最小可复现的demo,我们将很难复现和解决该问题,从而降低收到反馈的可能性,甚至该问题将被关闭.

🐞 问题详细描述

arm npu使用api: aclrtMemsetAsync、aclrtSynchronizeStream
x86 gpu使用api: cudaMemsetAsync、 cudaSynchronizeStream
现象:在arm npu上完成推理后,进行释放现存的操作(reset), 耗时约16ms; 在x86 gpu上完成推理后,进行释放现存的操作(reset), 耗时小于1ms;

示例代码如下:
auto att_status = aclrtMemcpyAsync(static_cast<uint8_t*>(npu_resources_->att_cache_ms_->GetDeviceData()) + i * (att_cache_slice_size * sizeof(float)), (job.j_att_cache_ms)->DataSize(),
(job.j_att_cache_ms)->GetDeviceData(), (job.j_att_cache_ms)->DataSize(),
ACL_MEMCPY_DEVICE_TO_DEVICE, d2d_streams_);

auto status_att_memset = aclrtMemsetAsync(npu_resources_->att_cache_ms->GetDeviceData(), att_cache_size * sizeof(float), 0, att_cache_size * sizeof(float), d2d_streams_);

详细的环境信息描述

硬件:D910B4卡,
npu驱动版本24.1.0.3
cann版本:8.2.RC1
mindspore/mindspore lite版本:2.7.0

其他辅助信息

版本信息

暂无

Thanks for contributing 🎉!

likedislike
hhhhwbhhhhwb
3月25日 关联组件 由 [] 改变为 [B-SIG-InferInner]
hhhhwbhhhhwb
3月25日 关联分支 由 [] 改变为 [r2.7]
hhhhwbhhhhwb
3月25日 问题后端类型 由 [] 改变为 [Ascend]
Lliuf9成员
4月28日 关联组件 由 [B-SIG-InferInner] 改变为 [B-SIG-InnerDelivery]
liuf9成员
4月28日 评论:

目前已通过aclrtMemcpyAsync替换aclrtMemsetAsync的方式解决性能瓶颈问题。

likedislike
Lliuf9成员
4月28日 issue状态由 TODO 改变为 ACCEPTED
Lliuf9成员
4月28日 issue状态由 ACCEPTED 改变为 WIP
Lliuf9成员
4月28日 issue状态由 WIP 改变为 DONE
Lliuf9成员
4月28日 关闭了 issue