Table of Contents

Class CudaDeviceInfo

Namespace
DotCompute.Backends.CUDA.Models
Assembly
DotCompute.Backends.CUDA.dll

Comprehensive information about a CUDA device.

public sealed class CudaDeviceInfo
Inheritance
CudaDeviceInfo
Inherited Members

Constructors

CudaDeviceInfo()

Initializes a new instance of the CudaDeviceInfo class for testing/P2P operations.

public CudaDeviceInfo()

Properties

Architecture

Gets or sets the architecture generation.

public string Architecture { get; set; }

Property Value

string

AsyncEngineCount

Gets or sets the number of asynchronous copy engines.

public int AsyncEngineCount { get; set; }

Property Value

int

CanMapHostMemory

Gets or sets whether the device can map host memory.

public bool CanMapHostMemory { get; set; }

Property Value

bool

CanUseHostPointerForRegisteredMem

Gets or sets whether host pointers can be used for registered memory.

public bool CanUseHostPointerForRegisteredMem { get; set; }

Property Value

bool

ClockRate

Gets or sets the GPU core clock rate in kHz.

public int ClockRate { get; set; }

Property Value

int

ComputeCapability

Gets or sets the compute capability (e.g., "8.9").

public string ComputeCapability { get; set; }

Property Value

string

ComputeCapabilityMajor

Gets or sets the compute capability major version.

public int ComputeCapabilityMajor { get; set; }

Property Value

int

ComputeCapabilityMinor

Gets or sets the compute capability minor version.

public int ComputeCapabilityMinor { get; set; }

Property Value

int

ComputePreemptionSupported

Gets or sets whether compute preemption is supported.

public bool ComputePreemptionSupported { get; set; }

Property Value

bool

ConcurrentKernels

Gets or sets whether concurrent kernels are supported.

public bool ConcurrentKernels { get; set; }

Property Value

bool

ConcurrentManagedAccess

Gets or sets whether the device supports concurrent managed access.

public bool ConcurrentManagedAccess { get; set; }

Property Value

bool

CooperativeLaunch

Gets or sets whether cooperative kernel launches are supported.

public bool CooperativeLaunch { get; set; }

Property Value

bool

CooperativeMultiDeviceLaunch

Gets or sets whether cooperative multi-device launches are supported.

public bool CooperativeMultiDeviceLaunch { get; set; }

Property Value

bool

CudaCores

Gets the estimated number of CUDA cores based on compute capability and SM count.

public int CudaCores { get; }

Property Value

int

DeviceId

Gets or sets the device ID.

public int DeviceId { get; set; }

Property Value

int

DirectManagedMemAccessFromHost

Gets or sets whether direct managed memory access from host is supported.

public bool DirectManagedMemAccessFromHost { get; set; }

Property Value

bool

EccEnabled

Gets or sets whether ECC (error correction) is enabled.

public bool EccEnabled { get; set; }

Property Value

bool

GlobalL1CacheSupported

Gets or sets whether global L1 cache is supported.

public bool GlobalL1CacheSupported { get; set; }

Property Value

bool

HostNativeAtomicSupported

Gets or sets whether host native atomic operations are supported.

public bool HostNativeAtomicSupported { get; set; }

Property Value

bool

IntegratedGpu

Gets or sets whether this device is an integrated GPU. Integrated GPUs share system memory and are typically lower performance than discrete GPUs.

public bool IntegratedGpu { get; set; }

Property Value

bool

IsMultiGpuBoard

Gets or sets whether this is a multi-GPU board.

public bool IsMultiGpuBoard { get; set; }

Property Value

bool

IsRTX

Gets whether this is an RTX series GPU.

public bool IsRTX { get; }

Property Value

bool

KernelExecutionTimeout

Gets or sets whether kernel execution has timeout enabled.

public bool KernelExecutionTimeout { get; set; }

Property Value

bool

L2CacheSize

Gets or sets the L2 cache size in bytes.

public int L2CacheSize { get; set; }

Property Value

int

LocalL1CacheSupported

Gets or sets whether local L1 cache is supported.

public bool LocalL1CacheSupported { get; set; }

Property Value

bool

Major

Gets the compute capability major version (alias for ComputeCapabilityMajor).

public int Major { get; }

Property Value

int

ManagedMemory

Gets or sets whether the device supports managed memory.

public bool ManagedMemory { get; set; }

Property Value

bool

MaxBlockDimX

Gets or sets the maximum X dimension of a block.

public int MaxBlockDimX { get; set; }

Property Value

int

MaxBlockDimY

Gets or sets the maximum Y dimension of a block.

public int MaxBlockDimY { get; set; }

Property Value

int

MaxBlockDimZ

Gets or sets the maximum Z dimension of a block.

public int MaxBlockDimZ { get; set; }

Property Value

int

MaxGridDimX

Gets or sets the maximum X dimension of a grid.

public int MaxGridDimX { get; set; }

Property Value

int

MaxGridDimY

Gets or sets the maximum Y dimension of a grid.

public int MaxGridDimY { get; set; }

Property Value

int

MaxGridDimZ

Gets or sets the maximum Z dimension of a grid.

public int MaxGridDimZ { get; set; }

Property Value

int

MaxSharedMemoryPerMultiprocessor

Gets or sets the maximum shared memory per multiprocessor.

public int MaxSharedMemoryPerMultiprocessor { get; set; }

Property Value

int

