Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clarify USM behavior #8

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Clarify USM behavior #8

wants to merge 1 commit into from

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.
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.

2 participants