Skip to content

Commit 83b42bc

Browse files
[NFC][SYCL] Pass ur_device_info_t via template in get_info_impl* (#18419)
It's known in compile-time for all the uses, no need to keep it as a run-time value. Might enable extra refactoring on top of this.
1 parent 6f9292e commit 83b42bc

File tree

2 files changed

+160
-142
lines changed

2 files changed

+160
-142
lines changed

sycl/source/detail/device_impl.cpp

+70-59
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,23 @@ device_impl::device_impl(ur_device_handle_t Device, platform_impl &Platform,
2828
const AdapterPtr &Adapter = Platform.getAdapter();
2929

3030
// TODO catch an exception and put it to list of asynchronous exceptions
31-
MType = get_info_impl<ur_device_type_t>(UR_DEVICE_INFO_TYPE);
31+
MType = get_info_impl<ur_device_type_t, UR_DEVICE_INFO_TYPE>();
3232

3333
// No need to set MRootDevice when MAlwaysRootDevice is true
3434
// TODO: Is get_info aligned with this?
3535
if (!Platform.MAlwaysRootDevice) {
3636
// TODO catch an exception and put it to list of asynchronous exceptions
3737
MRootDevice =
38-
get_info_impl<ur_device_handle_t>(UR_DEVICE_INFO_PARENT_DEVICE);
38+
get_info_impl<ur_device_handle_t, UR_DEVICE_INFO_PARENT_DEVICE>();
3939
}
4040

4141
// TODO catch an exception and put it to list of asynchronous exceptions
4242
// Interoperability Constructor already calls DeviceRetain in
4343
// urDeviceCreateWithNativeHandle.
4444
Adapter->call<UrApiKind::urDeviceRetain>(MDevice);
4545

46-
MUseNativeAssert = get_info_impl<ur_bool_t>(UR_DEVICE_INFO_USE_NATIVE_ASSERT);
46+
MUseNativeAssert =
47+
get_info_impl<ur_bool_t, UR_DEVICE_INFO_USE_NATIVE_ASSERT>();
4748
}
4849

4950
device_impl::~device_impl() {
@@ -119,7 +120,7 @@ device_impl::get_backend_info<info::device::backend_version>() const {
119120

120121
bool device_impl::has_extension(const std::string &ExtensionName) const {
121122
std::string AllExtensionNames =
122-
get_info_impl<std::string>(UR_DEVICE_INFO_EXTENSIONS);
123+
get_info_impl<std::string, UR_DEVICE_INFO_EXTENSIONS>();
123124

124125
return (AllExtensionNames.find(ExtensionName) != std::string::npos);
125126
}
@@ -369,14 +370,14 @@ bool device_impl::has(aspect Aspect) const {
369370
case aspect::ext_oneapi_cuda_cluster_group:
370371
return get_info<info::device::ext_oneapi_cuda_cluster_group>();
371372
case aspect::usm_atomic_host_allocations:
372-
return (get_info_impl<ur_device_usm_access_capability_flags_t>(
373-
UR_DEVICE_INFO_USM_HOST_SUPPORT) &
373+
return (get_info_impl<ur_device_usm_access_capability_flags_t,
374+
UR_DEVICE_INFO_USM_HOST_SUPPORT>() &
374375
UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS);
375376
case aspect::usm_shared_allocations:
376377
return get_info<info::device::usm_shared_allocations>();
377378
case aspect::usm_atomic_shared_allocations:
378-
return (get_info_impl<ur_device_usm_access_capability_flags_t>(
379-
UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT) &
379+
return (get_info_impl<ur_device_usm_access_capability_flags_t,
380+
UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT>() &
380381
UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ATOMIC_CONCURRENT_ACCESS);
381382
case aspect::usm_restricted_shared_allocations:
382383
return get_info<info::device::usm_restricted_shared_allocations>();
@@ -421,118 +422,128 @@ bool device_impl::has(aspect Aspect) const {
421422
case aspect::ext_oneapi_native_assert:
422423
return useNativeAssert();
423424
case aspect::ext_oneapi_cuda_async_barrier: {
424-
return get_info_impl_nocheck<ur_bool_t>(UR_DEVICE_INFO_ASYNC_BARRIER)
425+
return get_info_impl_nocheck<ur_bool_t, UR_DEVICE_INFO_ASYNC_BARRIER>()
425426
.value_or(0);
426427
}
427428
case aspect::ext_intel_legacy_image: {
428-
return get_info_impl_nocheck<ur_bool_t>(UR_DEVICE_INFO_IMAGE_SUPPORT)
429+
return get_info_impl_nocheck<ur_bool_t, UR_DEVICE_INFO_IMAGE_SUPPORT>()
429430
.value_or(0);
430431
}
431432
case aspect::ext_oneapi_bindless_images: {
432-
return get_info_impl_nocheck<ur_bool_t>(
433-
UR_DEVICE_INFO_BINDLESS_IMAGES_SUPPORT_EXP)
433+
return get_info_impl_nocheck<ur_bool_t,
434+
UR_DEVICE_INFO_BINDLESS_IMAGES_SUPPORT_EXP>()
434435
.value_or(0);
435436
}
436437
case aspect::ext_oneapi_bindless_images_shared_usm: {
437-
return get_info_impl_nocheck<ur_bool_t>(
438-
UR_DEVICE_INFO_BINDLESS_IMAGES_SHARED_USM_SUPPORT_EXP)
438+
return get_info_impl_nocheck<
439+
ur_bool_t,
440+
UR_DEVICE_INFO_BINDLESS_IMAGES_SHARED_USM_SUPPORT_EXP>()
439441
.value_or(0);
440442
}
441443
case aspect::ext_oneapi_bindless_images_1d_usm: {
442-
return get_info_impl_nocheck<ur_bool_t>(
443-
UR_DEVICE_INFO_BINDLESS_IMAGES_1D_USM_SUPPORT_EXP)
444+
return get_info_impl_nocheck<
445+
ur_bool_t, UR_DEVICE_INFO_BINDLESS_IMAGES_1D_USM_SUPPORT_EXP>()
444446
.value_or(0);
445447
}
446448
case aspect::ext_oneapi_bindless_images_2d_usm: {
447-
return get_info_impl_nocheck<ur_bool_t>(
448-
UR_DEVICE_INFO_BINDLESS_IMAGES_2D_USM_SUPPORT_EXP)
449+
return get_info_impl_nocheck<
450+
ur_bool_t, UR_DEVICE_INFO_BINDLESS_IMAGES_2D_USM_SUPPORT_EXP>()
449451
.value_or(0);
450452
}
451453
case aspect::ext_oneapi_external_memory_import: {
452-
return get_info_impl_nocheck<ur_bool_t>(
453-
UR_DEVICE_INFO_EXTERNAL_MEMORY_IMPORT_SUPPORT_EXP)
454+
return get_info_impl_nocheck<
455+
ur_bool_t, UR_DEVICE_INFO_EXTERNAL_MEMORY_IMPORT_SUPPORT_EXP>()
454456
.value_or(0);
455457
}
456458
case aspect::ext_oneapi_external_semaphore_import: {
457-
return get_info_impl_nocheck<ur_bool_t>(
458-
UR_DEVICE_INFO_EXTERNAL_SEMAPHORE_IMPORT_SUPPORT_EXP)
459+
return get_info_impl_nocheck<
460+
ur_bool_t,
461+
UR_DEVICE_INFO_EXTERNAL_SEMAPHORE_IMPORT_SUPPORT_EXP>()
459462
.value_or(0);
460463
}
461464
case aspect::ext_oneapi_mipmap: {
462-
return get_info_impl_nocheck<ur_bool_t>(UR_DEVICE_INFO_MIPMAP_SUPPORT_EXP)
465+
return get_info_impl_nocheck<ur_bool_t, UR_DEVICE_INFO_MIPMAP_SUPPORT_EXP>()
463466
.value_or(0);
464467
}
465468
case aspect::ext_oneapi_mipmap_anisotropy: {
466-
return get_info_impl_nocheck<ur_bool_t>(
467-
UR_DEVICE_INFO_MIPMAP_ANISOTROPY_SUPPORT_EXP)
469+
return get_info_impl_nocheck<ur_bool_t,
470+
UR_DEVICE_INFO_MIPMAP_ANISOTROPY_SUPPORT_EXP>()
468471
.value_or(0);
469472
}
470473
case aspect::ext_oneapi_mipmap_level_reference: {
471-
return get_info_impl_nocheck<ur_bool_t>(
472-
UR_DEVICE_INFO_MIPMAP_LEVEL_REFERENCE_SUPPORT_EXP)
474+
return get_info_impl_nocheck<
475+
ur_bool_t, UR_DEVICE_INFO_MIPMAP_LEVEL_REFERENCE_SUPPORT_EXP>()
473476
.value_or(0);
474477
}
475478
case aspect::ext_oneapi_bindless_sampled_image_fetch_1d_usm: {
476-
return get_info_impl_nocheck<ur_bool_t>(
477-
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_SUPPORT_EXP)
479+
return get_info_impl_nocheck<
480+
ur_bool_t,
481+
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_USM_SUPPORT_EXP>()
478482
.value_or(0);
479483
}
480484
case aspect::ext_oneapi_bindless_sampled_image_fetch_1d: {
481-
return get_info_impl_nocheck<ur_bool_t>(
482-
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_SUPPORT_EXP)
485+
return get_info_impl_nocheck<
486+
ur_bool_t,
487+
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_1D_SUPPORT_EXP>()
483488
.value_or(0);
484489
}
485490
case aspect::ext_oneapi_bindless_sampled_image_fetch_2d_usm: {
486-
return get_info_impl_nocheck<ur_bool_t>(
487-
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_SUPPORT_EXP)
491+
return get_info_impl_nocheck<
492+
ur_bool_t,
493+
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_USM_SUPPORT_EXP>()
488494
.value_or(0);
489495
}
490496
case aspect::ext_oneapi_bindless_sampled_image_fetch_2d: {
491-
return get_info_impl_nocheck<ur_bool_t>(
492-
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_SUPPORT_EXP)
497+
return get_info_impl_nocheck<
498+
ur_bool_t,
499+
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_2D_SUPPORT_EXP>()
493500
.value_or(0);
494501
}
495502
case aspect::ext_oneapi_bindless_sampled_image_fetch_3d: {
496-
return get_info_impl_nocheck<ur_bool_t>(
497-
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_SUPPORT_EXP)
503+
return get_info_impl_nocheck<
504+
ur_bool_t,
505+
UR_DEVICE_INFO_BINDLESS_SAMPLED_IMAGE_FETCH_3D_SUPPORT_EXP>()
498506
.value_or(0);
499507
}
500508
case aspect::ext_oneapi_bindless_images_gather: {
501-
return get_info_impl_nocheck<ur_bool_t>(
502-
UR_DEVICE_INFO_BINDLESS_IMAGES_GATHER_SUPPORT_EXP)
509+
return get_info_impl_nocheck<
510+
ur_bool_t, UR_DEVICE_INFO_BINDLESS_IMAGES_GATHER_SUPPORT_EXP>()
503511
.value_or(0);
504512
}
505513
case aspect::ext_oneapi_cubemap: {
506-
return get_info_impl_nocheck<ur_bool_t>(UR_DEVICE_INFO_CUBEMAP_SUPPORT_EXP)
514+
return get_info_impl_nocheck<ur_bool_t,
515+
UR_DEVICE_INFO_CUBEMAP_SUPPORT_EXP>()
507516
.value_or(0);
508517
}
509518
case aspect::ext_oneapi_cubemap_seamless_filtering: {
510-
return get_info_impl_nocheck<ur_bool_t>(
511-
UR_DEVICE_INFO_CUBEMAP_SEAMLESS_FILTERING_SUPPORT_EXP)
519+
return get_info_impl_nocheck<
520+
ur_bool_t,
521+
UR_DEVICE_INFO_CUBEMAP_SEAMLESS_FILTERING_SUPPORT_EXP>()
512522
.value_or(0);
513523
}
514524
case aspect::ext_oneapi_image_array: {
515-
return get_info_impl_nocheck<ur_bool_t>(
516-
UR_DEVICE_INFO_IMAGE_ARRAY_SUPPORT_EXP)
525+
return get_info_impl_nocheck<ur_bool_t,
526+
UR_DEVICE_INFO_IMAGE_ARRAY_SUPPORT_EXP>()
517527
.value_or(0);
518528
}
519529
case aspect::ext_oneapi_unique_addressing_per_dim: {
520-
return get_info_impl_nocheck<ur_bool_t>(
521-
UR_DEVICE_INFO_BINDLESS_UNIQUE_ADDRESSING_PER_DIM_SUPPORT_EXP)
530+
return get_info_impl_nocheck<
531+
ur_bool_t,
532+
UR_DEVICE_INFO_BINDLESS_UNIQUE_ADDRESSING_PER_DIM_SUPPORT_EXP>()
522533
.value_or(0);
523534
}
524535
case aspect::ext_oneapi_bindless_images_sample_1d_usm: {
525-
return get_info_impl_nocheck<ur_bool_t>(
526-
UR_DEVICE_INFO_BINDLESS_SAMPLE_1D_USM_SUPPORT_EXP)
536+
return get_info_impl_nocheck<
537+
ur_bool_t, UR_DEVICE_INFO_BINDLESS_SAMPLE_1D_USM_SUPPORT_EXP>()
527538
.value_or(0);
528539
}
529540
case aspect::ext_oneapi_bindless_images_sample_2d_usm: {
530-
return get_info_impl_nocheck<ur_bool_t>(
531-
UR_DEVICE_INFO_BINDLESS_SAMPLE_2D_USM_SUPPORT_EXP)
541+
return get_info_impl_nocheck<
542+
ur_bool_t, UR_DEVICE_INFO_BINDLESS_SAMPLE_2D_USM_SUPPORT_EXP>()
532543
.value_or(0);
533544
}
534545
case aspect::ext_intel_esimd: {
535-
return get_info_impl_nocheck<ur_bool_t>(UR_DEVICE_INFO_ESIMD_SUPPORT)
546+
return get_info_impl_nocheck<ur_bool_t, UR_DEVICE_INFO_ESIMD_SUPPORT>()
536547
.value_or(0);
537548
}
538549
case aspect::ext_oneapi_ballot_group:
@@ -576,8 +587,8 @@ bool device_impl::has(aspect Aspect) const {
576587
return components.size() >= 2;
577588
}
578589
case aspect::ext_oneapi_is_component: {
579-
return get_info_impl_nocheck<ur_device_handle_t>(
580-
UR_DEVICE_INFO_COMPOSITE_DEVICE)
590+
return get_info_impl_nocheck<ur_device_handle_t,
591+
UR_DEVICE_INFO_COMPOSITE_DEVICE>()
581592
.value_or(nullptr) != nullptr;
582593
}
583594
case aspect::ext_oneapi_graph: {
@@ -623,13 +634,13 @@ bool device_impl::has(aspect Aspect) const {
623634
be == sycl::backend::opencl;
624635
}
625636
case aspect::ext_oneapi_queue_profiling_tag: {
626-
return get_info_impl_nocheck<ur_bool_t>(
627-
UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP)
637+
return get_info_impl_nocheck<
638+
ur_bool_t, UR_DEVICE_INFO_TIMESTAMP_RECORDING_SUPPORT_EXP>()
628639
.value_or(0);
629640
}
630641
case aspect::ext_oneapi_virtual_mem: {
631-
return get_info_impl_nocheck<ur_bool_t>(
632-
UR_DEVICE_INFO_VIRTUAL_MEMORY_SUPPORT)
642+
return get_info_impl_nocheck<ur_bool_t,
643+
UR_DEVICE_INFO_VIRTUAL_MEMORY_SUPPORT>()
633644
.value_or(0);
634645
}
635646
case aspect::ext_intel_fpga_task_sequence: {
@@ -652,8 +663,8 @@ bool device_impl::has(aspect Aspect) const {
652663
return is_gpu() && isCompatibleBE;
653664
}
654665
case aspect::ext_oneapi_async_memory_alloc: {
655-
return get_info_impl_nocheck<ur_bool_t>(
656-
UR_DEVICE_INFO_ASYNC_USM_ALLOCATIONS_SUPPORT_EXP)
666+
return get_info_impl_nocheck<
667+
ur_bool_t, UR_DEVICE_INFO_ASYNC_USM_ALLOCATIONS_SUPPORT_EXP>()
657668
.value_or(0);
658669
}
659670
}

0 commit comments

Comments
 (0)