diff --git a/src/acl_usm.cpp b/src/acl_usm.cpp index 211e86f5..695117b1 100644 --- a/src/acl_usm.cpp +++ b/src/acl_usm.cpp @@ -150,8 +150,12 @@ CL_API_ENTRY void *CL_API_CALL clHostMemAllocINTEL( { auto mmd_properties_it = mmd_properties.begin(); if (mem_id) { - *mmd_properties_it++ = AOCL_MMD_MEM_PROPERTIES_BUFFER_LOCATION; - *mmd_properties_it++ = *mem_id; + int use_offline_only; + acl_get_offline_device_user_setting(&use_offline_only); + if (use_offline_only == ACL_CONTEXT_MPSIM) { + *mmd_properties_it++ = AOCL_MMD_MEM_PROPERTIES_BUFFER_LOCATION; + *mmd_properties_it++ = *mem_id; + } } *mmd_properties_it++ = 0; } @@ -164,8 +168,9 @@ CL_API_ENTRY void *CL_API_CALL clHostMemAllocINTEL( } int error = 0; - void *mem = acl_get_hal()->host_alloc(devices, size, alignment, - mmd_properties.data(), &error); + void *mem = acl_get_hal()->host_alloc( + devices, size, alignment, + mmd_properties[0] ? mmd_properties.data() : nullptr, &error); if (error) { acl_free(usm_alloc); switch (error) { @@ -436,8 +441,12 @@ clSharedMemAllocINTEL(cl_context context, cl_device_id device, { auto mmd_properties_it = mmd_properties.begin(); if (mem_id) { - *mmd_properties_it++ = AOCL_MMD_MEM_PROPERTIES_BUFFER_LOCATION; - *mmd_properties_it++ = *mem_id; + int use_offline_only; + acl_get_offline_device_user_setting(&use_offline_only); + if (use_offline_only == ACL_CONTEXT_MPSIM) { + *mmd_properties_it++ = AOCL_MMD_MEM_PROPERTIES_BUFFER_LOCATION; + *mmd_properties_it++ = *mem_id; + } } *mmd_properties_it++ = 0; } @@ -450,8 +459,9 @@ clSharedMemAllocINTEL(cl_context context, cl_device_id device, } int error; - void *mem = acl_get_hal()->shared_alloc(device, size, alignment, - mmd_properties.data(), &error); + void *mem = acl_get_hal()->shared_alloc( + device, size, alignment, + mmd_properties[0] ? mmd_properties.data() : nullptr, &error); if (mem == NULL) { acl_free(usm_alloc); switch (error) {