DPC++ Runtime
Runtime libraries for oneAPI DPC++
device_info.hpp File Reference
#include <detail/device_impl.hpp>
#include <detail/platform_impl.hpp>
#include <detail/platform_util.hpp>
#include <detail/plugin.hpp>
#include <detail/program_manager/program_manager.hpp>
#include <sycl/detail/common_info.hpp>
#include <sycl/detail/defines.hpp>
#include <sycl/detail/os_util.hpp>
#include <sycl/detail/pi.hpp>
#include <sycl/device.hpp>
#include <sycl/feature_test.hpp>
#include <sycl/info/info_desc.hpp>
#include <sycl/memory_enums.hpp>
#include <sycl/platform.hpp>
#include <chrono>
#include <thread>
Include dependency graph for device_info.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  sycl::_V1::detail::sycl_to_pi< T >
 
struct  sycl::_V1::detail::sycl_to_pi< bool >
 
struct  sycl::_V1::detail::sycl_to_pi< device >
 
struct  sycl::_V1::detail::sycl_to_pi< platform >
 
struct  sycl::_V1::detail::check_fp_support< Param >
 
struct  sycl::_V1::detail::check_fp_support< info::device::half_fp_config >
 
struct  sycl::_V1::detail::check_fp_support< info::device::double_fp_config >
 
struct  sycl::_V1::detail::get_device_info_impl< ReturnT, Param >
 
struct  sycl::_V1::detail::get_device_info_impl< platform, Param >
 
struct  sycl::_V1::detail::get_device_info_impl< std::string, Param >
 
struct  sycl::_V1::detail::get_device_info_impl< ReturnT, info::device::parent_device >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< info::fp_config >, Param >
 
struct  sycl::_V1::detail::get_device_info_impl< std::string, info::device::version >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< info::fp_config >, info::device::single_fp_config >
 
struct  sycl::_V1::detail::get_device_info_impl< bool, info::device::queue_profiling >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< memory_order >, info::device::atomic_memory_order_capabilities >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< memory_order >, info::device::atomic_fence_order_capabilities >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< memory_scope >, info::device::atomic_memory_scope_capabilities >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< memory_scope >, info::device::atomic_fence_scope_capabilities >
 
struct  sycl::_V1::detail::get_device_info_impl< bool, info::device::ext_oneapi_bfloat16_math_functions >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< info::execution_capability >, info::device::execution_capabilities >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< kernel_id >, info::device::built_in_kernel_ids >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< std::string >, info::device::built_in_kernels >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< std::string >, info::device::extensions >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< info::partition_property >, info::device::partition_properties >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< info::partition_affinity_domain >, info::device::partition_affinity_domains >
 
struct  sycl::_V1::detail::get_device_info_impl< info::partition_affinity_domain, info::device::partition_type_affinity_domain >
 
struct  sycl::_V1::detail::get_device_info_impl< info::partition_property, info::device::partition_type_property >
 
struct  sycl::_V1::detail::get_device_info_impl< std::vector< size_t >, info::device::sub_group_sizes >
 
struct  sycl::_V1::detail::get_device_info_impl< bool, info::device::kernel_kernel_pipe_support >
 
struct  sycl::_V1::detail::get_device_info_impl< id< Dimensions >, info::device::max_work_item_sizes< Dimensions > >
 
struct  sycl::_V1::detail::get_device_info_impl< size_t, ext::oneapi::experimental::info::device::max_global_work_groups >
 
struct  sycl::_V1::detail::get_device_info_impl< id< 1 >, ext::oneapi::experimental::info::device::max_work_groups< 1 > >
 
struct  sycl::_V1::detail::get_device_info_impl< id< 2 >, ext::oneapi::experimental::info::device::max_work_groups< 2 > >
 
struct  sycl::_V1::detail::get_device_info_impl< id< 3 >, ext::oneapi::experimental::info::device::max_work_groups< 3 > >
 
struct  sycl::_V1::detail::get_device_info_impl< size_t, info::device::ext_oneapi_max_global_work_groups >
 
struct  sycl::_V1::detail::get_device_info_impl< id< 1 >, info::device::ext_oneapi_max_work_groups_1d >
 
struct  sycl::_V1::detail::get_device_info_impl< id< 2 >, info::device::ext_oneapi_max_work_groups_2d >
 
