[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 🎉!
目前已通过aclrtMemcpyAsync替换aclrtMemsetAsync的方式解决性能瓶颈问题。
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 🎉!