Skip to content

Commit 9c7bd9e

Browse files
authored
[SYCL] Add dimensions member to item/range-like types (#10080)
Added to the spec in this PR: KhronosGroup/SYCL-Docs#351 Fixes #9786
1 parent 15f5ac3 commit 9c7bd9e

File tree

8 files changed

+270
-232
lines changed

8 files changed

+270
-232
lines changed

sycl/include/sycl/h_item.hpp

Lines changed: 41 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -25,79 +25,81 @@ class Builder;
2525
/// call or to the corresponding parallel_for_work_group call.
2626
///
2727
/// \ingroup sycl_api
28-
template <int dimensions> class h_item {
28+
template <int Dimensions> class h_item {
2929
public:
30+
static constexpr int dimensions = Dimensions;
31+
3032
h_item() = delete;
3133

3234
h_item(const h_item &hi) = default;
3335

3436
h_item &operator=(const h_item &hi) = default;
3537

3638
/* -- public interface members -- */
37-
item<dimensions, false> get_global() const { return globalItem; }
39+
item<Dimensions, false> get_global() const { return globalItem; }
3840

39-
item<dimensions, false> get_local() const { return get_logical_local(); }
41+
item<Dimensions, false> get_local() const { return get_logical_local(); }
4042

41-
item<dimensions, false> get_logical_local() const { return logicalLocalItem; }
43+
item<Dimensions, false> get_logical_local() const { return logicalLocalItem; }
4244

43-
item<dimensions, false> get_physical_local() const { return localItem; }
45+
item<Dimensions, false> get_physical_local() const { return localItem; }
4446

45-
range<dimensions> get_global_range() const {
47+
range<Dimensions> get_global_range() const {
4648
return get_global().get_range();
4749
}
4850

49-
size_t get_global_range(int dimension) const {
50-
return get_global().get_range(dimension);
51+
size_t get_global_range(int Dimension) const {
52+
return get_global().get_range(Dimension);
5153
}
5254

53-
id<dimensions> get_global_id() const { return get_global().get_id(); }
55+
id<Dimensions> get_global_id() const { return get_global().get_id(); }
5456

55-
size_t get_global_id(int dimension) const {
56-
return get_global().get_id(dimension);
57+
size_t get_global_id(int Dimension) const {
58+
return get_global().get_id(Dimension);
5759
}
5860

59-
range<dimensions> get_local_range() const { return get_local().get_range(); }
61+
range<Dimensions> get_local_range() const { return get_local().get_range(); }
6062

61-
size_t get_local_range(int dimension) const {
62-
return get_local().get_range(dimension);
63+
size_t get_local_range(int Dimension) const {
64+
return get_local().get_range(Dimension);
6365
}
6466

65-
id<dimensions> get_local_id() const { return get_local().get_id(); }
67+
id<Dimensions> get_local_id() const { return get_local().get_id(); }
6668

67-
size_t get_local_id(int dimension) const {
68-
return get_local().get_id(dimension);
69+
size_t get_local_id(int Dimension) const {
70+
return get_local().get_id(Dimension);
6971
}
7072

71-
range<dimensions> get_logical_local_range() const {
73+
range<Dimensions> get_logical_local_range() const {
7274
return get_logical_local().get_range();
7375
}
7476

75-
size_t get_logical_local_range(int dimension) const {
76-
return get_logical_local().get_range(dimension);
77+
size_t get_logical_local_range(int Dimension) const {
78+
return get_logical_local().get_range(Dimension);
7779
}
7880

79-
id<dimensions> get_logical_local_id() const {
81+
id<Dimensions> get_logical_local_id() const {
8082
return get_logical_local().get_id();
8183
}
8284

83-
size_t get_logical_local_id(int dimension) const {
84-
return get_logical_local().get_id(dimension);
85+
size_t get_logical_local_id(int Dimension) const {
86+
return get_logical_local().get_id(Dimension);
8587
}
8688

87-
range<dimensions> get_physical_local_range() const {
89+
range<Dimensions> get_physical_local_range() const {
8890
return get_physical_local().get_range();
8991
}
9092

91-
size_t get_physical_local_range(int dimension) const {
92-
return get_physical_local().get_range(dimension);
93+
size_t get_physical_local_range(int Dimension) const {
94+
return get_physical_local().get_range(Dimension);
9395
}
9496

95-
id<dimensions> get_physical_local_id() const {
97+
id<Dimensions> get_physical_local_id() const {
9698
return get_physical_local().get_id();
9799
}
98100

99-
size_t get_physical_local_id(int dimension) const {
100-
return get_physical_local().get_id(dimension);
101+
size_t get_physical_local_id(int Dimension) const {
102+
return get_physical_local().get_id(Dimension);
101103
}
102104

103105
bool operator==(const h_item &rhs) const {
@@ -109,29 +111,29 @@ template <int dimensions> class h_item {
109111

110112
protected:
111113
friend class detail::Builder;
112-
friend class group<dimensions>;
113-
h_item(const item<dimensions, false> &GL, const item<dimensions, false> &L,
114-
const range<dimensions> &flexLocalRange)
114+
friend class group<Dimensions>;
115+
h_item(const item<Dimensions, false> &GL, const item<Dimensions, false> &L,
116+
const range<Dimensions> &flexLocalRange)
115117
: globalItem(GL), localItem(L),
116-
logicalLocalItem(detail::Builder::createItem<dimensions, false>(
118+
logicalLocalItem(detail::Builder::createItem<Dimensions, false>(
117119
flexLocalRange, L.get_id())) {}
118120

119-
h_item(const item<dimensions, false> &GL, const item<dimensions, false> &L)
121+
h_item(const item<Dimensions, false> &GL, const item<Dimensions, false> &L)
120122
: globalItem(GL), localItem(L),
121-
logicalLocalItem(detail::Builder::createItem<dimensions, false>(
123+
logicalLocalItem(detail::Builder::createItem<Dimensions, false>(
122124
localItem.get_range(), localItem.get_id())) {}
123125

124-
void setLogicalLocalID(const id<dimensions> &ID) {
126+
void setLogicalLocalID(const id<Dimensions> &ID) {
125127
detail::Builder::updateItemIndex(logicalLocalItem, ID);
126128
}
127129

128130
private:
129131
/// Describles physical workgroup range and current \c h_item position in it.
130-
item<dimensions, false> localItem;
132+
item<Dimensions, false> localItem;
131133
/// Describles global range and current \c h_item position in it.
132-
item<dimensions, false> globalItem;
134+
item<Dimensions, false> globalItem;
133135
/// Describles logical flexible range and current \c h_item position in it.
134-
item<dimensions, false> logicalLocalItem;
136+
item<Dimensions, false> logicalLocalItem;
135137
};
136138

137139
} // __SYCL_INLINE_VER_NAMESPACE(_V1)

0 commit comments

Comments
 (0)