cuda.core.experimental._device.DeviceProperties

class cuda.core.experimental._device.DeviceProperties

A class to query various attributes of a CUDA device.

Attributes are read-only and provide information about the device.

Methods

__init__()

Attributes

can_map_host_memory

True if the device can map host memory into the CUDA address space, False if not.

Type:

bool

can_use_host_pointer_for_registered_mem

True if device can access host registered memory at the same virtual address as the CPU, False if not.

clock_rate

The typical clock frequency in kilohertz.

Type:

int

compute_capability_major

Major compute capability version number.

Type:

int

compute_capability_minor

Minor compute capability version number.

Type:

int

compute_mode

Compute mode that device is currently in.

Type:

int

compute_preemption_supported

True if device supports Compute Preemption, False if not.

concurrent_kernels

True if the device supports executing multiple kernels within the same context simultaneously, False if not.

Type:

bool

concurrent_managed_access

True if device can coherently access managed memory concurrently with the CPU, False if not.

deferred_mapping_cuda_array_supported

True if device supports deferred mapping CUDA arrays and CUDA mipmapped arrays, False if not.

direct_managed_mem_access_from_host

True if the host can directly access managed memory on the device without migration, False if not.

ecc_enabled

True if error correction is enabled on the device, False if error correction is disabled or not supported by the device.

Type:

bool

generic_compression_supported

True if device supports compressible memory allocation via cuMemCreate, False if not.

global_l1_cache_supported

True if device supports caching globals in L1 cache, False if caching globals in L1 cache is not supported by the device.

global_memory_bus_width

Global memory bus width in bits.

Type:

int

gpu_direct_rdma_flush_writes_options

The returned attribute shall be interpreted as a bitmask, where the individual bits are described by the CUflushGPUDirectRDMAWritesOptions enum.

gpu_direct_rdma_supported

True if device supports GPUDirect RDMA APIs, False if not.

gpu_direct_rdma_with_cuda_vmm_supported

True if device supports specifying the GPUDirect RDMA flag with cuMemCreate, False if not.

gpu_direct_rdma_writes_ordering

GPUDirect RDMA writes to the device do not need to be flushed for consumers within the scope indicated by the returned attribute.

gpu_overlap

True if the device can concurrently copy memory between host and device while executing a kernel, False if not.

Type:

bool

handle_type_posix_file_descriptor_supported

True if device supports exporting memory to a posix file descriptor with cuMemExportToShareableHandle, False if not.

handle_type_win32_handle_supported

True if device supports exporting memory to a Win32 NT handle with cuMemExportToShareableHandle, False if not.

handle_type_win32_kmt_handle_supported

True if device supports exporting memory to a Win32 KMT handle with cuMemExportToShareableHandle, False if not.

host_native_atomic_supported

True if Link between the device and the host supports native atomic operations, False if not.

integrated

True if the device is integrated with the memory subsystem, False if not.

Type:

bool

kernel_exec_timeout

True if there is a run time limit for kernels executed on the device, False if not.

Type:

bool

l2_cache_size

Size of L2 cache in bytes, 0 if the device doesn’t have L2 cache.

Type:

int

local_l1_cache_supported

True if device supports caching locals in L1 cache, False if caching locals in L1 cache is not supported by the device.

managed_memory

True if device supports allocating managed memory on this system, False if allocating managed memory is not supported by the device on this system.

max_access_policy_window_size

Maximum value of CUaccessPolicyWindow::num_bytes.

max_block_dim_x

Maximum x-dimension of a block.

Type:

int

max_block_dim_y

Maximum y-dimension of a block.

Type:

int

max_block_dim_z

Maximum z-dimension of a block.

Type:

int

max_blocks_per_multiprocessor

Maximum number of thread blocks that can reside on a multiprocessor.

max_grid_dim_x

Maximum x-dimension of a grid.

Type:

int

max_grid_dim_y

Maximum y-dimension of a grid.

Type:

int

max_grid_dim_z

Maximum z-dimension of a grid.

Type:

int

max_persisting_l2_cache_size

Maximum L2 persisting lines capacity setting in bytes.

max_pitch

Maximum pitch in bytes allowed by the memory copy functions that involve memory regions allocated through cuMemAllocPitch().

Type:

int

max_registers_per_block

Maximum number of 32-bit registers available to a thread block.

Type:

int

max_registers_per_multiprocessor

Maximum number of 32-bit registers available to a multiprocessor.

max_shared_memory_per_block

Maximum amount of shared memory available to a thread block in bytes.

Type:

int

max_shared_memory_per_block_optin

The maximum per block shared memory size supported on this device.

max_shared_memory_per_multiprocessor

Maximum amount of shared memory available to a multiprocessor in bytes.

max_threads_per_block

Maximum number of threads per block.

Type:

int

max_threads_per_multiprocessor

Maximum resident threads per multiprocessor.

Type:

int

maximum_surface1d_layered_layers

Maximum layers in a 1D layered surface.

Type:

int

maximum_surface1d_layered_width

Maximum 1D layered surface width.

Type:

int

maximum_surface1d_width

Maximum 1D surface width.

Type:

int

maximum_surface2d_height

Maximum 2D surface height.

Type:

int

maximum_surface2d_layered_height

Maximum 2D layered surface height.

Type:

int

maximum_surface2d_layered_layers

Maximum layers in a 2D layered surface.

