Skip to main content

DeviceProperties

Struct DeviceProperties 

Source
pub struct DeviceProperties {
Show 85 fields pub name: String, pub uuid: Uuid, pub luid: [u8; 8], pub luid_device_node_mask: u32, pub total_global_mem: usize, pub shared_mem_per_block: usize, pub regs_per_block: i32, pub warp_size: i32, pub mem_pitch: usize, pub max_threads_per_block: i32, pub max_threads_dim: [i32; 3], pub max_grid_size: [i32; 3], pub total_const_mem: usize, pub major: i32, pub minor: i32, pub texture_alignment: usize, pub texture_pitch_alignment: usize, pub multi_processor_count: i32, pub integrated: bool, pub can_map_host_memory: bool, pub max_texture1d: i32, pub max_texture1d_mipmap: i32, pub max_texture2d: [i32; 2], pub max_texture2d_mipmap: [i32; 2], pub max_texture2d_linear: [i32; 3], pub max_texture2d_gather: [i32; 2], pub max_texture3d: [i32; 3], pub max_texture3d_alt: [i32; 3], pub max_texture_cubemap: i32, pub max_texture1d_layered: [i32; 2], pub max_texture2d_layered: [i32; 3], pub max_texture_cubemap_layered: [i32; 2], pub max_surface1d: i32, pub max_surface2d: [i32; 2], pub max_surface3d: [i32; 3], pub max_surface1d_layered: [i32; 2], pub max_surface2d_layered: [i32; 3], pub max_surface_cubemap: i32, pub max_surface_cubemap_layered: [i32; 2], pub surface_alignment: usize, pub concurrent_kernels: bool, pub ecc_enabled: bool, pub pci_bus_id: i32, pub pci_device_id: i32, pub pci_domain_id: i32, pub tcc_driver: bool, pub async_engine_count: i32, pub unified_addressing: bool, pub memory_bus_width: i32, pub l2_cache_size: i32, pub persisting_l2_cache_max_size: i32, pub max_threads_per_multi_processor: i32, pub stream_priorities_supported: bool, pub global_l1_cache_supported: bool, pub local_l1_cache_supported: bool, pub shared_mem_per_multiprocessor: usize, pub regs_per_multiprocessor: i32, pub managed_memory: bool, pub is_multi_gpu_board: bool, pub multi_gpu_board_group_id: i32, pub host_native_atomic_supported: bool, pub pageable_memory_access: bool, pub concurrent_managed_access: bool, pub compute_preemption_supported: bool, pub can_use_host_pointer_for_registered_mem: bool, pub cooperative_launch: bool, pub shared_mem_per_block_optin: usize, pub pageable_memory_access_uses_host_page_tables: bool, pub direct_managed_mem_access_from_host: bool, pub max_blocks_per_multi_processor: i32, pub access_policy_max_window_size: i32, pub reserved_shared_mem_per_block: usize, pub host_register_supported: bool, pub sparse_cuda_array_supported: bool, pub host_register_read_only_supported: bool, pub timeline_semaphore_interop_supported: bool, pub memory_pools_supported: bool, pub gpu_direct_rdma_supported: bool, pub gpu_direct_rdma_flush_writes_options: u32, pub gpu_direct_rdma_writes_ordering: i32, pub memory_pool_supported_handle_types: u32, pub deferred_mapping_cuda_array_supported: bool, pub ipc_event_supported: bool, pub cluster_launch: bool, pub unified_function_pointers: bool,
}
Expand description

Rust representation of CUDA device properties.

Fields§

§name: String

ASCII string identifying device.

§uuid: Uuid

16-byte unique identifier.

§luid: [u8; 8]

8-byte locally unique identifier. Value is undefined on TCC and non-Windows platforms.

§luid_device_node_mask: u32

LUID device node mask. Value is undefined on TCC and non-Windows platforms.

§total_global_mem: usize

Global memory available on device in bytes.

§shared_mem_per_block: usize

Shared memory available per block in bytes.

§regs_per_block: i32

32-bit registers available per block.

§warp_size: i32

Warp size in threads.

§mem_pitch: usize

Maximum pitch in bytes allowed by memory copies.

§max_threads_per_block: i32

Maximum number of threads per block.

§max_threads_dim: [i32; 3]

Maximum size of each dimension of a block.

§max_grid_size: [i32; 3]

Maximum size of each dimension of a grid.

§total_const_mem: usize

Constant memory available on device in bytes.

§major: i32

Major compute capability.

§minor: i32

Minor compute capability.

§texture_alignment: usize

Alignment requirement for textures.

§texture_pitch_alignment: usize

Pitch alignment requirement for texture references bound to pitched memory.

§multi_processor_count: i32

Number of multiprocessors on device.

§integrated: bool

Device is integrated as opposed to discrete.

§can_map_host_memory: bool

Device can map host memory into CUDA address space.

§max_texture1d: i32

Maximum 1D texture size.

§max_texture1d_mipmap: i32

Maximum 1D mipmapped texture size.

§max_texture2d: [i32; 2]

Maximum 2D texture dimensions.

§max_texture2d_mipmap: [i32; 2]

Maximum 2D mipmapped texture dimensions.

§max_texture2d_linear: [i32; 3]

Maximum dimensions (width, height, pitch) for 2D textures bound to linear memory.

§max_texture2d_gather: [i32; 2]

Maximum 2D texture dimensions for texture gather operations.

§max_texture3d: [i32; 3]

Maximum 3D texture dimensions.

§max_texture3d_alt: [i32; 3]

Maximum alternate 3D texture dimensions.

§max_texture_cubemap: i32

Maximum Cubemap texture dimensions.

§max_texture1d_layered: [i32; 2]

Maximum 1D layered texture dimensions.

§max_texture2d_layered: [i32; 3]

Maximum 2D layered texture dimensions.

§max_texture_cubemap_layered: [i32; 2]

Maximum Cubemap layered texture dimensions.

§max_surface1d: i32

Maximum 1D surface size.

§max_surface2d: [i32; 2]

Maximum 2D surface dimensions.

§max_surface3d: [i32; 3]

Maximum 3D surface dimensions.

§max_surface1d_layered: [i32; 2]

Maximum 1D layered surface dimensions.

§max_surface2d_layered: [i32; 3]

Maximum 2D layered surface dimensions.

§max_surface_cubemap: i32

Maximum Cubemap surface dimensions.

§max_surface_cubemap_layered: [i32; 2]

Maximum Cubemap layered surface dimensions.

§surface_alignment: usize

Alignment requirements for surfaces.

§concurrent_kernels: bool

Device can possibly execute multiple kernels concurrently.

§ecc_enabled: bool

Device has ECC support enabled.

§pci_bus_id: i32

PCI bus ID of the device.

§pci_device_id: i32

PCI device ID of the device.

§pci_domain_id: i32

PCI domain ID of the device.

§tcc_driver: bool

1 if device is a Tesla device using TCC driver, 0 otherwise.

§async_engine_count: i32

Number of asynchronous engines.

§unified_addressing: bool

Device shares a unified address space with the host.

§memory_bus_width: i32

Global memory bus width in bits.

§l2_cache_size: i32

Size of L2 cache in bytes.

§persisting_l2_cache_max_size: i32

Device’s maximum l2 persisting lines capacity setting in bytes.

§max_threads_per_multi_processor: i32

Maximum resident threads per multiprocessor.

§stream_priorities_supported: bool

Device supports stream priorities.

§global_l1_cache_supported: bool

Device supports caching globals in L1.

§local_l1_cache_supported: bool

Device supports caching locals in L1.

§shared_mem_per_multiprocessor: usize

Shared memory available per multiprocessor in bytes.

§regs_per_multiprocessor: i32

32-bit registers available per multiprocessor.

§managed_memory: bool

Device supports allocating managed memory on this system.

§is_multi_gpu_board: bool

Device is on a multi-GPU board.

§multi_gpu_board_group_id: i32

Unique identifier for a group of devices on the same multi-GPU board.

§host_native_atomic_supported: bool

Link between the device and the host supports native atomic operations.

§pageable_memory_access: bool

Device supports coherently accessing pageable memory without calling DeviceMemory::register_host on it.

§concurrent_managed_access: bool

Device can coherently access managed memory concurrently with the CPU.

§compute_preemption_supported: bool

Device supports Compute Preemption.

§can_use_host_pointer_for_registered_mem: bool

Device can access host registered memory at the same virtual address as the CPU.

§cooperative_launch: bool

Device supports cooperative kernel launches.

§shared_mem_per_block_optin: usize

Per device maximum shared memory per block usable by special opt-in.

§pageable_memory_access_uses_host_page_tables: bool

Device accesses pageable memory via the host’s page tables.

§direct_managed_mem_access_from_host: bool

Host can directly access managed memory on the device without migration.

§max_blocks_per_multi_processor: i32

Maximum number of resident blocks per multiprocessor.

§access_policy_max_window_size: i32

Maximum value of the CUDA access-policy window num_bytes field.

§reserved_shared_mem_per_block: usize

Shared memory reserved by CUDA driver per block in bytes.

§host_register_supported: bool

Device supports host memory registration via DeviceMemory::register_host.

§sparse_cuda_array_supported: bool

Device supports sparse CUDA arrays and sparse CUDA mipmapped arrays.

§host_register_read_only_supported: bool

Device supports HostRegisterFlags::READ_ONLY for host registrations mapped as read-only to the GPU.

§timeline_semaphore_interop_supported: bool

External timeline semaphore interop is supported.

§memory_pools_supported: bool

Device supports CUDA memory pools.

§gpu_direct_rdma_supported: bool

Device supports GPUDirect RDMA APIs.

§gpu_direct_rdma_flush_writes_options: u32

The returned flags may be used as subset of the supported write ordering MASTs supplied with GPUDirect RDMA writes.

§gpu_direct_rdma_writes_ordering: i32

GPUDirect RDMA writes are guaranteed to be ordered with respect to other GPUDirect RDMA writes from the same GPU.

§memory_pool_supported_handle_types: u32

Handle types supported with mempool based IPC.

§deferred_mapping_cuda_array_supported: bool

Indicates device supports deferred mapping CUDA arrays and mapping hints.

§ipc_event_supported: bool

Device supports IPC Events.

§cluster_launch: bool

Device supports Cluster Launch.

§unified_function_pointers: bool

Device supports unified function pointers.

Trait Implementations§

Source§

impl Clone for DeviceProperties

Source§

fn clone(&self) -> DeviceProperties

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DeviceProperties

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl TryFrom<cudaDeviceProp> for DeviceProperties

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: cudaDeviceProp) -> Result<Self>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.