Skip to content

Implement wrappers in C API and Python API for device descriptor information types #286

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

Closed
21 of 58 tasks
1e-to opened this issue Feb 25, 2021 · 3 comments
Closed
21 of 58 tasks
Assignees

Comments

@1e-to
Copy link
Contributor

1e-to commented Feb 25, 2021

The list of device descriptor information types.

The example of implementations is here: #147

  • info::device::device_type (info::device_type )
  • info::device::vendor_id (uint32_t)
  • info::device::max_compute_units (uint32_t )
  • info::device::max_work_item_dimensions (uint32_t)
  • info::device::max_work_item_sizes<1> (id<1>) - DPCTLDevice_GetMaxWorkItemSizes
  • info::device::max_work_item_sizes<2> (id<2>) - DPCTLDevice_GetMaxWorkItemSizes
  • info::device::max_work_item_sizes<3> (id<3>) - DPCTLDevice_GetMaxWorkItemSizes
  • info::device::max_work_group_size (size_t)
  • info::device::max_num_sub_groups (uint32_t)
  • info::device::sub_group_independent_forward_progress (bool) Add device descriptors: sub_group_independent_forward_progress and preferred_vector_width #314
  • info::device::sub_group_sizes (std::vector<size_t>)
  • info::device::preferred_vector_width_char, info::device::preferred_vector_width_short, info::device::preferred_vector_width_int, info::device::preferred_vector_width_long, info::device::preferred_vector_width_float, info::device::preferred_vector_width_double, info::device::preferred_vector_width_half (uint32_t) Add device descriptors: sub_group_independent_forward_progress and preferred_vector_width #314
  • info::device::native_vector_width_char, info::device::native_vector_width_short, info::device::native_vector_width_int, info::device::native_vector_width_long, info::device::native_vector_width_float, info::device::native_vector_width_double, info::device::native_vector_width_half (uint32_t)
  • info::device::max_clock_frequency (uint32_t)
  • info::device::address_bits (uint32_t)
  • info::device::max_mem_alloc_size (uint64_t)
  • info::device::max_read_image_args (uint32_t) Add descriptors: max_read_image_args, max_write_image_args #318
  • info::device::max_write_image_args (uint32_t) Add descriptors: max_read_image_args, max_write_image_args #318
  • info::device::image2d_max_width (size_t) Device descriptor image2d3d functions #315
  • info::device::image2d_max_height (size_t) Device descriptor image2d3d functions #315
  • info::device::image3d_max_width (size_t) Device descriptor image2d3d functions #315
  • info::device::image3d_max_height (size_t) Device descriptor image2d3d functions #315
  • info::device::image3d_max_depth (size_t) Device descriptor image2d3d functions #315
  • info::device::image_max_buffer_size (size_t)
  • info::device::max_samplers (uint32_t)
  • info::device::max_parameter_size (size_t)
  • info::device::mem_base_addr_align (uint32_t)
  • info::device::half_fp_config (std::vector<info::fp_config>)
  • info::device::single_fp_config (std::vector<info::fp_config>)
  • info::device::double_fp_config (std::vector<info::fp_config>)
  • info::device::global_mem_cache_type (info::global_mem_cache_type)
  • info::device::global_mem_cache_line_size (uint32_t)
  • info::device::global_mem_cache_size (uint64_t)
  • info::device::global_mem_size (uint64_t)
  • info::device::local_mem_type (info::local_mem_­type)
  • info::device::local_mem_size (uint64_t)
  • info::device::error_correction_support (bool)
  • info::device::atomic_memory_order_capabilities (std::vector<memory_order>)
  • info::device::atomic_fence_order_capabilities (std::vector<memory_order>)
  • info::device::atomic_memory_scope_capabilities (std::vector<memory_scope>)
  • info::device::atomic_fence_scope_capabilities (std::vector<memory_scope>)
  • info::device::profiling_timer_resolution (size_t)
  • info::device::is_available (bool)
  • info::device::execution_capabilities (std::vector<info::execution_capability>)
  • info::device::built_in_kernel_ids (std::vector<kernel_id>)
  • info::device::platform (platform)
  • info::device::name (std::string)
  • info::device::vendor (std::string)
  • info::device::driver_version (std::string)
  • info::device::version (std::string)
  • info::device::backend_version (std::string)
  • info::device::aspects (std::vector<aspect>)
  • info::device::parent_device (device)
  • info::device::partition_max_sub_devices (uint32_t)
  • info::device::partition_properties (std::vector<info::partition_property>)
  • info::device::partition_affinity_domains (std::vector<info::partition_affinity_domain>)
  • info::device::partition_type_property (info::partition_property)
  • info::device::partition_type_affinity_domain (info::partition_affinity_domain)

Deprecated:
- [ ] info::device::image_support (bool)
- [ ] info::device::host_unified_memory (bool)
- [ ] info::device::is_endian_little (bool)
- [ ] info::device::is_compiler_available (bool)
- [ ] info::device::is_linker_available (bool)
- [ ] info::device::queue_profiling (bool )
- [ ] info::device::built_in_kernels (std::vector<std::string>)
- [ ] info::device::extensions (std::vector<std::string>)

Deprecated in SYCL 2020:
- [ ] info::device::max_constant_buffer_size (uint64_t)
- [ ] info::device::max_constant_args (uint32_t )
- [ ] info::device::profile (std::string)
- [ ] info::device::printf_buffer_size (size_t)
- [ ] info::device::preferred_interop_user_sync (bool)

Required #292

@diptorupd
Copy link
Contributor

@1e-to We can skip the descriptors that are deprecated in the SYCL 2020 spec. If there is a request/use case later, then we can implement them.

  • info::device::image_support
  • info::device::is_compiler_available
  • info::device::is_linker_available
  • info::device::queue_profiling
  • info::device::built_in_kernels
  • info::device::profile
  • info::device::extensions
  • info::device::printf_buffer_size
  • info::device::preferred_interop_user_sync

@diptorupd
Copy link
Contributor

@1e-to @PokhodenkoSA Let us discuss which of these info descriptors are needed at this point before starting work on any of these. The once @1e-to has already opened PRs for are fine and we can complete and merge those.

@diptorupd
Copy link
Contributor

@oleksandr-pavlyk I am closing the ticket for now. I propose that in future if there is a need for a specific descriptor that is not currently supported, we open a narrower ticket for that purpose.

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

No branches or pull requests

2 participants