You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[SYCL] Redistribute USM aspects among CUDA devices (#18782)
We were previously reporting all USM aspects as supported on all CUDA
devices. This is incorrect behaviour as many devices do not support USM
system allocations, nor atomic host/shared USM allocations.
Unfortunately it is very difficult to get a conclusive list of which
devices support which features.
Links such as [1] suggest that pageable memory access (which the UR
adapater uses to determine the runtime equivalents of these aspects) is
limited to a Grace Hopper device or newer, or with Linux systems with
HMM enabled. HMM is not something we can currently determine at compile
time for these aspects. This change is therefore conservative for older
devices (SM6.X) with HMM enabled, where we will now report "false".
For atomic host/shared allocations, the documentation on the
'hostNativeAtomicSupported' property at [1] and [2] suggests that we
need both a hardware coherent system, for which [3] suggests we again
need at least a Grace Hopper device. However, note again that only
"some" hardware-coherent systems support the host native atomics,
"including" NVLink-connected devices. This is therefore not an
exhaustive list and we can't derive anything conclusive from it. This
change might again be conservative for architectures older than Grace
Hopper.
In short, this PR essentially just punts the problem slightly further
down the road and prevents these three USM aspects from being reported
as supported for SM89 devices and earlier.
[1]:
https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#system-requirements-for-unified-memory.
[2]:
https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#host-native-atomics
[3]:
https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#cpu-and-gpu-page-tables-hardware-coherency-vs-software-coherency
0 commit comments