Skip to content

Commit f7b15a1

Browse files
iMartyannormallytangent
authored andcommitted
[RNG] Workaround for get_multi_ptr with AdaptiveCPP (#535)
1 parent 72f38df commit f7b15a1

File tree

3 files changed

+25
-2
lines changed

3 files changed

+25
-2
lines changed

examples/rng/device/include/rng_example_helper.hpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,22 @@ struct has_member_code_meta<T, std::void_t<decltype(std::declval<T>().get_multi_
2929

3030
template <typename T, typename std::enable_if<has_member_code_meta<T>::value>::type* = nullptr>
3131
auto get_multi_ptr(T acc) {
32+
// Workaround for AdaptiveCPP, as they do not yet support the get_multi_ptr function
33+
#ifndef __HIPSYCL__
3234
return acc.get_multi_ptr();
35+
#else
36+
return acc.get_pointer();
37+
#endif
3338
};
3439

3540
template <typename T, typename std::enable_if<!has_member_code_meta<T>::value>::type* = nullptr>
3641
auto get_multi_ptr(T acc) {
42+
// Workaround for AdaptiveCPP, as they do not yet support the get_multi_ptr function
43+
#ifndef __HIPSYCL__
3744
return acc.template get_multi_ptr<sycl::access::decorated::yes>();
45+
#else
46+
return acc.get_pointer();
47+
#endif
3848
};
3949

4050
#endif // _RNG_EXAMPLE_HELPER_HPP__

src/rng/backends/mklcpu/cpu_common.hpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,14 @@ class kernel_name {};
5656
template <typename Engine, typename Distr>
5757
class kernel_name_usm {};
5858

59-
template <typename T, sycl::access_mode AccMode>
60-
T *get_raw_ptr(sycl::accessor<T, 1, AccMode> acc) {
59+
template <typename Acc>
60+
typename Acc::value_type *get_raw_ptr(Acc acc) {
61+
// Workaround for AdaptiveCPP, as they do not yet support the get_multi_ptr function
62+
#ifndef __HIPSYCL__
6163
return acc.template get_multi_ptr<sycl::access::decorated::no>().get_raw();
64+
#else
65+
return acc.get_pointer();
66+
#endif
6267
}
6368

6469
} // namespace mklcpu

tests/unit_tests/rng/device/include/rng_device_test_common.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,20 @@ struct has_member_code_meta<T, std::void_t<decltype(std::declval<T>().get_multi_
112112

113113
template <typename T, typename std::enable_if<has_member_code_meta<T>::value>::type* = nullptr>
114114
auto get_multi_ptr(T acc) {
115+
#ifndef __HIPSYCL__
115116
return acc.get_multi_ptr();
117+
#else
118+
return acc.get_pointer();
119+
#endif
116120
};
117121

118122
template <typename T, typename std::enable_if<!has_member_code_meta<T>::value>::type* = nullptr>
119123
auto get_multi_ptr(T acc) {
124+
#ifndef __HIPSYCL__
120125
return acc.template get_multi_ptr<sycl::access::decorated::yes>();
126+
#else
127+
return acc.get_pointer();
128+
#endif
121129
};
122130

123131
template <typename T>

0 commit comments

Comments
 (0)