Skip to content

Conversation

@gmlueck
Copy link
Owner

@gmlueck gmlueck commented May 19, 2022

Clarify several things about USM:

  • We did not have precise rules about when USM memory allocated for
    one device could be accessed by another device. This is now
    clarified, and a few new device aspects were added to tell
    applications when this is allowed.

  • We did not have precise rules about sharing a USM memory region
    between two devices when those devices do not support "concurrent
    access" to USM. Add rules to explain this.

  • We were not clear about the role of the context that is used when
    allocating USM memory. Clarify how this affects the accessibility
    of USM memory on various devices.

  • Replace the term "unified addressing", which was poorly defined, with
    a new term "stable addresses", and clarify exactly what guarantees we
    provide about uniqueness of pointers for the three USM allocation
    types.

Partially addresses KhronosGroup#184.
Closes KhronosGroup#186.

@GarveyJoe
Copy link

I think the three-tiered aspect approach you’ve used for host allocations (allocation is supported, device-to-device atomics/concurrency is supported, device-to-host atomics/concurrency is supported) is good. My only complaint is that the names are somewhat ambiguous; one has to read the definitions to understand the difference between usm_atomic_host_allocations and usm_concurrent_host_allocations. What do you think about working the terms “device scope” and “system scope” into the names somehow? E.g. usm_atomic_host_allocations_device_scope and usm_atomic_host_allocations_system_scope.

Clarify several things about USM:

* We did not have precise rules about when USM memory allocated for
  one device could be accessed by another device.  This is now
  clarified, and a few new device aspects were added to tell
  applications when this is allowed.

* We did not have precise rules about sharing a USM memory region
  between two devices when those devices do not support "concurrent
  access" to USM.  Add rules to explain this.

* Replace the term "unified addressing", which was poorly defined, with
  a new term "stable addresses", and clarify exactly what guarantees we
  provide about uniqueness of pointers for the three USM allocation
  types.

Closes KhronosGroup#186.
@gmlueck gmlueck force-pushed the gmlueck/usm-clarification branch from 2fba032 to c13c557 Compare January 6, 2023 21:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants