Skip to content

Instantly share code, notes, and snippets.

@cli99
Created October 3, 2024 07:36
Show Gist options
  • Save cli99/095ed111ddcef5295e1c384cc0bab3e4 to your computer and use it in GitHub Desktop.
Save cli99/095ed111ddcef5295e1c384cc0bab3e4 to your computer and use it in GitHub Desktop.

Revisions

  1. cli99 created this gist Oct 3, 2024.
    133 changes: 133 additions & 0 deletions get_device_info.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,133 @@
    import pycuda.autoinit
    import pycuda.driver as cuda

    # Get the first CUDA device (index 0)
    device = cuda.Device(0)

    # List of attributes you want to get
    attributes = [
    cuda.device_attribute.MAX_THREADS_PER_BLOCK,
    cuda.device_attribute.MAX_BLOCK_DIM_X,
    cuda.device_attribute.MAX_BLOCK_DIM_Y,
    cuda.device_attribute.MAX_BLOCK_DIM_Z,
    cuda.device_attribute.TOTAL_CONSTANT_MEMORY,
    cuda.device_attribute.MULTIPROCESSOR_COUNT,
    ]

    # Print the device name
    print(f"Device Name: {device.name()}")

    for a in dir(cuda.device_attribute):
    if a.startswith("__"):
    break
    print(f"{a}: {device.get_attribute(cuda.device_attribute.__dict__[a])}")


    # Device Name: NVIDIA H100 80GB HBM3
    # ASYNC_ENGINE_COUNT: 3
    # CAN_MAP_HOST_MEMORY: 1
    # CAN_USE_HOST_POINTER_FOR_REGISTERED_MEM: 1
    # CLOCK_RATE: 1980000
    # COMPUTE_CAPABILITY_MAJOR: 9
    # COMPUTE_CAPABILITY_MINOR: 0
    # COMPUTE_MODE: DEFAULT
    # COMPUTE_PREEMPTION_SUPPORTED: 1
    # CONCURRENT_KERNELS: 1
    # CONCURRENT_MANAGED_ACCESS: 1
    # DIRECT_MANAGED_MEM_ACCESS_FROM_HOST: 0
    # ECC_ENABLED: 1
    # GENERIC_COMPRESSION_SUPPORTED: 1
    # GLOBAL_L1_CACHE_SUPPORTED: 1
    # GLOBAL_MEMORY_BUS_WIDTH: 5120
    # GPU_OVERLAP: 1
    # HANDLE_TYPE_POSIX_FILE_DESCRIPTOR_SUPPORTED: 1
    # HANDLE_TYPE_WIN32_HANDLE_SUPPORTED: 0
    # HANDLE_TYPE_WIN32_KMT_HANDLE_SUPPORTED: 0
    # HOST_NATIVE_ATOMIC_SUPPORTED: 0
    # INTEGRATED: 0
    # KERNEL_EXEC_TIMEOUT: 0
    # L2_CACHE_SIZE: 52428800
    # LOCAL_L1_CACHE_SUPPORTED: 1
    # MANAGED_MEMORY: 1
    # MAXIMUM_SURFACE1D_LAYERED_LAYERS: 2048
    # MAXIMUM_SURFACE1D_LAYERED_WIDTH: 32768
    # MAXIMUM_SURFACE1D_WIDTH: 32768
    # MAXIMUM_SURFACE2D_HEIGHT: 65536
    # MAXIMUM_SURFACE2D_LAYERED_HEIGHT: 32768
    # MAXIMUM_SURFACE2D_LAYERED_LAYERS: 2048
    # MAXIMUM_SURFACE2D_LAYERED_WIDTH: 32768
    # MAXIMUM_SURFACE2D_WIDTH: 131072
    # MAXIMUM_SURFACE3D_DEPTH: 16384
    # MAXIMUM_SURFACE3D_HEIGHT: 16384
    # MAXIMUM_SURFACE3D_WIDTH: 16384
    # MAXIMUM_SURFACECUBEMAP_LAYERED_LAYERS: 2046
    # MAXIMUM_SURFACECUBEMAP_LAYERED_WIDTH: 32768
    # MAXIMUM_SURFACECUBEMAP_WIDTH: 32768
    # MAXIMUM_TEXTURE1D_LAYERED_LAYERS: 2048
    # MAXIMUM_TEXTURE1D_LAYERED_WIDTH: 32768
    # MAXIMUM_TEXTURE1D_LINEAR_WIDTH: 268435456
    # MAXIMUM_TEXTURE1D_MIPMAPPED_WIDTH: 32768
    # MAXIMUM_TEXTURE1D_WIDTH: 131072
    # MAXIMUM_TEXTURE2D_ARRAY_HEIGHT: 32768
    # MAXIMUM_TEXTURE2D_ARRAY_NUMSLICES: 2048
    # MAXIMUM_TEXTURE2D_ARRAY_WIDTH: 32768
    # MAXIMUM_TEXTURE2D_GATHER_HEIGHT: 32768
    # MAXIMUM_TEXTURE2D_GATHER_WIDTH: 32768
    # MAXIMUM_TEXTURE2D_HEIGHT: 65536
    # MAXIMUM_TEXTURE2D_LAYERED_HEIGHT: 32768
    # MAXIMUM_TEXTURE2D_LAYERED_LAYERS: 2048
    # MAXIMUM_TEXTURE2D_LAYERED_WIDTH: 32768
    # MAXIMUM_TEXTURE2D_LINEAR_HEIGHT: 65000
    # MAXIMUM_TEXTURE2D_LINEAR_PITCH: 2097120
    # MAXIMUM_TEXTURE2D_LINEAR_WIDTH: 131072
    # MAXIMUM_TEXTURE2D_MIPMAPPED_HEIGHT: 32768
    # MAXIMUM_TEXTURE2D_MIPMAPPED_WIDTH: 32768
    # MAXIMUM_TEXTURE2D_WIDTH: 131072
    # MAXIMUM_TEXTURE3D_DEPTH: 16384
    # MAXIMUM_TEXTURE3D_DEPTH_ALTERNATE: 32768
    # MAXIMUM_TEXTURE3D_HEIGHT: 16384
    # MAXIMUM_TEXTURE3D_HEIGHT_ALTERNATE: 8192
    # MAXIMUM_TEXTURE3D_WIDTH: 16384
    # MAXIMUM_TEXTURE3D_WIDTH_ALTERNATE: 8192
    # MAXIMUM_TEXTURECUBEMAP_LAYERED_LAYERS: 2046
    # MAXIMUM_TEXTURECUBEMAP_LAYERED_WIDTH: 32768
    # MAXIMUM_TEXTURECUBEMAP_WIDTH: 32768
    # MAX_BLOCKS_PER_MULTIPROCESSOR: 32
    # MAX_BLOCK_DIM_X: 1024
    # MAX_BLOCK_DIM_Y: 1024
    # MAX_BLOCK_DIM_Z: 64
    # MAX_GRID_DIM_X: 2147483647
    # MAX_GRID_DIM_Y: 65535
    # MAX_GRID_DIM_Z: 65535
    # MAX_PERSISTING_L2_CACHE_SIZE: 32768000
    # MAX_PITCH: 2147483647
    # MAX_REGISTERS_PER_BLOCK: 65536
    # MAX_REGISTERS_PER_MULTIPROCESSOR: 65536
    # MAX_SHARED_MEMORY_PER_BLOCK: 49152
    # MAX_SHARED_MEMORY_PER_BLOCK_OPTIN: 232448
    # MAX_SHARED_MEMORY_PER_MULTIPROCESSOR: 233472
    # MAX_THREADS_PER_BLOCK: 1024
    # MAX_THREADS_PER_MULTIPROCESSOR: 2048
    # MEMORY_CLOCK_RATE: 2619000
    # MEMORY_POOLS_SUPPORTED: 1
    # MULTIPROCESSOR_COUNT: 132
    # MULTI_GPU_BOARD: 0
    # MULTI_GPU_BOARD_GROUP_ID: 0
    # PAGEABLE_MEMORY_ACCESS: 0
    # PAGEABLE_MEMORY_ACCESS_USES_HOST_PAGE_TABLES: 0
    # PCI_BUS_ID: 17
    # PCI_DEVICE_ID: 0
    # PCI_DOMAIN_ID: 0
    # READ_ONLY_HOST_REGISTER_SUPPORTED: 1
    # REGISTERS_PER_BLOCK: 65536
    # RESERVED_SHARED_MEMORY_PER_BLOCK: 1024
    # SHARED_MEMORY_PER_BLOCK: 49152
    # SINGLE_TO_DOUBLE_PRECISION_PERF_RATIO: 2
    # STREAM_PRIORITIES_SUPPORTED: 1
    # SURFACE_ALIGNMENT: 512
    # TCC_DRIVER: 0
    # TEXTURE_ALIGNMENT: 512
    # TEXTURE_PITCH_ALIGNMENT: 32
    # TOTAL_CONSTANT_MEMORY: 65536
    # UNIFIED_ADDRESSING: 1
    # WARP_SIZE: 32