DPCT1014#
Message#
The flag and priority options are not supported for SYCL queues. The output parameter(s) are set to 0.
Or
The <CUDA event property name> is not supported for SYCL event. The output parameter(s) is set to 0.
Detailed Help#
The flag, priority options, or CUDA event property is not supported in the SYCL* queue. You may need to rewrite the generated code.
Suggestions to Fix#
For example, this original CUDA* code:
1void foo(cudaStream_t old_stream, cudaStream_t *new_stream) {
2 unsigned int flag;
3 cudaStreamGetFlags(old_stream, &flag);
4 cudaStreamCreateWithFlags(new_stream, flag);
5}
6unsigned bar(bool f) {
7 unsigned flags = CU_EVENT_DISABLE_TIMING;
8 if (f)
9 flags |= CU_EVENT_BLOCKING_SYNC;
10 return flags;
11}
results in the following migrated SYCL code:
1void foo(dpct::queue_ptr old_stream, dpct::queue_ptr *new_stream) {
2 unsigned int flag;
3 /*
4 DPCT1014:0: The flag and priority options are not supported for SYCL queues.
5 The output parameter(s) are set to 0.
6 */
7 *(&flag) = 0;
8 /*
9 DPCT1025:1: The SYCL queue is created ignoring the flag and priority options.
10 */
11 *(new_stream) = dpct::get_current_device().create_queue();
12}
13unsigned bar(bool f) {
14 /*
15 DPCT1014:2: The CU_EVENT_DISABLE_TIMING is
16 not supported for SYCL event. The
17 output parameter(s) is set to 0.
18 */
19 unsigned flags = 0;
20 if (f)
21 /*
22 DPCT1014:3: The CU_EVENT_BLOCKING_SYNC is
23 not supported for SYCL event. The
24 output parameter(s) is set to 0.
25 */
26 flags |= 0;
27} return flags;
which needs to be rewritten to:
1void foo(dpct::queue_ptr old_stream, dpct::queue_ptr *new_stream) {
2 *(new_stream) = dpct::get_current_device().create_queue();
3}
4
5unsigned bar(bool f){
6 return 0;
7}