This diagnostic message is no longer generated by SYCLomatic.


Migration of cuFFT calls may be incorrect and require review.

Detailed Help#

The warning is generated in the following cases:

  1. In the original code one cuFFT handle may be associated with different streams, but SYCLomatic could not detect which stream was used by cuFFT calls.

  2. In the migrated code one or more commit calls need to be used, but the SYCLomatic could not deduce how to generate the correct set of commit calls.

For example, this original CUDA* code:

1  cufftPlan1d(plan, ...);
2  cufftExecR2C(plan, ...); // this call is using default stream
3  cufftSetStream(plan, s2);
4  cufftExecR2C(plan, ...); // this call is using s2 stream

results in the following migrated SYCL* code:

1  /*
2  DPCT1075:0: Migration of cuFFT calls may be incorrect and requires review.
3  */
4  plan->commit(*s2); // wrong queue is used
5  ...
6  dft::compute_forward (...);
7  ...                                  // missing commit call
8  dft::compute_forward(...);

which is manually adjusted to:

1  plan->commit(dpct::get_default_queue()); // using default queue
2  ...
3  dft::compute_forward (...);
4  ...
5  plan->commit(*s2); // added new commit call with *s2 queue
6  dft::compute_forward(...);

Suggestions to Fix#

Check that oneapi::mkl::dft::descriptor::commit() calls were generated correctly and are using the correct queue parameter. Fix the code if needed by adding missing commit calls and adjusting queue parameters.

Refer to the descriptor<precision, domain>::commit function for more information.