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}