#[repr(transparent)]pub struct cudaLaunchMemSyncDomain(pub c_uint);
Expand description
Memory Synchronization Domain
A kernel can be launched in a specified memory synchronization domain that affects all memory operations issued by that kernel. A memory barrier issued in one domain will only order memory operations in that domain, thus eliminating latency increase from memory barriers ordering unrelated traffic.
By default, kernels are launched in domain 0. Kernel launched with ::cudaLaunchMemSyncDomainRemote will have a different domain ID. User may also alter the domain ID with ::cudaLaunchMemSyncDomainMap for a specific stream / graph node / kernel launch. See ::cudaLaunchAttributeMemSyncDomain, ::cudaStreamSetAttribute, ::cudaLaunchKernelEx, ::cudaGraphKernelNodeSetAttribute.
Memory operations done in kernels launched in different domains are considered system-scope distanced. In other words, a GPU scoped memory synchronization is not sufficient for memory order to be observed by kernels in another memory synchronization domain even if they are on the same GPU.
Tuple Fields§
§0: c_uint
Implementations§
Source§impl cudaLaunchMemSyncDomain
impl cudaLaunchMemSyncDomain
Sourcepub const cudaLaunchMemSyncDomainDefault: cudaLaunchMemSyncDomain
pub const cudaLaunchMemSyncDomainDefault: cudaLaunchMemSyncDomain
< Launch kernels in the default domain
Source§impl cudaLaunchMemSyncDomain
impl cudaLaunchMemSyncDomain
Sourcepub const cudaLaunchMemSyncDomainRemote: cudaLaunchMemSyncDomain
pub const cudaLaunchMemSyncDomainRemote: cudaLaunchMemSyncDomain
< Launch kernels in the remote domain
Trait Implementations§
Source§impl Clone for cudaLaunchMemSyncDomain
impl Clone for cudaLaunchMemSyncDomain
Source§fn clone(&self) -> cudaLaunchMemSyncDomain
fn clone(&self) -> cudaLaunchMemSyncDomain
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more