struct  sycl::_V1::detail::get_device_info_impl< id< 3 >, info::device::ext_oneapi_max_work_groups_3d >
 
struct  sycl::_V1::detail::get_device_info_impl< device, info::device::parent_device >
 
struct  sycl::_V1::detail::get_device_info_impl< bool, info::device::usm_device_allocations >
 
struct  sycl::_V1::detail::get_device_info_impl< bool, info::device::usm_host_allocations >
 
struct  sycl::_V1::detail::get_device_info_impl< bool, info::device::usm_shared_allocations >
 
struct  sycl::_V1::detail::get_device_info_impl< bool, info::device::usm_restricted_shared_allocations >
 
struct  sycl::_V1::detail::get_device_info_impl< bool, info::device::usm_system_allocations >
 
struct  sycl::_V1::detail::get_device_info_impl< bool, info::device::ext_intel_mem_channel >
 
struct  sycl::_V1::detail::get_device_info_impl< bool, ext::codeplay::experimental::info::device::supports_fusion >
 

Namespaces

 sycl
 ---— Error handling, matching OpenCL plugin semantics.
 
 sycl::_V1
 
 sycl::_V1::detail
 

Macros

#define __SYCL_AFFINITY_DOMAIN_STRING_CASE(DOMAIN)
 

Functions

std::vector< info::fp_config > sycl::_V1::detail::read_fp_bitfield (pi_device_fp_config bits)
 
std::vector< info::partition_affinity_domain > sycl::_V1::detail::read_domain_bitfield (pi_device_affinity_domain bits)
 
std::vector< info::execution_capability > sycl::_V1::detail::read_execution_bitfield (pi_device_exec_capabilities bits)
 
std::string sycl::_V1::detail::affinityDomainToString (info::partition_affinity_domain AffinityDomain)
 
std::string sycl::_V1::detail::get_device_info_string (RT::PiDevice dev, RT::PiDeviceInfo InfoCode, const plugin &Plugin)
 
static bool sycl::_V1::detail::is_sycl_partition_property (info::partition_property PP)
 
template<int Dimensions>
id< Dimensions > sycl::_V1::detail::construct_id (size_t *values)=delete
 
template<>
id< 1 > sycl::_V1::detail::construct_id< 1 > (size_t *values)
 
template<>
id< 2 > sycl::_V1::detail::construct_id< 2 > (size_t *values)
 
template<>
id< 3 > sycl::_V1::detail::construct_id< 3 > (size_t *values)
 
template<typename Param >
Param::return_type sycl::_V1::detail::get_device_info (RT::PiDevice dev, const plugin &Plugin)
 
template<typename Param >
Param::return_type sycl::_V1::detail::get_device_info_host ()=delete
 
template<>
info::device_type sycl::_V1::detail::get_device_info_host< info::device::device_type > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::vendor_id > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::max_compute_units > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::max_work_item_dimensions > ()
 
template<>
id< 1 > sycl::_V1::detail::get_device_info_host< info::device::max_work_item_sizes< 1 > > ()
 
template<>
id< 2 > sycl::_V1::detail::get_device_info_host< info::device::max_work_item_sizes< 2 > > ()
 
template<>
id< 3 > sycl::_V1::detail::get_device_info_host< info::device::max_work_item_sizes< 3 > > ()
 
template<>
constexpr size_t sycl::_V1::detail::get_device_info_host< ext::oneapi::experimental::info::device::max_global_work_groups > ()
 
template<>
id< 1 > sycl::_V1::detail::get_device_info_host< ext::oneapi::experimental::info::device::max_work_groups< 1 > > ()
 
template<>
id< 2 > sycl::_V1::detail::get_device_info_host< ext::oneapi::experimental::info::device::max_work_groups< 2 > > ()
 
template<>
id< 3 > sycl::_V1::detail::get_device_info_host< ext::oneapi::experimental::info::device::max_work_groups< 3 > > ()
 
template<>
constexpr size_t sycl::_V1::detail::get_device_info_host< info::device::ext_oneapi_max_global_work_groups > ()
 
template<>
id< 1 > sycl::_V1::detail::get_device_info_host< info::device::ext_oneapi_max_work_groups_1d > ()
 
template<>
id< 2 > sycl::_V1::detail::get_device_info_host< info::device::ext_oneapi_max_work_groups_2d > ()
 
template<>
id< 3 > sycl::_V1::detail::get_device_info_host< info::device::ext_oneapi_max_work_groups_3d > ()
 
