pub struct GpuDevice {
pub id: DeviceId,
pub device: Arc<Device>,
pub queue: Arc<Queue>,
pub adapter_info: AdapterInfo,
pub capabilities: DeviceCapabilities,
pub current_load: Arc<AtomicU32>,
pub memory_usage: Arc<AtomicU64>,
pub total_operations: Arc<AtomicUsize>,
pub error_count: Arc<AtomicUsize>,
pub last_activity: Arc<Mutex<Instant>>,
pub is_healthy: Arc<AtomicBool>,
}Expand description
Individual GPU device in the multi-GPU system
Fields§
§id: DeviceId§device: Arc<Device>§queue: Arc<Queue>§adapter_info: AdapterInfo§capabilities: DeviceCapabilities§current_load: Arc<AtomicU32>§memory_usage: Arc<AtomicU64>§total_operations: Arc<AtomicUsize>§error_count: Arc<AtomicUsize>§last_activity: Arc<Mutex<Instant>>§is_healthy: Arc<AtomicBool>Implementations§
Source§impl GpuDevice
impl GpuDevice
Sourcepub async fn new(
id: DeviceId,
adapter: &Adapter,
device: Device,
queue: Queue,
) -> UnifiedGpuResult<Self>
pub async fn new( id: DeviceId, adapter: &Adapter, device: Device, queue: Queue, ) -> UnifiedGpuResult<Self>
Create a new GPU device from WebGPU adapter and device
Sourcepub fn update_load(&self, load_percent: f32)
pub fn update_load(&self, load_percent: f32)
Update device load metrics
Sourcepub fn current_load(&self) -> f32
pub fn current_load(&self) -> f32
Get current device load percentage
Sourcepub fn is_available(&self) -> bool
pub fn is_available(&self) -> bool
Check if device is currently available for work
Sourcepub fn performance_score(&self, operation_type: &str) -> f32
pub fn performance_score(&self, operation_type: &str) -> f32
Get device performance score for workload assignment
Trait Implementations§
Auto Trait Implementations§
impl Freeze for GpuDevice
impl !RefUnwindSafe for GpuDevice
impl Send for GpuDevice
impl Sync for GpuDevice
impl Unpin for GpuDevice
impl !UnwindSafe for GpuDevice
Blanket Implementations§
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<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.