Sync streams when freeing or destroying mem

Change-Id: I6932f225a8b932bb2adbd5e37880f7e604496809


[ROCm/hip commit: 8b39e0b74e]
这个提交包含在:
Saleel Kudchadker 于 2020-03-20 10:53:23 -07:00 提交
1 父节点 7a418b2fce
当前提交 1b4bbfcb53
1 个文件已更改
+14 -1
+14 -1
查看文件
@@ -274,6 +274,13 @@ hipError_t hipHostFree(void* ptr) {
HIP_INIT_API(hipHostFree, ptr);
if (amd::SvmBuffer::malloced(ptr)) {
for (auto& dev : g_devices) {
amd::HostQueue* queue = hip::getNullStream(*dev->asContext());
if (queue != nullptr) {
queue->finish();
}
hip::syncStreams(dev->deviceId());
}
amd::SvmBuffer::free(*hip::getCurrentDevice()->asContext(), ptr);
HIP_RETURN(hipSuccess);
}
@@ -289,7 +296,13 @@ hipError_t ihipArrayDestroy(hipArray* array) {
if (is_valid(memObj) == false) {
return hipErrorInvalidValue;
}
for (auto& dev : g_devices) {
amd::HostQueue* queue = hip::getNullStream(*dev->asContext());
if (queue != nullptr) {
queue->finish();
}
hip::syncStreams(dev->deviceId());
}
as_amd(memObj)->release();
delete array;