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
AsyncEngineCount
Gets or sets the number of asynchronous copy engines.
public int AsyncEngineCount { get; set; }
Property Value
CanMapHostMemory
Gets or sets whether the device can map host memory.
public bool CanMapHostMemory { get; set; }
Property Value
CanUseHostPointerForRegisteredMem
Gets or sets whether host pointers can be used for registered memory.
public bool CanUseHostPointerForRegisteredMem { get; set; }
Property Value
ClockRate
Gets or sets the GPU core clock rate in kHz.
public int ClockRate { get; set; }
Property Value
ComputeCapability
Gets or sets the compute capability (e.g., "8.9").
public string ComputeCapability { get; set; }
Property Value
ComputeCapabilityMajor
Gets or sets the compute capability major version.
public int ComputeCapabilityMajor { get; set; }
Property Value
ComputeCapabilityMinor
Gets or sets the compute capability minor version.
public int ComputeCapabilityMinor { get; set; }
Property Value
ComputePreemptionSupported
Gets or sets whether compute preemption is supported.
public bool ComputePreemptionSupported { get; set; }
Property Value
ConcurrentKernels
Gets or sets whether concurrent kernels are supported.
public bool ConcurrentKernels { get; set; }
Property Value
ConcurrentManagedAccess
Gets or sets whether the device supports concurrent managed access.
public bool ConcurrentManagedAccess { get; set; }
Property Value
CooperativeLaunch
Gets or sets whether cooperative kernel launches are supported.
public bool CooperativeLaunch { get; set; }
Property Value
CooperativeMultiDeviceLaunch
Gets or sets whether cooperative multi-device launches are supported.
public bool CooperativeMultiDeviceLaunch { get; set; }
Property Value
CudaCores
Gets the estimated number of CUDA cores based on compute capability and SM count.
public int CudaCores { get; }
Property Value
DeviceId
Gets or sets the device ID.
public int DeviceId { get; set; }
Property Value
DirectManagedMemAccessFromHost
Gets or sets whether direct managed memory access from host is supported.
public bool DirectManagedMemAccessFromHost { get; set; }
Property Value
EccEnabled
Gets or sets whether ECC (error correction) is enabled.
public bool EccEnabled { get; set; }
Property Value
GlobalL1CacheSupported
Gets or sets whether global L1 cache is supported.
public bool GlobalL1CacheSupported { get; set; }
Property Value
HostNativeAtomicSupported
Gets or sets whether host native atomic operations are supported.
public bool HostNativeAtomicSupported { get; set; }
Property Value
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
IsMultiGpuBoard
Gets or sets whether this is a multi-GPU board.
public bool IsMultiGpuBoard { get; set; }
Property Value
IsRTX
Gets whether this is an RTX series GPU.
public bool IsRTX { get; }
Property Value
KernelExecutionTimeout
Gets or sets whether kernel execution has timeout enabled.
public bool KernelExecutionTimeout { get; set; }
Property Value
L2CacheSize
Gets or sets the L2 cache size in bytes.
public int L2CacheSize { get; set; }
Property Value
LocalL1CacheSupported
Gets or sets whether local L1 cache is supported.
public bool LocalL1CacheSupported { get; set; }
Property Value
Major
Gets the compute capability major version (alias for ComputeCapabilityMajor).
public int Major { get; }
Property Value
ManagedMemory
Gets or sets whether the device supports managed memory.
public bool ManagedMemory { get; set; }
Property Value
MaxBlockDimX
Gets or sets the maximum X dimension of a block.
public int MaxBlockDimX { get; set; }
Property Value
MaxBlockDimY
Gets or sets the maximum Y dimension of a block.
public int MaxBlockDimY { get; set; }
Property Value
MaxBlockDimZ
Gets or sets the maximum Z dimension of a block.
public int MaxBlockDimZ { get; set; }
Property Value
MaxGridDimX
Gets or sets the maximum X dimension of a grid.
public int MaxGridDimX { get; set; }
Property Value
MaxGridDimY
Gets or sets the maximum Y dimension of a grid.
public int MaxGridDimY { get; set; }
Property Value
MaxGridDimZ
Gets or sets the maximum Z dimension of a grid.
public int MaxGridDimZ { get; set; }
Property Value
MaxSharedMemoryPerMultiprocessor
Gets or sets the maximum shared memory per multiprocessor.
public int MaxSharedMemoryPerMultiprocessor { get; set; }
Property Value
MaxTexture1DSize
Gets or sets the maximum 1D texture size.
public int MaxTexture1DSize { get; set; }
Property Value
MaxTexture2DHeight
Gets or sets the maximum 2D texture height.
public int MaxTexture2DHeight { get; set; }
Property Value
MaxTexture2DWidth
Gets or sets the maximum 2D texture width.
public int MaxTexture2DWidth { get; set; }
Property Value
MaxTexture3DDepth
Gets or sets the maximum 3D texture depth.
public int MaxTexture3DDepth { get; set; }
Property Value
MaxTexture3DHeight
Gets or sets the maximum 3D texture height.
public int MaxTexture3DHeight { get; set; }
Property Value
MaxTexture3DWidth
Gets or sets the maximum 3D texture width.
public int MaxTexture3DWidth { get; set; }
Property Value
MaxThreadsPerBlock
Gets or sets the maximum threads per block.
public int MaxThreadsPerBlock { get; set; }
Property Value
MaxThreadsPerMultiProcessor
Gets or sets the maximum threads per multiprocessor.
public int MaxThreadsPerMultiProcessor { get; set; }
Property Value
MaxThreadsPerMultiprocessor
Gets or sets the maximum threads per multiprocessor.
public int MaxThreadsPerMultiprocessor { get; set; }
Property Value
MemoryBandwidth
Gets or sets the memory bandwidth in GB/s.
public double MemoryBandwidth { get; set; }
Property Value
MemoryBusWidth
Gets or sets the memory bus width in bits.
public int MemoryBusWidth { get; set; }
Property Value
MemoryClockRate
Gets or sets the memory clock rate in kHz.
public int MemoryClockRate { get; set; }
Property Value
Minor
Gets the compute capability minor version (alias for ComputeCapabilityMinor).
public int Minor { get; }
Property Value
MultiGpuBoardGroupId
Gets or sets the multi-GPU board group identifier.
public int MultiGpuBoardGroupId { get; set; }
Property Value
MultiProcessorCount
Gets or sets the number of multiprocessors (alternative naming for compatibility).
public int MultiProcessorCount { get; set; }
Property Value
MultiprocessorCount
Gets or sets the number of multiprocessors (alias for compatibility).
public int MultiprocessorCount { get; set; }
Property Value
Name
Gets or sets the device name.
public string Name { get; set; }
Property Value
PageableMemoryAccess
Gets or sets whether the device supports pageable memory access.
public bool PageableMemoryAccess { get; set; }
Property Value
PageableMemoryAccessUsesHostPageTables
Gets or sets whether pageable memory access uses host page tables.
public bool PageableMemoryAccessUsesHostPageTables { get; set; }
Property Value
PciBusId
Gets or sets the PCI bus ID.
public int PciBusId { get; set; }
Property Value
PciDeviceId
Gets or sets the PCI device ID.
public int PciDeviceId { get; set; }
Property Value
PciDomainId
Gets or sets the PCI domain ID.
public int PciDomainId { get; set; }
Property Value
PciInfo
Gets the PCI bus information as a formatted string.
public string PciInfo { get; }
Property Value
RegistersPerBlock
Gets or sets the number of registers per block.
public int RegistersPerBlock { get; set; }
Property Value
SharedMemoryPerBlock
Gets or sets the shared memory per block in bytes.
public int SharedMemoryPerBlock { get; set; }
Property Value
SingleToDoublePrecisionPerfRatio
Gets or sets the single to double precision performance ratio.
public int SingleToDoublePrecisionPerfRatio { get; set; }
Property Value
StreamPrioritiesSupported
Gets or sets whether stream priorities are supported.
public bool StreamPrioritiesSupported { get; set; }
Property Value
StreamingMultiprocessorCount
Gets or sets the number of streaming multiprocessors.
public int StreamingMultiprocessorCount { get; set; }
Property Value
SupportsManagedMemory
Gets or sets whether the device supports managed memory (alias for compatibility).
public bool SupportsManagedMemory { get; set; }
Property Value
SupportsNVLink
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
TccDriver
Gets or sets whether TCC driver is enabled.
public bool TccDriver { get; set; }
Property Value
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
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
TotalMemory
Gets or sets the total memory in bytes.
public long TotalMemory { get; set; }
Property Value
TotalMemoryBytes
Gets or sets the total memory in bytes (alias for compatibility).
public long TotalMemoryBytes { get; set; }
Property Value
UnifiedAddressing
Gets or sets whether unified addressing is supported.
public bool UnifiedAddressing { get; set; }
Property Value
WarpSize
Gets or sets the warp size.
public int WarpSize { get; set; }