Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ur] Introduce urinfo tool #751

Merged
merged 1 commit into from
Aug 31, 2023
Merged

Conversation

kbenzie
Copy link
Contributor

@kbenzie kbenzie commented Jul 27, 2023

urinfo is a command-line tool for inspecting the current execution
environment:

$ build/bin/urinfo --help
usage: build/bin/urinfo [-h] [-v] [-V]

This tool enumerates Unified Runtime layers, adapters, platforms, and
devices which are currently visible in the local execution environment.

options:
  -h, --help            show this help message and exit
  --version             show version number and exit
  -v, --verbose         print additional information

@kbenzie
Copy link
Contributor Author

kbenzie commented Jul 27, 2023

Example output:
$ build/bin/urinfo
[adapter(0,cuda):platform(0):device(0,gpu)] NVIDIA CUDA BACKEND, NVIDIA GeForce RTX 3060 Ti 8.6 [CUDA 12.0]
$ build/bin/urinfo --verbose
[adapter(0,cuda):platform(0):device(0,gpu)] NVIDIA CUDA BACKEND, NVIDIA GeForce RTX 3060 Ti 8.6 [CUDA 12.0]

[loader]:
  UR_LOADER_CONFIG_INFO_AVAILABLE_LAYERS: UR_LAYER_FULL_VALIDATION;UR_LAYER_PARAMETER_VALIDATION;UR_LAYER_LEAK_CHECKING

[adapter(0)]:
  UR_ADAPTER_INFO_BACKEND: UR_ADAPTER_BACKEND_CUDA

[adapter(0),platform(0)]:
    UR_PLATFORM_INFO_NAME: NVIDIA CUDA BACKEND
    UR_PLATFORM_INFO_VENDOR_NAME: NVIDIA Corporation
    UR_PLATFORM_INFO_VERSION: CUDA 12.0
    UR_PLATFORM_INFO_EXTENSIONS:
    UR_PLATFORM_INFO_PROFILE: FULL PROFILE
    UR_PLATFORM_INFO_BACKEND: UR_PLATFORM_BACKEND_CUDA