template<>
size_t sycl::_V1::detail::get_device_info_host< info::device::max_work_group_size > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::preferred_vector_width_char > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::preferred_vector_width_short > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::preferred_vector_width_int > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::preferred_vector_width_long > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::preferred_vector_width_float > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::preferred_vector_width_double > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::preferred_vector_width_half > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::native_vector_width_char > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::native_vector_width_short > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::native_vector_width_int > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::native_vector_width_long > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::native_vector_width_float > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::native_vector_width_double > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::native_vector_width_half > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::max_clock_frequency > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::address_bits > ()
 
template<>
uint64_t sycl::_V1::detail::get_device_info_host< info::device::global_mem_size > ()
 
template<>
uint64_t sycl::_V1::detail::get_device_info_host< info::device::max_mem_alloc_size > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::image_support > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::atomic64 > ()
 
template<>
std::vector< memory_order > sycl::_V1::detail::get_device_info_host< info::device::atomic_memory_order_capabilities > ()
 
template<>
std::vector< memory_order > sycl::_V1::detail::get_device_info_host< info::device::atomic_fence_order_capabilities > ()
 
template<>
std::vector< memory_scope > sycl::_V1::detail::get_device_info_host< info::device::atomic_memory_scope_capabilities > ()
 
template<>
std::vector< memory_scope > sycl::_V1::detail::get_device_info_host< info::device::atomic_fence_scope_capabilities > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::ext_oneapi_bfloat16_math_functions > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::max_read_image_args > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::max_write_image_args > ()
 
template<>
size_t sycl::_V1::detail::get_device_info_host< info::device::image2d_max_width > ()
 
template<>
size_t sycl::_V1::detail::get_device_info_host< info::device::image2d_max_height > ()
 
template<>
size_t sycl::_V1::detail::get_device_info_host< info::device::image3d_max_width > ()
 
template<>
size_t sycl::_V1::detail::get_device_info_host< info::device::image3d_max_height > ()
 
template<>
size_t sycl::_V1::detail::get_device_info_host< info::device::image3d_max_depth > ()
 
template<>
size_t sycl::_V1::detail::get_device_info_host< info::device::image_max_buffer_size > ()
 
template<>
size_t sycl::_V1::detail::get_device_info_host< info::device::image_max_array_size > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::max_samplers > ()
 
template<>
size_t sycl::_V1::detail::get_device_info_host< info::device::max_parameter_size > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::mem_base_addr_align > ()
 
template<>
std::vector< info::fp_config > sycl::_V1::detail::get_device_info_host< info::device::half_fp_config > ()
 
template<>
std::vector< info::fp_config > sycl::_V1::detail::get_device_info_host< info::device::single_fp_config > ()
 
template<>
std::vector< info::fp_config > sycl::_V1::detail::get_device_info_host< info::device::double_fp_config > ()
 
template<>
info::global_mem_cache_type sycl::_V1::detail::get_device_info_host< info::device::global_mem_cache_type > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::global_mem_cache_line_size > ()
 
template<>
uint64_t sycl::_V1::detail::get_device_info_host< info::device::global_mem_cache_size > ()
 
template<>
uint64_t sycl::_V1::detail::get_device_info_host< info::device::max_constant_buffer_size > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::max_constant_args > ()
 
template<>
info::local_mem_type sycl::_V1::detail::get_device_info_host< info::device::local_mem_type > ()
 
template<>
uint64_t sycl::_V1::detail::get_device_info_host< info::device::local_mem_size > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::error_correction_support > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::host_unified_memory > ()
 
template<>
size_t sycl::_V1::detail::get_device_info_host< info::device::profiling_timer_resolution > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::is_endian_little > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::is_available > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::is_compiler_available > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::is_linker_available > ()
 
template<>
std::vector< info::execution_capability > sycl::_V1::detail::get_device_info_host< info::device::execution_capabilities > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::queue_profiling > ()
 
template<>
std::vector< kernel_id > sycl::_V1::detail::get_device_info_host< info::device::built_in_kernel_ids > ()
 
template<>
std::vector< std::string > sycl::_V1::detail::get_device_info_host< info::device::built_in_kernels > ()
 
template<>
platform sycl::_V1::detail::get_device_info_host< info::device::platform > ()
 
