Skip to content

Commit 635bf3c

Browse files
[NFCI][SYCL] Use get_info_impl (not _nocheck) for USM info descriptors (#18453)
I tracked the appearance of `_nocheck` down to #937 and James doesn't remember anything specific requiring that vs "checked" version. Also, some similar USM-related aspects (those that don't just delegate to `get_info`) do use "checked" APIs, so it seems logical to unify this processing. The main reason I do this is that it would be a bit easier to cache the values of "checked" interfaces by pre-computing USM support in `device_impl`'s ctor. Note that we perform at least some of those every time we allocate USM memory, so doing the caching is desirable (even for the sake of cleaning up our traces).
1 parent cdaca4a commit 635bf3c

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

sycl/source/detail/device_impl.hpp

+7-13
Original file line numberDiff line numberDiff line change
@@ -589,33 +589,27 @@ class device_impl : public std::enable_shared_from_this<device_impl> {
589589
}
590590

591591
CASE(info::device::usm_device_allocations) {
592-
return get_info_impl_nocheck<UR_DEVICE_INFO_USM_DEVICE_SUPPORT>()
593-
.value_or(0) &
592+
return get_info_impl<UR_DEVICE_INFO_USM_DEVICE_SUPPORT>() &
594593
UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS;
595594
}
596595
CASE(info::device::usm_host_allocations) {
597-
return get_info_impl_nocheck<UR_DEVICE_INFO_USM_HOST_SUPPORT>().value_or(
598-
0) &
596+
return get_info_impl<UR_DEVICE_INFO_USM_HOST_SUPPORT>() &
599597
UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS;
600598
}
601599
CASE(info::device::usm_shared_allocations) {
602-
return get_info_impl_nocheck<UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT>()
603-
.value_or(0) &
600+
return get_info_impl<UR_DEVICE_INFO_USM_SINGLE_SHARED_SUPPORT>() &
604601
UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS;
605602
}
606603
CASE(info::device::usm_restricted_shared_allocations) {
607-
auto cap_flags =
608-
get_info_impl_nocheck<UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT>();
609-
if (!cap_flags.has_val())
610-
return false;
604+
ur_device_usm_access_capability_flags_t cap_flags =
605+
get_info_impl<UR_DEVICE_INFO_USM_CROSS_SHARED_SUPPORT>();
611606
// Check that we don't support any cross device sharing
612-
return !(cap_flags.value() &
607+
return !(cap_flags &
613608
(UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS |
614609
UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_CONCURRENT_ACCESS));
615610
}
616611
CASE(info::device::usm_system_allocations) {
617-
return get_info_impl_nocheck<UR_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT>()
618-
.value_or(0) &
612+
return get_info_impl<UR_DEVICE_INFO_USM_SYSTEM_SHARED_SUPPORT>() &
619613
UR_DEVICE_USM_ACCESS_CAPABILITY_FLAG_ACCESS;
620614
}
621615

0 commit comments

Comments
 (0)