11
11
namespace oneapi ::dpl::experimental::dr::shp
12
12
{
13
13
14
- // A `device_span ` is simply a normal `std::span` that's
14
+ // A `remote_span ` is simply a normal `std::span` that's
15
15
// been decorated with an extra `rank()` function, showing
16
16
// which rank its memory is located on.
17
17
// (Thus fulfilling the `remote_range` concept.)
18
18
/*
19
19
template <class T,
20
20
std::size_t Extent = std::dynamic_extent>
21
- class device_span : public std::span<T, Extent> {
21
+ class remote_span : public std::span<T, Extent> {
22
22
public:
23
- constexpr device_span () noexcept {}
23
+ constexpr remote_span () noexcept {}
24
24
25
25
template< class It >
26
26
explicit(Extent != std::dynamic_extent)
27
- constexpr device_span (It first, std::size_t count, std::size_t rank)
27
+ constexpr remote_span (It first, std::size_t count, std::size_t rank)
28
28
: rank_(rank), std::span<T, Extent>(first, count) {}
29
29
30
30
template< class It, class End >
31
31
explicit(Extent != std::dynamic_extent)
32
- constexpr device_span (It first, End last, std::size_t rank)
32
+ constexpr remote_span (It first, End last, std::size_t rank)
33
33
: rank_(rank), std::span<T, Extent>(first, last) {}
34
34
35
35
constexpr std::size_t rank() const noexcept {
@@ -42,33 +42,33 @@ class device_span : public std::span<T, Extent> {
42
42
*/
43
43
44
44
template <typename T, typename Iter = T*>
45
- class device_span : public span <T, Iter>
45
+ class remote_span : public span <T, Iter>
46
46
{
47
47
public:
48
- constexpr device_span () noexcept {}
48
+ constexpr remote_span () noexcept {}
49
49
50
50
using value_type = T;
51
51
using size_type = std::size_t ;
52
52
using difference_type = std::size_t ;
53
53
using reference = std::iter_reference_t <Iter>;
54
54
55
55
template <rng::random_access_range R>
56
- requires (remote_range<R>) device_span (R&& r) : span<T, Iter>(rng::begin(r), rng::size(r)), rank_(ranges::rank(r))
56
+ requires (remote_range<R>) remote_span (R&& r) : span<T, Iter>(rng::begin(r), rng::size(r)), rank_(ranges::rank(r))
57
57
{
58
58
}
59
59
60
60
template <rng::random_access_range R>
61
- device_span (R&& r, std::size_t rank) : span<T, Iter>(rng::begin(r), rng::size(r)), rank_(rank)
61
+ remote_span (R&& r, std::size_t rank) : span<T, Iter>(rng::begin(r), rng::size(r)), rank_(rank)
62
62
{
63
63
}
64
64
65
65
template <class It >
66
- constexpr device_span (It first, std::size_t count, std::size_t rank) : span<T, Iter>(first, count), rank_(rank)
66
+ constexpr remote_span (It first, std::size_t count, std::size_t rank) : span<T, Iter>(first, count), rank_(rank)
67
67
{
68
68
}
69
69
70
70
template <class It , class End >
71
- constexpr device_span (It first, End last, std::size_t rank) : span<T, Iter>(first, last), rank_(rank)
71
+ constexpr remote_span (It first, End last, std::size_t rank) : span<T, Iter>(first, last), rank_(rank)
72
72
{
73
73
}
74
74
@@ -78,32 +78,32 @@ class device_span : public span<T, Iter>
78
78
return rank_;
79
79
}
80
80
81
- device_span
81
+ remote_span
82
82
first (std::size_t n) const
83
83
{
84
- return device_span (this ->begin (), this ->begin () + n, rank_);
84
+ return remote_span (this ->begin (), this ->begin () + n, rank_);
85
85
}
86
86
87
- device_span
87
+ remote_span
88
88
last (std::size_t n) const
89
89
{
90
- return device_span (this ->end () - n, this ->end (), rank_);
90
+ return remote_span (this ->end () - n, this ->end (), rank_);
91
91
}
92
92
93
- device_span
93
+ remote_span
94
94
subspan (std::size_t offset, std::size_t count) const
95
95
{
96
- return device_span (this ->begin () + offset, this ->begin () + offset + count, rank_);
96
+ return remote_span (this ->begin () + offset, this ->begin () + offset + count, rank_);
97
97
}
98
98
99
99
private:
100
100
std::size_t rank_;
101
101
};
102
102
103
103
template <rng::random_access_range R>
104
- device_span (R&&) -> device_span <rng::range_value_t <R>, rng::iterator_t <R>>;
104
+ remote_span (R&&) -> remote_span <rng::range_value_t <R>, rng::iterator_t <R>>;
105
105
106
106
template <rng::random_access_range R>
107
- device_span (R&&, std::size_t ) -> device_span <rng::range_value_t <R>, rng::iterator_t <R>>;
107
+ remote_span (R&&, std::size_t ) -> remote_span <rng::range_value_t <R>, rng::iterator_t <R>>;
108
108
109
109
} // namespace oneapi::dpl::experimental::dr::shp
0 commit comments