[adapter(0),platform(0),device(0)]:
      UR_DEVICE_INFO_TYPE: UR_DEVICE_TYPE_GPU
      UR_DEVICE_INFO_VENDOR_ID: 4318
      UR_DEVICE_INFO_DEVICE_ID: 0
      UR_DEVICE_INFO_MAX_COMPUTE_UNITS: 38
      UR_DEVICE_INFO_MAX_WORK_ITEM_DIMENSIONS: 3
      UR_DEVICE_INFO_MAX_WORK_ITEM_SIZES: { 1024, 1024, 64 }
      UR_DEVICE_INFO_MAX_WORK_GROUP_SIZE: 1024
      UR_DEVICE_INFO_SINGLE_FP_CONFIG: UR_RESULT_ERROR_INVALID_SIZE
      UR_DEVICE_INFO_HALF_FP_CONFIG: 0
      UR_DEVICE_INFO_DOUBLE_FP_CONFIG: UR_RESULT_ERROR_INVALID_SIZE
      UR_DEVICE_INFO_QUEUE_PROPERTIES: 3
      UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_CHAR: 1
      UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_SHORT: 1
      UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_INT: 1
      UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_LONG: 1
      UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_FLOAT: 1
      UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_DOUBLE: 1
      UR_DEVICE_INFO_PREFERRED_VECTOR_WIDTH_HALF: 0
      UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_CHAR: 1
      UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_SHORT: 1
      UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_INT: 1
      UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_LONG: 1
      UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_FLOAT: 1
      UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_DOUBLE: 1
      UR_DEVICE_INFO_NATIVE_VECTOR_WIDTH_HALF: 0
      UR_DEVICE_INFO_MAX_CLOCK_FREQUENCY: 1755
      UR_DEVICE_INFO_MEMORY_CLOCK_RATE: 7001
      UR_DEVICE_INFO_ADDRESS_BITS: 64
      UR_DEVICE_INFO_MAX_MEM_ALLOC_SIZE: 1073741824
      UR_DEVICE_INFO_IMAGE_SUPPORTED: false
      UR_DEVICE_INFO_MAX_READ_IMAGE_ARGS: 128
      UR_DEVICE_INFO_MAX_WRITE_IMAGE_ARGS: 128
      UR_DEVICE_INFO_MAX_READ_WRITE_IMAGE_ARGS: UR_RESULT_ERROR_INVALID_ENUMERATION
      UR_DEVICE_INFO_IMAGE2D_MAX_WIDTH: 131072
      UR_DEVICE_INFO_IMAGE2D_MAX_HEIGHT: 65536
      UR_DEVICE_INFO_IMAGE3D_MAX_WIDTH: 16384
      UR_DEVICE_INFO_IMAGE3D_MAX_HEIGHT: 16384
      UR_DEVICE_INFO_IMAGE3D_MAX_DEPTH: 16384
      UR_DEVICE_INFO_IMAGE_MAX_BUFFER_SIZE: 32768
      UR_DEVICE_INFO_IMAGE_MAX_ARRAY_SIZE: 0
      UR_DEVICE_INFO_MAX_SAMPLERS: 128
      UR_DEVICE_INFO_MAX_PARAMETER_SIZE: 4000
      UR_DEVICE_INFO_MEM_BASE_ADDR_ALIGN: 4096
      UR_DEVICE_INFO_GLOBAL_MEM_CACHE_TYPE: UR_DEVICE_MEM_CACHE_TYPE_READ_WRITE_CACHE
      UR_DEVICE_INFO_GLOBAL_MEM_CACHELINE_SIZE: 128
      UR_DEVICE_INFO_GLOBAL_MEM_CACHE_SIZE: 3145728
      UR_DEVICE_INFO_GLOBAL_MEM_SIZE: 8358395904
      UR_DEVICE_INFO_GLOBAL_MEM_FREE: 8203141120
      UR_DEVICE_INFO_MAX_CONSTANT_BUFFER_SIZE: 65536
      UR_DEVICE_INFO_MAX_CONSTANT_ARGS: 9
      UR_DEVICE_INFO_LOCAL_MEM_TYPE: UR_DEVICE_LOCAL_MEM_TYPE_LOCAL
      UR_DEVICE_INFO_LOCAL_MEM_SIZE: 49152
      UR_DEVICE_INFO_ERROR_CORRECTION_SUPPORT: false
      UR_DEVICE_INFO_HOST_UNIFIED_MEMORY: false
      UR_DEVICE_INFO_PROFILING_TIMER_RESOLUTION: 1000
      UR_DEVICE_INFO_ENDIAN_LITTLE: true
      UR_DEVICE_INFO_AVAILABLE: true
      UR_DEVICE_INFO_COMPILER_AVAILABLE: true
      UR_DEVICE_INFO_LINKER_AVAILABLE: true
      UR_DEVICE_INFO_EXECUTION_CAPABILITIES: 1
      UR_DEVICE_INFO_QUEUE_ON_DEVICE_PROPERTIES: UR_RESULT_ERROR_INVALID_SIZE
      UR_DEVICE_INFO_QUEUE_ON_HOST_PROPERTIES: UR_RESULT_ERROR_INVALID_SIZE
      UR_DEVICE_INFO_BUILT_IN_KERNELS:
      UR_DEVICE_INFO_PLATFORM: 0x55edfd452b50
      UR_DEVICE_INFO_REFERENCE_COUNT: 1
      UR_DEVICE_INFO_IL_VERSION: nvptx-8.0
      UR_DEVICE_INFO_NAME: NVIDIA GeForce RTX 3060 Ti
      UR_DEVICE_INFO_VENDOR: NVIDIA Corporation
      UR_DEVICE_INFO_DRIVER_VERSION: CUDA 12.0
      UR_DEVICE_INFO_PROFILE: CUDA
      UR_DEVICE_INFO_VERSION: 8.6
      UR_DEVICE_INFO_BACKEND_RUNTIME_VERSION: 8.6
      UR_DEVICE_INFO_EXTENSIONS: cl_khr_fp64 cl_khr_subgroups pi_ext_intel_devicelib_assert  cl_khr_fp16
      UR_DEVICE_INFO_PRINTF_BUFFER_SIZE: 1024
      UR_DEVICE_INFO_PREFERRED_INTEROP_USER_SYNC: true
      UR_DEVICE_INFO_PARENT_DEVICE: 0
      UR_DEVICE_INFO_SUPPORTED_PARTITIONS: { unknown enumerator }
      UR_DEVICE_INFO_PARTITION_MAX_SUB_DEVICES: 0
      UR_DEVICE_INFO_PARTITION_AFFINITY_DOMAIN: 0
      UR_DEVICE_INFO_PARTITION_TYPE: UR_RESULT_ERROR_INVALID_NULL_POINTER
      UR_DEVICE_INFO_MAX_NUM_SUB_GROUPS: 32
      UR_DEVICE_INFO_SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS: true
      UR_DEVICE_INFO_SUB_GROUP_SIZES_INTEL: { 32, 0 }
      UR_DEVICE_INFO_USM_HOST_SUPPORT: 15
      UR_DEVICE_INFO_USM_DEVICE_SUPPORT: 15
      UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT: 15
      UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT: 15
      UR_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT: 0
      UR_DEVICE_INFO_UUID: .HM)hU
      UR_DEVICE_INFO_PCI_ADDRESS: 0000:09:00.0
      UR_DEVICE_INFO_GPU_EU_COUNT: UR_RESULT_ERROR_INVALID_ENUMERATION
      UR_DEVICE_INFO_GPU_EU_SIMD_WIDTH: UR_RESULT_ERROR_INVALID_ENUMERATION
      UR_DEVICE_INFO_GPU_EU_SLICES: UR_RESULT_ERROR_INVALID_ENUMERATION
      UR_DEVICE_INFO_GPU_EU_COUNT_PER_SUBSLICE: UR_RESULT_ERROR_INVALID_ENUMERATION
      UR_DEVICE_INFO_GPU_SUBSLICES_PER_SLICE: UR_RESULT_ERROR_INVALID_ENUMERATION
      UR_DEVICE_INFO_GPU_HW_THREADS_PER_EU: UR_RESULT_ERROR_INVALID_ENUMERATION
      UR_DEVICE_INFO_MAX_MEMORY_BANDWIDTH: UR_RESULT_ERROR_INVALID_SIZE
      UR_DEVICE_INFO_IMAGE_SRGB: false
      UR_DEVICE_INFO_BUILD_ON_SUBDEVICE: true
      UR_DEVICE_INFO_ATOMIC_64: true
      UR_DEVICE_INFO_ATOMIC_MEMORY_ORDER_CAPABILITIES: UR_RESULT_ERROR_INVALID_SIZE
      UR_DEVICE_INFO_ATOMIC_MEMORY_SCOPE_CAPABILITIES: UR_RESULT_ERROR_INVALID_SIZE
      UR_DEVICE_INFO_ATOMIC_FENCE_ORDER_CAPABILITIES: 15
      UR_DEVICE_INFO_ATOMIC_FENCE_SCOPE_CAPABILITIES: 7
      UR_DEVICE_INFO_BFLOAT16: true
      UR_DEVICE_INFO_MAX_COMPUTE_QUEUE_INDICES: 1
      UR_DEVICE_INFO_KERNEL_SET_SPECIALIZATION_CONSTANTS: false
      UR_DEVICE_INFO_MEMORY_BUS_WIDTH: 256
      UR_DEVICE_INFO_MAX_WORK_GROUPS_3D: { 2147483647, 65535, 65535 }
      UR_DEVICE_INFO_ASYNC_BARRIER: true
      UR_DEVICE_INFO_MEM_CHANNEL_SUPPORT: false
      UR_DEVICE_INFO_HOST_PIPE_READ_WRITE_SUPPORTED: UR_RESULT_ERROR_INVALID_ENUMERATION
      UR_DEVICE_INFO_MAX_REGISTERS_PER_WORK_GROUP: 65536
      UR_DEVICE_INFO_IP_VERSION: UR_RESULT_ERROR_INVALID_ENUMERATION
      UR_DEVICE_INFO_VIRTUAL_MEMORY_SUPPORT: UR_RESULT_ERROR_INVALID_ENUMERATION
      UR_DEVICE_INFO_BINDLESS_IMAGES_SUPPORT_EXP: true
      UR_DEVICE_INFO_BINDLESS_IMAGES_SHARED_USM_SUPPORT_EXP: true
      UR_DEVICE_INFO_BINDLESS_IMAGES_1D_USM_SUPPORT_EXP: false
      UR_DEVICE_INFO_BINDLESS_IMAGES_2D_USM_SUPPORT_EXP: true
      UR_DEVICE_INFO_IMAGE_PITCH_ALIGN_EXP: 32
      UR_DEVICE_INFO_MAX_IMAGE_LINEAR_WIDTH_EXP: 131072
      UR_DEVICE_INFO_MAX_IMAGE_LINEAR_HEIGHT_EXP: 65000
      UR_DEVICE_INFO_MAX_IMAGE_LINEAR_PITCH_EXP: 2097120
      UR_DEVICE_INFO_MIPMAP_SUPPORT_EXP: true
      UR_DEVICE_INFO_MIPMAP_ANISOTROPY_SUPPORT_EXP: true
      UR_DEVICE_INFO_MIPMAP_MAX_ANISOTROPY_EXP: 1098907648
      UR_DEVICE_INFO_MIPMAP_LEVEL_REFERENCE_SUPPORT_EXP: true
      UR_DEVICE_INFO_INTEROP_MEMORY_IMPORT_SUPPORT_EXP: true
      UR_DEVICE_INFO_INTEROP_MEMORY_EXPORT_SUPPORT_EXP: false
      UR_DEVICE_INFO_INTEROP_SEMAPHORE_IMPORT_SUPPORT_EXP: true
      UR_DEVICE_INFO_INTEROP_SEMAPHORE_EXPORT_SUPPORT_EXP: false

