cuda.core._device.DeviceProperties#

class cuda.core._device.DeviceProperties(*args, **kwargs)#

A class to query various attributes of a CUDA device.

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

Methods

__init__(*args, **kwargs)#

Attributes

async_engine_count#

Number of asynchronous engines.

Type:

int

can_flush_remote_writes#

The CU_STREAM_WAIT_VALUE_FLUSH flag and the CU_STREAM_MEM_OP_FLUSH_REMOTE_WRITES MemOp are supported on the device. See Stream Memory Operations for additional details.

Type:

bool

can_map_host_memory#

Device can map host memory into CUDA address space.

Type:

bool

can_tex2d_gather#

True if device supports 2D texture gather operations, False if not.

Type:

bool

can_use_64_bit_stream_mem_ops#

64-bit operations are supported in cuStreamBatchMemOp and related MemOp APIs.

Type:

bool

can_use_host_pointer_for_registered_mem#

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

Type:

bool

can_use_stream_wait_value_nor#

CU_STREAM_WAIT_VALUE_NOR is supported by MemOp APIs.

Type:

bool

clock_rate#

Typical clock frequency in kilohertz.

Type:

int

cluster_launch#

Indicates device supports cluster launch.

Type:

bool

compute_capability_major#

Major compute capability version number.

Type:

int

compute_capability_minor#

Minor compute capability version number.

Type:

int

compute_mode#

Compute mode (See CUcomputemode for details).

Type:

int

compute_preemption_supported#

Device supports compute preemption.

Type:

bool

concurrent_kernels#

Device can possibly execute multiple kernels concurrently.

Type:

bool

concurrent_managed_access#

Device can coherently access managed memory concurrently with the CPU.

Type:

bool

cooperative_launch#

Device supports launching cooperative kernels via cuLaunchCooperativeKernel.

Type:

bool

d3d12_cig_supported#

Device supports CIG with D3D12.

Type:

bool

deferred_mapping_cuda_array_supported#

Device supports deferred mapping CUDA arrays and CUDA mipmapped arrays.

Type:

bool

direct_managed_mem_access_from_host#

The host can directly access managed memory on the device without migration.

Type:

bool

dma_buf_supported#

Device supports buffer sharing with dma_buf mechanism.

Type:

bool

ecc_enabled#

Device has ECC support enabled.

Type:

bool

generic_compression_supported#

Device supports compression of memory.

Type:

bool

global_l1_cache_supported#

Device supports caching globals in L1.

Type:

bool

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.

Type:

int

gpu_direct_rdma_supported#

