Skip to content

Commit f2e864c

Browse files
[NFCI][SYCL] Reduce dependencies of <sycl/range.hpp>
North star goal: compile ```cpp namespace syclext = sycl::ext::oneapi; namespace syclexp = sycl::ext::oneapi::experimental; SYCL_EXT_ONEAPI_FUNCTION_PROPERTY((syclexp::nd_range_kernel<1>)) void foo(int *p) { size_t id = syclext::this_work_item::get_nd_item<1>().get_global_linear_id(); p[id] = 0; } ``` as fast as possible by limiting number of necessary includes. `item`/`nd_item`/`nd_range`/etc. are all dependent on `range`, so the first tiny step would be to speed up its compilation as much as possible.
1 parent b239891 commit f2e864c

File tree

7 files changed

+26
-25
lines changed

7 files changed

+26
-25
lines changed

sycl/include/sycl/buffer.hpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,16 @@ template <typename SYCLObjT> class weak_object;
6262
} // namespace ext::oneapi
6363

6464
namespace detail {
65+
// XPTI helpers for creating array from a range.
66+
inline std::array<size_t, 3> rangeToArray(const range<3> &r) {
67+
return {r[0], r[1], r[2]};
68+
}
69+
inline std::array<size_t, 3> rangeToArray(const range<2> &r) {
70+
return {r[0], r[1], 0};
71+
}
72+
inline std::array<size_t, 3> rangeToArray(const range<1> &r) {
73+
return {r[0], 0, 0};
74+
}
6575

6676
class buffer_impl;
6777

sycl/include/sycl/ext/oneapi/experimental/graph/node.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
namespace sycl {
2222
inline namespace _V1 {
23+
class event;
2324
namespace ext {
2425
namespace oneapi {
2526
namespace experimental {

sycl/include/sycl/range.hpp

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@
88

99
#pragma once
1010

11-
#include <sycl/detail/array.hpp> // for array
12-
#include <sycl/detail/helpers.hpp> // for Builder
11+
#include <sycl/detail/array.hpp> // for array
1312

14-
#include <array> // for array
1513
#include <stddef.h> // for size_t
1614
#include <type_traits> // for enable_if_t
1715

1816
namespace sycl {
1917
inline namespace _V1 {
2018
template <int Dimensions> class id;
2119

20+
namespace detail {
21+
class Builder;
22+
}
23+
2224
/// Defines the iteration domain of either a single work-group in a parallel
2325
/// dispatch, or the overall Dimensions of the dispatch.
2426
///
@@ -229,18 +231,5 @@ range(size_t, size_t)->range<2>;
229231
range(size_t, size_t, size_t)->range<3>;
230232
#endif
231233

232-
namespace detail {
233-
// XPTI helpers for creating array from a range.
234-
inline std::array<size_t, 3> rangeToArray(const range<3> &r) {
235-
return {r[0], r[1], r[2]};
236-
}
237-
inline std::array<size_t, 3> rangeToArray(const range<2> &r) {
238-
return {r[0], r[1], 0};
239-
}
240-
inline std::array<size_t, 3> rangeToArray(const range<1> &r) {
241-
return {r[0], 0, 0};
242-
}
243-
} // namespace detail
244-
245234
} // namespace _V1
246235
} // namespace sycl

sycl/include/syclcompat/traits.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,9 @@
2929
#include <cstddef>
3030
#include <sycl/ext/oneapi/properties/properties.hpp>
3131
#include <sycl/ext/oneapi/properties/property_value.hpp>
32-
#include <sycl/range.hpp>
32+
#include <sycl/nd_item.hpp>
3333
#include <sycl/nd_range.hpp>
34+
#include <sycl/range.hpp>
3435
#include <type_traits>
3536

3637
namespace [[deprecated("syclcompat is deprecated")]] syclcompat {

sycl/test/abi/layout_accessors_device.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ SYCL_EXTERNAL void hostAcc(accessor<int, 1, access::mode::read, access::target::
2020
// CHECK-NEXT: 0 | class sycl::detail::accessor_common<int, 1, sycl::access::mode::read, sycl::access::target::device, sycl::access::placeholder::false_t> (base) (empty)
2121
// CHECK-NEXT: 0 | class sycl::detail::OwnerLessBase<class sycl::accessor<int, 1, sycl::access::mode::read, sycl::access::target::device> > (base) (empty)
2222
// CHECK-NEXT: 0 | class sycl::detail::AccessorImplDevice<1> impl
23-
// CHECK-NEXT: 0 | class sycl::id<1> Offset
23+
// CHECK-NEXT: 0 | class sycl::id<> Offset
2424
// CHECK-NEXT: 0 | class sycl::detail::array<> (base)
2525
// CHECK-NEXT: 0 | size_t[1] common_array
2626
// CHECK-NEXT: 8 | class sycl::range<> AccessRange
@@ -52,7 +52,7 @@ SYCL_EXTERNAL void hostAcc(accessor<int, 1, access::mode::read_write, access::ta
5252
// CHECK-NEXT: 8 | class sycl::range<> MemRange
5353
// CHECK-NEXT: 8 | class sycl::detail::array<> (base)
5454
// CHECK-NEXT: 8 | size_t[1] common_array
55-
// CHECK-NEXT: 16 | class sycl::id<1> Offset
55+
// CHECK-NEXT: 16 | class sycl::id<> Offset
5656
// CHECK-NEXT: 16 | class sycl::detail::array<> (base)
5757
// CHECK-NEXT: 16 | size_t[1] common_array
5858
// CHECK-NEXT: 24 | ConcreteASPtrType MData
@@ -74,7 +74,7 @@ SYCL_EXTERNAL void hostAcc(local_accessor<int, 1> Acc) {
7474
// CHECK-NEXT: 8 | class sycl::range<> MemRange
7575
// CHECK-NEXT: 8 | class sycl::detail::array<> (base)
7676
// CHECK-NEXT: 8 | size_t[1] common_array
77-
// CHECK-NEXT: 16 | class sycl::id<1> Offset
77+
// CHECK-NEXT: 16 | class sycl::id<> Offset
7878
// CHECK-NEXT: 16 | class sycl::detail::array<> (base)
7979
// CHECK-NEXT: 16 | size_t[1] common_array
8080
// CHECK-NEXT: 24 | ConcreteASPtrType MData

sycl/test/gdb/accessors-device.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ int main() {
1717
// AccessorImplDevice must have MemRange and Offset fields
1818

1919
// CHECK: 0 | class sycl::detail::AccessorImplDevice<1>
20-
// CHECK-NEXT: 0 | class sycl::id<1> Offset
20+
// CHECK-NEXT: 0 | class sycl::id<> Offset
2121
// CHECK-NEXT: 0 | class sycl::detail::array<> (base)
2222
// CHECK-NEXT: 0 | size_t[1] common_array
2323
// CHECK-NEXT: 8 | class sycl::range<> AccessRange
@@ -35,7 +35,7 @@ int main() {
3535
// CHECK-NEXT: 0 | class sycl::detail::accessor_common<int, 1, sycl::access::mode::read_write, sycl::access::target::device, sycl::access::placeholder::false_t> (base) (empty)
3636
// CHECK-NEXT: 0 | class sycl::detail::OwnerLessBase<class sycl::accessor<int, 1, sycl::access::mode::read_write, sycl::access::target::device, sycl::access::placeholder::false_t> > (base) (empty)
3737
// CHECK-NEXT: 0 | class sycl::detail::AccessorImplDevice<1> impl
38-
// CHECK-NEXT: 0 | class sycl::id<1> Offset
38+
// CHECK-NEXT: 0 | class sycl::id<> Offset
3939
// CHECK-NEXT: 0 | class sycl::detail::array<> (base)
4040
// CHECK-NEXT: 0 | size_t[1] common_array
4141
// CHECK-NEXT: 8 | class sycl::range<> AccessRange

sycl/test/gdb/printers.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ sycl::item<2, false> item_wo_offset =
7272
// CHECK: 24 | platform_impl & MPlatform
7373

7474
// DEVICE: 0 | class sycl::detail::AccessorImplDevice<1>
75-
// DEVICE: 0 | class sycl::id<1> Offset
75+
// DEVICE: 0 | class sycl::id<> Offset
7676
// DEVICE: 8 | class sycl::range<> AccessRange
7777
// DEVICE: 16 | class sycl::range<> MemRange
7878

@@ -105,10 +105,10 @@ sycl::item<2, false> item_wo_offset =
105105
// CHECK: 0 | class sycl::range<> MExtent
106106
// CHECK: 0 | class sycl::detail::array<> (base)
107107
// CHECK: 0 | size_t[1] common_array
108-
// CHECK: 8 | class sycl::id<1> MIndex
108+
// CHECK: 8 | class sycl::id<> MIndex
109109
// CHECK: 8 | class sycl::detail::array<> (base)
110110
// CHECK: 8 | size_t[1] common_array
111-
// CHECK: 16 | class sycl::id<1> MOffset
111+
// CHECK: 16 | class sycl::id<> MOffset
112112
// CHECK: 16 | class sycl::detail::array<> (base)
113113
// CHECK: 16 | size_t[1] common_array
114114

0 commit comments

Comments
 (0)