scripts/templates/tools-info.hpp.mako Outdated Show resolved Hide resolved
tools/urinfo/utils.hpp Outdated Show resolved Hide resolved
scripts/templates/tools-info.hpp.mako Outdated Show resolved Hide resolved
tools/urinfo/utils.hpp Outdated Show resolved Hide resolved
@kbenzie kbenzie changed the base branch from main to adapters August 28, 2023 13:36
@kbenzie
Copy link
Contributor Author

kbenzie commented Aug 28, 2023

I've changed this to target the adapters branch since it makes no sense to have it target a different ABI than the adapter implementations.

@kbenzie kbenzie marked this pull request as ready for review August 28, 2023 13:37
Copy link
Contributor

@veselypeta veselypeta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

tools/urinfo/urinfo.cpp Outdated Show resolved Hide resolved
`urinfo` is a command-line tool for inspecting the current execution
environment:

```console
$ build/bin/urinfo --help
usage: build/bin/urinfo [-h] [-v] [-V]

This tool enumerates Unified Runtime layers, adapters, platforms, and
devices which are currently visible in the local execution environment.

options:
  -h, --help            show this help message and exit
  --version             show version number and exit
  -v, --verbose         print additional information
```
@kbenzie kbenzie merged commit c1bc465 into oneapi-src:adapters Aug 31, 2023
50 checks passed
@kbenzie kbenzie deleted the benie/urinfo branch August 31, 2023 10:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants