Conversation
|
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.
2fba032 to
c13c557
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.