Device supports GPUDirect RDMA APIs, like nvidia_p2p_get_pages (see https://docs.nvidia.com/cuda/gpudirect-rdma for more information).

Type:

bool

gpu_direct_rdma_with_cuda_vmm_supported#

Device supports specifying the GPUDirect RDMA flag with cuMemCreate.

Type:

bool

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. See CUGPUDirectRDMAWritesOrdering for the numerical values returned here.

Type:

int

gpu_overlap#

Device can possibly copy memory and execute a kernel concurrently. Deprecated. Use async_engine_count instead.

Type:

bool

gpu_pci_device_id#

The combined 16-bit PCI device ID and 16-bit PCI vendor ID.

Returns 0 if the driver does not support this query.

Type:

int

gpu_pci_subsystem_id#

The combined 16-bit PCI subsystem ID and 16-bit PCI subsystem vendor ID.

Returns 0 if the driver does not support this query.

Type:

int

handle_type_fabric_supported#

Device supports exporting memory to a fabric handle with cuMemExportToShareableHandle() or requested with cuMemCreate().

Type:

bool

handle_type_posix_file_descriptor_supported#

Device supports exporting memory to a posix file descriptor with cuMemExportToShareableHandle, if requested via cuMemCreate.

Type:

bool

handle_type_win32_handle_supported#

Device supports exporting memory to a Win32 NT handle with cuMemExportToShareableHandle, if requested via cuMemCreate.

Type:

bool

handle_type_win32_kmt_handle_supported#

Device supports exporting memory to a Win32 KMT handle with cuMemExportToShareableHandle, if requested via cuMemCreate.

Type:

bool

host_alloc_dma_buf_supported#

Device supports page-locked host memory buffer sharing with dma_buf mechanism.

Type:

bool

host_memory_pools_supported#

Device supports HOST location with the cuMemAllocAsync and cuMemPool family of APIs.

Type:

bool

host_native_atomic_supported#

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

Type:

bool

host_numa_id#

NUMA ID of the host node closest to the device. Returns -1 when system does not support NUMA.

Type:

int

host_numa_memory_pools_supported#

Device supports HOST_NUMA location with the cuMemAllocAsync and cuMemPool family of APIs.

Type:

bool

host_numa_multinode_ipc_supported#

Device supports HOST_NUMA location IPC between nodes in a multi-node system.

Type:

bool

host_numa_virtual_memory_management_supported#

Device supports HOST_NUMA location with the virtual memory management APIs like cuMemCreate, cuMemMap and related APIs.

Type:

bool

host_register_supported#

Device supports host memory registration via cudaHostRegister.

Type:

bool

host_virtual_memory_management_supported#

Device supports HOST location with the virtual memory management APIs like cuMemCreate, cuMemMap and related APIs.

Type:

bool

integrated#

Device is integrated with host memory.

Type:

bool

ipc_event_supported#

Device supports IPC Events.

Type:

bool

kernel_exec_timeout#

Specifies whether there is a run time limit on kernels.

Type:

bool

l2_cache_size#

Size of L2 cache in bytes.

Type:

int

local_l1_cache_supported#

Device supports caching locals in L1.

Type:

bool

managed_memory#

Device can allocate managed memory on this system.

Type:

bool

max_access_policy_window_size#

Maximum value of CUaccessPolicyWindow.num_bytes.

Type:

int

max_block_dim_x#

Maximum block dimension X.

Type:

int

max_block_dim_y#

Maximum block dimension Y.

Type:

int

max_block_dim_z#

Maximum block dimension Z.

Type:

int

max_blocks_per_multiprocessor#

Maximum number of blocks per multiprocessor.

Type:

int

max_grid_dim_x#

Maximum grid dimension X.

Type:

int

max_grid_dim_y#

Maximum grid dimension Y.

Type:

int

max_grid_dim_z#

Maximum grid dimension Z.

Type:

int

max_persisting_l2_cache_size#

Maximum L2 persisting lines capacity setting in bytes.

Type:

int

max_pitch#

Maximum pitch in bytes allowed by memory copies.

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 per multiprocessor.

Type:

int

max_shared_memory_per_block#

Maximum shared memory available per block in bytes.

Type:

int

max_shared_memory_per_block_optin#

Maximum optin shared memory per block.

Type:

int

max_shared_memory_per_multiprocessor#

Maximum shared memory available per multiprocessor in bytes.

Type:

int

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_gather_height#

Maximum 2D texture gather height.

Type:

int

maximum_texture2d_gather_width#

Maximum 2D texture gather 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

mem_decompress_algorithm_mask#

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

Type:

int

mem_decompress_maximum_length#

The returned value is the maximum length in bytes of a single decompress operation that is allowed.

Type:

int

mem_sync_domain_count#

Number of memory domains the device supports.

Type:

int

memory_clock_rate#

Peak memory clock frequency in kilohertz.

Type:

int

memory_pools_supported#

Device supports using the cuMemAllocAsync and cuMemPool family of APIs.

Type:

bool

mempool_supported_handle_types#

Handle types supported with mempool based IPC.

Type:

int

mps_enabled#

Indicates if contexts created on this device will be shared via MPS.

Type:

bool

multi_gpu_board#

Device is on a multi-GPU board.

Type:

bool

multi_gpu_board_group_id#

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

Type:

int

multicast_supported#

Device supports switch multicast and reduction operations.

Type:

bool

multiprocessor_count#

Number of multiprocessors on device.

Type:

int

numa_config#

NUMA configuration of a device: value is of type CUdeviceNumaConfig enum.

Type:

int

numa_id#

NUMA node ID of the GPU memory.

Type:

int

only_partial_host_native_atomic_supported#

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

Type:

bool

pageable_memory_access#

Device supports coherently accessing pageable memory without calling cudaHostRegister on it.

Type:

bool

pageable_memory_access_uses_host_page_tables#

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

Type:

bool

pci_bus_id#

PCI bus ID of the device.

Type:

int

pci_device_id#

PCI device ID of the device.

Type:

int

pci_domain_id#

PCI domain ID of the device.

Type:

int

read_only_host_register_supported#

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

Type:

bool

reserved_shared_memory_per_block#

Shared memory reserved by CUDA driver per block in bytes.

Type:

int

single_to_double_precision_perf_ratio#

Ratio of single precision performance (in floating-point operations per second) to double precision performance.

Type:

int

sparse_cuda_array_supported#

Device supports sparse CUDA arrays and sparse CUDA mipmapped arrays.

Type:

bool

stream_priorities_supported#

True if device supports stream priorities, False if not.

Type:

bool

surface_alignment#

Surface alignment requirement in bytes.

Type:

int

tcc_driver#

Device is using TCC driver model.

Type:

bool

tensor_map_access_supported#

Device supports accessing memory using Tensor Map.

Type:

bool

texture_alignment#

Alignment requirement for textures.

Type:

int

texture_pitch_alignment#

Pitch alignment requirement for textures.

Type:

int

timeline_semaphore_interop_supported#

External timeline semaphore interop is supported on the device.

Type:

bool

total_constant_memory#

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

Type:

int

unified_addressing#

Device shares a unified address space with the host.

Type:

bool

unified_function_pointers#

Device supports unified function pointers.

Type:

bool

virtual_memory_management_supported#

Device supports virtual memory management APIs like cuMemAddressReserve, cuMemCreate, cuMemMap and related APIs.

Type:

bool

vulkan_cig_supported#

Device supports CIG with Vulkan.

Type:

bool

warp_size#

Warp size in threads.

Type:

int