Skip to content

Commit aab0ba7

Browse files
[SYCL] Add replacement API in sycl::stream class (#8196)
SYCL 2020 deprecates the get_size() and get_max_statement_size() member functions in the stream class, adding replacements as size() and get_work_item_buffer_size(). The new functions have the same behavior as the deprecated ones. Signed-off-by: Larsen, Steffen <[email protected]>
1 parent b07bd8d commit aab0ba7

File tree

7 files changed

+45
-2
lines changed

7 files changed

+45
-2
lines changed

sycl/include/sycl/stream.hpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -757,8 +757,16 @@ class __SYCL_EXPORT __SYCL_SPECIAL_CLASS __SYCL_TYPE(stream) stream
757757
stream(size_t BufferSize, size_t MaxStatementSize, handler &CGH,
758758
const property_list &PropList);
759759

760+
size_t size() const noexcept;
761+
762+
size_t get_work_item_buffer_size() const;
763+
764+
__SYCL2020_DEPRECATED(
765+
"get_size() is deprecated since SYCL 2020. Please use size() instead.")
760766
size_t get_size() const;
761767

768+
__SYCL2020_DEPRECATED("get_max_statement_size() is deprecated since SYCL "
769+
"2020. Please use get_work_item_buffer_size() instead.")
762770
size_t get_max_statement_size() const;
763771

764772
size_t get_precision() const { return Precision; }

sycl/source/detail/stream_impl.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,13 @@ GlobalOffsetAccessorT stream_impl::accessGlobalOffset(handler &CGH) {
6565
return ReinterpretedBuf.get_access<sycl::access::mode::atomic>(
6666
CGH, range<1>(2), id<1>(0));
6767
}
68+
69+
size_t stream_impl::size() const noexcept { return BufferSize_; }
70+
71+
size_t stream_impl::get_work_item_buffer_size() const {
72+
return MaxStatementSize_;
73+
}
74+
6875
size_t stream_impl::get_size() const { return BufferSize_; }
6976

7077
size_t stream_impl::get_max_statement_size() const { return MaxStatementSize_; }

sycl/source/detail/stream_impl.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,14 @@ class __SYCL_EXPORT stream_impl {
5353
// Remove during next ABI breaking window
5454
void flush();
5555

56+
size_t size() const noexcept;
57+
58+
size_t get_work_item_buffer_size() const;
59+
60+
// TODO: Unusued. Remove when ABI-break is allowed.
5661
size_t get_size() const;
5762

63+
// TODO: Unusued. Remove when ABI-break is allowed.
5864
size_t get_max_statement_size() const;
5965

6066
template <typename propertyT> bool has_property() const noexcept {

sycl/source/stream.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,16 @@ stream::stream(size_t BufferSize, size_t MaxStatementSize, handler &CGH,
5454
detail::getSyclObjImpl(GlobalFlushBuf)->PerWI = true;
5555
}
5656

57-
size_t stream::get_size() const { return impl->get_size(); }
57+
size_t stream::size() const noexcept { return impl->get_size(); }
58+
59+
size_t stream::get_work_item_buffer_size() const {
60+
return impl->get_work_item_buffer_size();
61+
}
62+
63+
size_t stream::get_size() const { return size(); }
5864

5965
size_t stream::get_max_statement_size() const {
60-
return impl->get_max_statement_size();
66+
return get_work_item_buffer_size();
6167
}
6268

6369
bool stream::operator==(const stream &RHS) const { return (impl == RHS.impl); }

sycl/test/abi/sycl_symbols_linux.dump

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4134,6 +4134,8 @@ _ZNK4sycl3_V16detail11image_plain9get_countEv
41344134
_ZNK4sycl3_V16detail11image_plain9get_pitchEv
41354135
_ZNK4sycl3_V16detail11image_plain9get_rangeEv
41364136
_ZNK4sycl3_V16detail11stream_impl22get_max_statement_sizeEv
4137+
_ZNK4sycl3_V16detail11stream_impl25get_work_item_buffer_sizeEv
4138+
_ZNK4sycl3_V16detail11stream_impl4sizeEv
41374139
_ZNK4sycl3_V16detail11stream_impl8get_sizeEv
41384140
_ZNK4sycl3_V16detail12buffer_plain12get_propertyINS0_3ext6oneapi4cuda8property7context19use_primary_contextEEET_v
41394141
_ZNK4sycl3_V16detail12buffer_plain12get_propertyINS0_3ext6oneapi8property5queue12priority_lowEEET_v
@@ -4398,6 +4400,8 @@ _ZNK4sycl3_V16stream12has_propertyINS0_8property7context4cuda19use_primary_conte
43984400
_ZNK4sycl3_V16stream12has_propertyINS0_8property7no_initEEEbv
43994401
_ZNK4sycl3_V16stream12has_propertyINS0_8property9reduction22initialize_to_identityEEEbv
44004402
_ZNK4sycl3_V16stream22get_max_statement_sizeEv
4403+
_ZNK4sycl3_V16stream25get_work_item_buffer_sizeEv
4404+
_ZNK4sycl3_V16stream4sizeEv
44014405
_ZNK4sycl3_V16stream8get_sizeEv
44024406
_ZNK4sycl3_V16streameqERKS1_
44034407
_ZNK4sycl3_V16streamneERKS1_

sycl/test/abi/sycl_symbols_windows.dump

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1012,6 +1012,8 @@
10121012
?get_stream_mode@stream@_V1@sycl@@QEBA?AW4stream_manipulator@23@XZ
10131013
?get_wait_list@event@_V1@sycl@@QEAA?AV?$vector@Vevent@_V1@sycl@@V?$allocator@Vevent@_V1@sycl@@@std@@@std@@XZ
10141014
?get_width@stream@_V1@sycl@@QEBA_KXZ
1015+
?get_work_item_buffer_size@stream_impl@detail@_V1@sycl@@QEBA_KXZ
1016+
?get_work_item_buffer_size@stream@_V1@sycl@@QEBA_KXZ
10151017
?gpu_selector_v@_V1@sycl@@YAHAEBVdevice@12@@Z
10161018
?handleHostData@SYCLMemObjT@detail@_V1@sycl@@QEAAXAEBV?$function@$$A6AXPEAX@Z@std@@_K_N@Z
10171019
?handleHostData@SYCLMemObjT@detail@_V1@sycl@@QEAAXAEBV?$shared_ptr@X@std@@_K_N@Z
@@ -1175,6 +1177,8 @@
11751177
?size@SYCLMemObjT@detail@_V1@sycl@@QEBA_KXZ
11761178
?size@exception_list@_V1@sycl@@QEBA_KXZ
11771179
?size@image_impl@detail@_V1@sycl@@QEBA_KXZ
1180+
?size@stream_impl@detail@_V1@sycl@@QEBA_KXZ
1181+
?size@stream@_V1@sycl@@QEBA_KXZ
11781182
?split_string@detail@_V1@sycl@@YA?AV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@5@D@Z
11791183
?start@HostProfilingInfo@detail@_V1@sycl@@QEAAXXZ
11801184
?start_fusion@fusion_wrapper@experimental@codeplay@ext@_V1@sycl@@QEAAXXZ

sycl/test/warnings/sycl_2020_deprecations.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,5 +388,13 @@ int main() {
388388
});
389389
});
390390

391+
Queue.submit([&](sycl::handler &CGH) {
392+
sycl::stream Stream(1024, 80, CGH);
393+
// expected-warning@+1{{'get_size' is deprecated: get_size() is deprecated since SYCL 2020. Please use size() instead.}}
394+
size_t StreamSize = Stream.get_size();
395+
// expected-warning@+1{{'get_max_statement_size' is deprecated: get_max_statement_size() is deprecated since SYCL 2020. Please use get_work_item_buffer_size() instead.}}
396+
size_t StreamMaxStatementSize = Stream.get_max_statement_size();
397+
});
398+
391399
return 0;
392400
}

0 commit comments

Comments
 (0)