pub enum ZeroCopyStrategy {
MmapDirect,
StagingUpload,
}Expand description
How weight data reaches the GPU for a given device.
Variants§
MmapDirect
Integrated / unified-memory GPU (Apple Silicon via Metal; integrated
Intel/AMD): the mmap’d region is directly GPU-visible — no host→device copy.
StagingUpload
Discrete GPU: upload the mmap’d region once via a staging buffer.
Implementations§
Source§impl ZeroCopyStrategy
impl ZeroCopyStrategy
Sourcepub fn for_device(is_unified_memory: bool) -> Self
pub fn for_device(is_unified_memory: bool) -> Self
Pick the strategy from whether the adapter has unified memory.
Sourcepub fn for_wgpu_device_type(device_type: DeviceType) -> Self
pub fn for_wgpu_device_type(device_type: DeviceType) -> Self
Map a wgpu device type to the strategy: integrated GPUs share memory with
the host (unified) ⇒ mmap-direct; discrete GPUs ⇒ staging upload. CPU/other
adapters are treated as unified (the “device” buffer is host memory).
Sourcepub fn requires_host_copy(self) -> bool
pub fn requires_host_copy(self) -> bool
Whether a host→device copy is required (false on unified memory).
Trait Implementations§
Source§impl Clone for ZeroCopyStrategy
impl Clone for ZeroCopyStrategy
Source§fn clone(&self) -> ZeroCopyStrategy
fn clone(&self) -> ZeroCopyStrategy
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ZeroCopyStrategy
impl Debug for ZeroCopyStrategy
Source§impl PartialEq for ZeroCopyStrategy
impl PartialEq for ZeroCopyStrategy
Source§fn eq(&self, other: &ZeroCopyStrategy) -> bool
fn eq(&self, other: &ZeroCopyStrategy) -> bool
Tests for
self and other values to be equal, and is used by ==.impl Copy for ZeroCopyStrategy
impl Eq for ZeroCopyStrategy
impl StructuralPartialEq for ZeroCopyStrategy
Auto Trait Implementations§
impl Freeze for ZeroCopyStrategy
impl RefUnwindSafe for ZeroCopyStrategy
impl Send for ZeroCopyStrategy
impl Sync for ZeroCopyStrategy
impl Unpin for ZeroCopyStrategy
impl UnsafeUnpin for ZeroCopyStrategy
impl UnwindSafe for ZeroCopyStrategy
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more