diff --git a/src/uct/rocm/base/rocm_base.c b/src/uct/rocm/base/rocm_base.c index 578375eccc00..f2946562b12e 100644 --- a/src/uct/rocm/base/rocm_base.c +++ b/src/uct/rocm/base/rocm_base.c @@ -185,8 +185,15 @@ ucs_status_t uct_rocm_base_detect_memory_type(uct_md_h md, const void *addr, info.size = sizeof(hsa_amd_pointer_info_t); status = hsa_amd_pointer_info((void*)addr, &info, NULL, NULL, NULL); if ((status == HSA_STATUS_SUCCESS) && - (info.type != HSA_EXT_POINTER_TYPE_UNKNOWN)) { - *mem_type_p = UCS_MEMORY_TYPE_ROCM; + (info.type == HSA_EXT_POINTER_TYPE_HSA)) { + hsa_device_type_t dev_type; + + status = hsa_agent_get_info(info.agentOwner, HSA_AGENT_INFO_DEVICE, &dev_type); + if ((status == HSA_STATUS_SUCCESS) && + (dev_type == HSA_DEVICE_TYPE_GPU)) { + *mem_type_p = UCS_MEMORY_TYPE_ROCM; + return UCS_OK; + } } return UCS_OK;