pub struct AlgeonGpuDeviceConfig { /* private fields */ }Expand description
Canonical device profile bound to an explicit process-scoped GPU memory ownership promise.
Re-exports runtime-owned device construction types under application-facing names. They share type identity with runtime definitions without introducing adapter-specific defaults or separate validation. Pure per-device construction value binding a profile to deployment ownership.
The profile owns every device-local default; this value only completes the
binding with the process owner’s explicit GpuMemoryOwnership. Backend
construction resolves installation bounds and validates the bound value.
Implementations§
Source§impl GpuBackendDeviceConfig
impl GpuBackendDeviceConfig
Sourcepub fn homogeneous(
device_ordinals: impl IntoIterator<Item = usize>,
template: &GpuBackendDeviceProfile,
memory_ownership: GpuMemoryOwnership,
) -> Vec<GpuBackendDeviceConfig>
pub fn homogeneous( device_ordinals: impl IntoIterator<Item = usize>, template: &GpuBackendDeviceProfile, memory_ownership: GpuMemoryOwnership, ) -> Vec<GpuBackendDeviceConfig>
Builds one device config per ordinal from a shared template profile.
Every returned config clones the template policy (capacity, reserve,
query limit, attempts, bounds, capabilities, telemetry) and rebinds
only the device ordinal; the template’s own ordinal is ignored. The
deployment ownership is shared by every device. This is the shorthand
for the common homogeneous multi-device deployment; heterogeneous
devices still declare one Self::new each.
Sourcepub fn new(
profile: GpuBackendDeviceProfile,
memory_ownership: GpuMemoryOwnership,
) -> GpuBackendDeviceConfig
pub fn new( profile: GpuBackendDeviceProfile, memory_ownership: GpuMemoryOwnership, ) -> GpuBackendDeviceConfig
Binds a device profile to the deployment ownership promise. Validation occurs when the backend builder validates or builds this config.
Sourcepub fn profile(&self) -> &GpuBackendDeviceProfile
pub fn profile(&self) -> &GpuBackendDeviceProfile
Returns the device-local construction policy bound to this ownership promise.
Sourcepub fn device_ordinal(&self) -> usize
pub fn device_ordinal(&self) -> usize
Returns the CUDA device ordinal selected by this declaration.
Sourcepub fn device_capabilities(&self) -> &DeviceCapabilities
pub fn device_capabilities(&self) -> &DeviceCapabilities
Immutable native execution capabilities selected for this device.
Sourcepub fn memory_ownership(&self) -> GpuMemoryOwnership
pub fn memory_ownership(&self) -> GpuMemoryOwnership
Returns the deployment ownership promised by the process owner.
Sourcepub fn memory_limit(&self) -> GpuDeviceMemoryLimit
pub fn memory_limit(&self) -> GpuDeviceMemoryLimit
Returns the unresolved admission capacity policy, resolved at device discovery.
Sourcepub fn backend_reserve_bytes(&self) -> u64
pub fn backend_reserve_bytes(&self) -> u64
Returns bytes reserved outside managed query and cache capacity. The default is zero.
Sourcepub fn cache_cap_bytes(&self) -> u64
pub fn cache_cap_bytes(&self) -> u64
Returns the accounted resident-cache ceiling in bytes. The default is zero.
Sourcepub fn default_query_limit_bytes(&self) -> Option<u64>
pub fn default_query_limit_bytes(&self) -> Option<u64>
Returns the explicit default query grant in bytes. None requests
floor((managed_capacity_bytes - cache_cap_bytes) / max_active_attempts)
after device capacity resolution.
Sourcepub fn source_work_per_attempt(&self) -> usize
pub fn source_work_per_attempt(&self) -> usize
Returns auxiliary source-work slots reserved for each active attempt. The default is one.
Sourcepub fn max_active_attempts(&self) -> usize
pub fn max_active_attempts(&self) -> usize
Returns the maximum simultaneously admitted attempts on this device. The default is two.
Sourcepub fn install_telemetry(&self) -> bool
pub fn install_telemetry(&self) -> bool
Returns whether device telemetry is installed. New profiles enable it.
Trait Implementations§
Source§impl Clone for GpuBackendDeviceConfig
impl Clone for GpuBackendDeviceConfig
Source§fn clone(&self) -> GpuBackendDeviceConfig
fn clone(&self) -> GpuBackendDeviceConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GpuBackendDeviceConfig
impl Debug for GpuBackendDeviceConfig
impl Eq for GpuBackendDeviceConfig
Source§impl PartialEq for GpuBackendDeviceConfig
impl PartialEq for GpuBackendDeviceConfig
impl StructuralPartialEq for GpuBackendDeviceConfig
Auto Trait Implementations§
impl Freeze for GpuBackendDeviceConfig
impl RefUnwindSafe for GpuBackendDeviceConfig
impl Send for GpuBackendDeviceConfig
impl Sync for GpuBackendDeviceConfig
impl Unpin for GpuBackendDeviceConfig
impl UnsafeUnpin for GpuBackendDeviceConfig
impl UnwindSafe for GpuBackendDeviceConfig
Blanket Implementations§
impl<T> Allocation for T
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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> ⓘ
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> ⓘ
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request