pub struct GpuDevice {
pub device_id: i32,
pub name: String,
pub compute_capability: (i32, i32),
pub total_memory: usize,
pub free_memory: usize,
pub max_threads_per_block: i32,
pub max_blocks_per_grid: i32,
pub warp_size: i32,
pub memory_bandwidth: f32,
pub peak_flops: f64,
}Expand description
GPU device information
Fields§
§device_id: i32§name: String§compute_capability: (i32, i32)§total_memory: usize§free_memory: usize§max_threads_per_block: i32§max_blocks_per_grid: i32§warp_size: i32§memory_bandwidth: f32§peak_flops: f64Implementations§
Source§impl GpuDevice
impl GpuDevice
Sourcepub fn get_device_info(device_id: i32) -> Result<Self>
pub fn get_device_info(device_id: i32) -> Result<Self>
Get information about a specific GPU device
Sourcepub fn get_all_devices() -> Result<Vec<Self>>
pub fn get_all_devices() -> Result<Vec<Self>>
Get information about all available GPU devices
Sourcepub fn supports_compute_capability(&self, major: i32, minor: i32) -> bool
pub fn supports_compute_capability(&self, major: i32, minor: i32) -> bool
Check if this device supports a specific compute capability
Sourcepub fn peak_memory_bandwidth(&self) -> f32
pub fn peak_memory_bandwidth(&self) -> f32
Get theoretical peak memory bandwidth in GB/s
Sourcepub fn peak_compute_performance(&self) -> f64
pub fn peak_compute_performance(&self) -> f64
Get theoretical peak compute performance in GFLOPS
Sourcepub fn calculate_optimal_block_config(&self, problem_size: usize) -> (i32, i32)
pub fn calculate_optimal_block_config(&self, problem_size: usize) -> (i32, i32)
Calculate optimal thread block configuration for given problem size
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
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.