MaxTexture1DSize

Gets or sets the maximum 1D texture size.

public int MaxTexture1DSize { get; set; }

Property Value

int

MaxTexture2DHeight

Gets or sets the maximum 2D texture height.

public int MaxTexture2DHeight { get; set; }

Property Value

int

MaxTexture2DWidth

Gets or sets the maximum 2D texture width.

public int MaxTexture2DWidth { get; set; }

Property Value

int

MaxTexture3DDepth

Gets or sets the maximum 3D texture depth.

public int MaxTexture3DDepth { get; set; }

Property Value

int

MaxTexture3DHeight

Gets or sets the maximum 3D texture height.

public int MaxTexture3DHeight { get; set; }

Property Value

int

MaxTexture3DWidth

Gets or sets the maximum 3D texture width.

public int MaxTexture3DWidth { get; set; }

Property Value

int

MaxThreadsPerBlock

Gets or sets the maximum threads per block.

public int MaxThreadsPerBlock { get; set; }

Property Value

int

MaxThreadsPerMultiProcessor

Gets or sets the maximum threads per multiprocessor.

public int MaxThreadsPerMultiProcessor { get; set; }

Property Value

int

MaxThreadsPerMultiprocessor

Gets or sets the maximum threads per multiprocessor.

public int MaxThreadsPerMultiprocessor { get; set; }

Property Value

int

MemoryBandwidth

Gets or sets the memory bandwidth in GB/s.

public double MemoryBandwidth { get; set; }

Property Value

double

MemoryBusWidth

Gets or sets the memory bus width in bits.

public int MemoryBusWidth { get; set; }

Property Value

int

MemoryClockRate

Gets or sets the memory clock rate in kHz.

public int MemoryClockRate { get; set; }

Property Value

int

Minor

Gets the compute capability minor version (alias for ComputeCapabilityMinor).

public int Minor { get; }

Property Value

int

MultiGpuBoardGroupId

Gets or sets the multi-GPU board group identifier.

public int MultiGpuBoardGroupId { get; set; }

Property Value

int

MultiProcessorCount

Gets or sets the number of multiprocessors (alternative naming for compatibility).

public int MultiProcessorCount { get; set; }

Property Value

int

MultiprocessorCount

Gets or sets the number of multiprocessors (alias for compatibility).

public int MultiprocessorCount { get; set; }

Property Value

int

Name

Gets or sets the device name.

public string Name { get; set; }

Property Value

string

PageableMemoryAccess

Gets or sets whether the device supports pageable memory access.

public bool PageableMemoryAccess { get; set; }

Property Value

bool

PageableMemoryAccessUsesHostPageTables

Gets or sets whether pageable memory access uses host page tables.

public bool PageableMemoryAccessUsesHostPageTables { get; set; }

Property Value

bool

PciBusId

Gets or sets the PCI bus ID.

public int PciBusId { get; set; }

Property Value

int

PciDeviceId

Gets or sets the PCI device ID.

public int PciDeviceId { get; set; }

Property Value

int

PciDomainId

Gets or sets the PCI domain ID.

public int PciDomainId { get; set; }

Property Value

int

PciInfo

Gets the PCI bus information as a formatted string.

public string PciInfo { get; }

Property Value

string

RegistersPerBlock

Gets or sets the number of registers per block.

public int RegistersPerBlock { get; set; }

Property Value

int

SharedMemoryPerBlock

Gets or sets the shared memory per block in bytes.

public int SharedMemoryPerBlock { get; set; }

Property Value

int

SingleToDoublePrecisionPerfRatio

Gets or sets the single to double precision performance ratio.

public int SingleToDoublePrecisionPerfRatio { get; set; }

Property Value

int

StreamPrioritiesSupported

Gets or sets whether stream priorities are supported.

public bool StreamPrioritiesSupported { get; set; }

Property Value

bool

StreamingMultiprocessorCount

Gets or sets the number of streaming multiprocessors.

public int StreamingMultiprocessorCount { get; set; }

Property Value

int

SupportsManagedMemory

Gets or sets whether the device supports managed memory (alias for compatibility).

public bool SupportsManagedMemory { get; set; }

Property Value

bool

Gets or sets whether this device supports NVLink for high-speed inter-GPU communication. NVLink provides much higher bandwidth than PCIe for multi-GPU systems.

public bool SupportsNVLink { get; set; }

Property Value

bool

TccDriver

Gets or sets whether TCC driver is enabled.

public bool TccDriver { get; set; }

Property Value

bool

TensorCoreCount

Gets or sets the number of Tensor Cores available on this device. Tensor Cores provide accelerated mixed-precision matrix operations for AI workloads.

public int TensorCoreCount { get; set; }

Property Value

int

TotalGlobalMemory

Gets or sets the total global memory size in bytes. This is an alias for TotalMemory to provide consistency with CUDA terminology.

public long TotalGlobalMemory { get; set; }

Property Value

long

TotalMemory

Gets or sets the total memory in bytes.

public long TotalMemory { get; set; }

Property Value

long

TotalMemoryBytes

Gets or sets the total memory in bytes (alias for compatibility).

public long TotalMemoryBytes { get; set; }

Property Value

long

UnifiedAddressing

Gets or sets whether unified addressing is supported.

public bool UnifiedAddressing { get; set; }

Property Value

bool

WarpSize

Gets or sets the warp size.

public int WarpSize { get; set; }

Property Value

int