Skip to content

Commit c221043

Browse files
the-slow-onezhiweij1
andauthored
[SYCLomatic] Add migration for default stream semantics in cuStreamAddCallback (#2676)
Co-authored-by: Jiang, Zhiwei <zhiwei.jiang@intel.com>
1 parent 7e52cd5 commit c221043

2 files changed

Lines changed: 16 additions & 5 deletions

File tree

clang/lib/DPCT/RulesLang/APINamesStream.inc

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,18 @@ CONDITIONAL_FACTORY_ENTRY(
2525

2626
ASSIGNABLE_FACTORY(HEADER_INSERT_FACTORY(
2727
HeaderType::HT_Future,
28-
CALL_FACTORY_ENTRY("cuStreamAddCallback",
29-
CALL("std::async",
30-
LAMBDA(true, false,
31-
MEMBER_CALL(ARG(0), true, "wait"),
32-
CALL(ARG(1), ARG(0), ARG("0"), ARG(2)))))))
28+
CONDITIONAL_FACTORY_ENTRY(
29+
makeCheckNot(CheckArgIsDefaultCudaStream(0)),
30+
CALL_FACTORY_ENTRY(
31+
"cuStreamAddCallback",
32+
CALL("std::async",
33+
LAMBDA(true, false, MEMBER_CALL(ARG(0), true, "wait"),
34+
CALL(ARG(1), ARG(0), ARG("0"), ARG(2))))),
35+
CALL_FACTORY_ENTRY(
36+
"cuStreamAddCallback",
37+
CALL("std::async",
38+
LAMBDA(true, false, MEMBER_CALL(QUEUESTR, false, "wait"),
39+
CALL(ARG(1), QUEUEPTRSTR, ARG("0"), ARG(2))))))))
3340

3441
ASSIGNABLE_FACTORY(FEATURE_REQUEST_FACTORY(
3542
HelperFeatureEnum::device_ext,

clang/test/dpct/driver-stream-and-event.cu

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,13 @@ void test_stream() {
140140

141141
// CHECK dpct::queue_callback cbptr = callback<char>;
142142
CUstreamCallback cbptr = callback<char>;
143+
143144
// CHECK: std::async([&]() { hStream->wait(); cbptr(hStream, 0, data); });
144145
cuStreamAddCallback(hStream, cbptr, data, flag);
145146

147+
// CHECK: std::async([&]() { q_ct1.wait(); cbptr(&q_ct1, 0, data); });
148+
cuStreamAddCallback(0, cbptr, data, flag);
149+
146150
//CHECK: /*
147151
//CHECK-NEXT: DPCT1026:{{[0-9]+}}: The call to cuStreamAttachMemAsync was removed because SYCL currently does not support associating USM with a specific queue.
148152
//CHECK-NEXT: */

0 commit comments

Comments
 (0)