Type:

int

maximum_surface2d_layered_width

Maximum 2D layered surface width.

Type:

int

maximum_surface2d_width

Maximum 2D surface width.

Type:

int

maximum_surface3d_depth

Maximum 3D surface depth.

Type:

int

maximum_surface3d_height

Maximum 3D surface height.

Type:

int

maximum_surface3d_width

Maximum 3D surface width.

Type:

int

maximum_surfacecubemap_layered_layers

Maximum layers in a cubemap layered surface.

Type:

int

maximum_surfacecubemap_layered_width

Maximum cubemap layered surface width.

Type:

int

maximum_surfacecubemap_width

Maximum cubemap surface width.

Type:

int

maximum_texture1d_layered_layers

Maximum layers in a 1D layered texture.

Type:

int

maximum_texture1d_layered_width

Maximum 1D layered texture width.

Type:

int

maximum_texture1d_linear_width

Maximum width for a 1D texture bound to linear memory.

Type:

int

maximum_texture1d_mipmapped_width

Maximum mipmapped 1D texture width.

Type:

int

maximum_texture1d_width

Maximum 1D texture width.

Type:

int

maximum_texture2d_height

Maximum 2D texture height.

Type:

int

maximum_texture2d_layered_height

Maximum 2D layered texture height.

Type:

int

maximum_texture2d_layered_layers

Maximum layers in a 2D layered texture.

Type:

int

maximum_texture2d_layered_width

Maximum 2D layered texture width.

Type:

int

maximum_texture2d_linear_height

Maximum height for a 2D texture bound to linear memory.

Type:

int

maximum_texture2d_linear_pitch

Maximum pitch in bytes for a 2D texture bound to linear memory.

Type:

int

maximum_texture2d_linear_width

Maximum width for a 2D texture bound to linear memory.

Type:

int

maximum_texture2d_mipmapped_height

Maximum mipmapped 2D texture height.

Type:

int

maximum_texture2d_mipmapped_width

Maximum mipmapped 2D texture width.

Type:

int

maximum_texture2d_width

Maximum 2D texture width.

Type:

int

maximum_texture3d_depth

Maximum 3D texture depth.

Type:

int

maximum_texture3d_depth_alternate

Alternate maximum 3D texture depth, 0 if no alternate maximum 3D texture size is supported.

Type:

int

maximum_texture3d_height

Maximum 3D texture height.

Type:

int

maximum_texture3d_height_alternate

Alternate maximum 3D texture height, 0 if no alternate maximum 3D texture size is supported.

Type:

int

maximum_texture3d_width

Maximum 3D texture width.

Type:

int

maximum_texture3d_width_alternate

Alternate maximum 3D texture width, 0 if no alternate maximum 3D texture size is supported.

Type:

int

maximum_texturecubemap_layered_layers

Maximum layers in a cubemap layered texture.

Type:

int

maximum_texturecubemap_layered_width

Maximum cubemap layered texture width or height.

Type:

int

maximum_texturecubemap_width

Maximum cubemap texture width or height.

Type:

int

memory_clock_rate

Peak memory clock frequency in kilohertz.

Type:

int

memory_pools_supported

True if device supports using the cuMemAllocAsync and cuMemPool family of APIs, False if not.

mempool_supported_handle_types

Bitmask of handle types supported with mempool based IPC.

multi_gpu_board

True if device is on a multi-GPU board, False if not.

multi_gpu_board_group_id

Unique identifier for a group of devices associated with the same board.

multicast_supported

True if device supports switch multicast and reduction operations, False if not.

multiprocessor_count

Number of multiprocessors on the device.

Type:

int

numa_config

NUMA configuration of a device.

numa_id

NUMA node ID of the GPU memory.

pageable_memory_access

True if device supports coherently accessing pageable memory without calling cudaHostRegister on it, False if not.

pageable_memory_access_uses_host_page_tables

True if device accesses pageable memory via the host’s page tables, False if not.

pci_bus_id

PCI bus identifier of the device.

Type:

int

pci_device_id

PCI device (also known as slot) identifier of the device.

Type:

int

pci_domain_id

PCI domain identifier of the device.

Type:

int

read_only_host_register_supported

True if device supports using the cuMemHostRegister flag CU_MEMHOSTERGISTER_READ_ONLY to register memory that must be mapped as read-only to the GPU, False if not.

reserved_shared_memory_per_block

Amount of shared memory per block reserved by CUDA driver in bytes.

single_to_double_precision_perf_ratio

Ratio of single precision performance to double precision performance.

sparse_cuda_array_supported

True if device supports sparse CUDA arrays and sparse CUDA mipmapped arrays, False if not.

tcc_driver

True if the device is using a TCC driver, False if not.

Type:

bool

texture_alignment

Alignment requirement; texture base addresses aligned to textureAlign bytes do not need an offset applied to texture fetches.

Type:

int

texture_pitch_alignment

Pitch alignment requirement for 2D texture references bound to pitched memory.

Type:

int

total_constant_memory

Memory available on device for __constant__ variables in a CUDA C kernel in bytes.

Type:

int

unified_addressing

True if the device shares a unified address space with the host, False if not.

Type:

bool

virtual_memory_management_supported

True if device supports virtual memory management APIs like cuMemAddressReserve, cuMemCreate, cuMemMap and related APIs, False if not.

warp_size

Warp size in threads.

Type:

int