template<>
std::string sycl::_V1::detail::get_device_info_host< info::device::name > ()
 
template<>
std::string sycl::_V1::detail::get_device_info_host< info::device::vendor > ()
 
template<>
std::string sycl::_V1::detail::get_device_info_host< info::device::driver_version > ()
 
template<>
std::string sycl::_V1::detail::get_device_info_host< info::device::profile > ()
 
template<>
std::string sycl::_V1::detail::get_device_info_host< info::device::version > ()
 
template<>
std::string sycl::_V1::detail::get_device_info_host< info::device::opencl_c_version > ()
 
template<>
std::vector< std::string > sycl::_V1::detail::get_device_info_host< info::device::extensions > ()
 
template<>
size_t sycl::_V1::detail::get_device_info_host< info::device::printf_buffer_size > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::preferred_interop_user_sync > ()
 
template<>
device sycl::_V1::detail::get_device_info_host< info::device::parent_device > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::partition_max_sub_devices > ()
 
template<>
std::vector< info::partition_property > sycl::_V1::detail::get_device_info_host< info::device::partition_properties > ()
 
template<>
std::vector< info::partition_affinity_domain > sycl::_V1::detail::get_device_info_host< info::device::partition_affinity_domains > ()
 
template<>
info::partition_property sycl::_V1::detail::get_device_info_host< info::device::partition_type_property > ()
 
template<>
info::partition_affinity_domain sycl::_V1::detail::get_device_info_host< info::device::partition_type_affinity_domain > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::reference_count > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::max_num_sub_groups > ()
 
template<>
std::vector< size_t > sycl::_V1::detail::get_device_info_host< info::device::sub_group_sizes > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::sub_group_independent_forward_progress > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::kernel_kernel_pipe_support > ()
 
template<>
std::string sycl::_V1::detail::get_device_info_host< info::device::backend_version > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::usm_device_allocations > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::usm_host_allocations > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::usm_shared_allocations > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::usm_restricted_shared_allocations > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::usm_system_allocations > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::ext_intel_mem_channel > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< ext::intel::info::device::device_id > ()
 
template<>
std::string sycl::_V1::detail::get_device_info_host< ext::intel::info::device::pci_address > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< ext::intel::info::device::gpu_eu_count > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< ext::intel::info::device::gpu_eu_simd_width > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< ext::intel::info::device::gpu_slices > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< ext::intel::info::device::gpu_subslices_per_slice > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< ext::intel::info::device::gpu_eu_count_per_subslice > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< ext::intel::info::device::gpu_hw_threads_per_eu > ()
 
template<>
uint64_t sycl::_V1::detail::get_device_info_host< ext::intel::info::device::max_mem_bandwidth > ()
 
template<>
detail::uuid_type sycl::_V1::detail::get_device_info_host< ext::intel::info::device::uuid > ()
 
template<>
std::string sycl::_V1::detail::get_device_info_host< info::device::ext_intel_pci_address > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::ext_intel_gpu_eu_count > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::ext_intel_gpu_eu_simd_width > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::ext_intel_gpu_slices > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::ext_intel_gpu_subslices_per_slice > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::ext_intel_gpu_eu_count_per_subslice > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< info::device::ext_intel_gpu_hw_threads_per_eu > ()
 
template<>
uint64_t sycl::_V1::detail::get_device_info_host< info::device::ext_intel_max_mem_bandwidth > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< info::device::ext_oneapi_srgb > ()
 
template<>
detail::uuid_type sycl::_V1::detail::get_device_info_host< info::device::ext_intel_device_info_uuid > ()
 
template<>
uint64_t sycl::_V1::detail::get_device_info_host< ext::intel::info::device::free_memory > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< ext::intel::info::device::memory_clock_rate > ()
 
template<>
uint32_t sycl::_V1::detail::get_device_info_host< ext::intel::info::device::memory_bus_width > ()
 
template<>
int32_t sycl::_V1::detail::get_device_info_host< ext::intel::info::device::max_compute_queue_indices > ()
 
template<>
bool sycl::_V1::detail::get_device_info_host< ext::codeplay::experimental::info::device::supports_fusion > ()
 

Macro Definition Documentation

◆ __SYCL_AFFINITY_DOMAIN_STRING_CASE

#define __SYCL_AFFINITY_DOMAIN_STRING_CASE (   DOMAIN)
Value:
case DOMAIN: \
return #DOMAIN;