Skip to content

Commit cfecab0

Browse files
Merge pull request #1874 from PietroGhg/pietro/membarrier
[NATIVECPU] Support atomic fence queries
2 parents 10fd78c + 5bebef5 commit cfecab0

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

source/adapters/native_cpu/device.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -364,11 +364,23 @@ UR_APIEXPORT ur_result_t UR_APICALL urDeviceGetInfo(ur_device_handle_t hDevice,
364364
case UR_DEVICE_INFO_MEMORY_CLOCK_RATE:
365365
case UR_DEVICE_INFO_MEMORY_BUS_WIDTH:
366366
return UR_RESULT_ERROR_INVALID_VALUE;
367+
case UR_DEVICE_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES: {
368+
// Currently for Native CPU fences are implemented using OCK
369+
// builtins, so we have different capabilities than atomic operations
370+
ur_memory_order_capability_flags_t Capabilities =
371+
UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED |
372+
UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQUIRE |
373+
UR_MEMORY_ORDER_CAPABILITY_FLAG_RELEASE |
374+
UR_MEMORY_ORDER_CAPABILITY_FLAG_ACQ_REL |
375+
UR_MEMORY_ORDER_CAPABILITY_FLAG_SEQ_CST;
376+
return ReturnValue(Capabilities);
377+
}
367378
case UR_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES: {
368379
ur_memory_order_capability_flags_t Capabilities =
369380
UR_MEMORY_ORDER_CAPABILITY_FLAG_RELAXED;
370381
return ReturnValue(Capabilities);
371382
}
383+
case UR_DEVICE_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES:
372384
case UR_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES: {
373385
uint64_t Capabilities = UR_MEMORY_SCOPE_CAPABILITY_FLAG_WORK_ITEM |
374386
UR_MEMORY_SCOPE_CAPABILITY_FLAG_SUB_GROUP |

0 commit comments

Comments
 (0)