DPCT1075#
注
この診断メッセージは非推奨となり、インテル® DPC++ 互換性ツール 2023.0 以降では生成されなくなりました。
メッセージ#
cuFFT 呼び出しの移行は正しくない可能性があります。確認が必要です。
説明#
この警告は、以下のような場合に生成されます。
オリジナルコードで 1 つの cuFFT ハンドルが複数のストリームに関連付けられていますが、インテル® DPC++ 互換性ツールは、cuFFT 呼び出しで使用されているストリームを検出できませんでした。
移行したコードで 1 つ以上のコミット呼び出しを使用する必要がありますが、インテル® DPC++ 互換性ツールは正しいコミット呼び出しのセットを生成する方法を推測できませんでした。
例えば、以下のオリジナル CUDA* コードについて考えてみます。
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
このコードは、以下の SYCL* コードに移行されます。
1 /*
2 DPCT1075: Migration of cuFFT calls may be incorrect and requires review. (cuFFT 呼び出しの移行は正しくない可能性があります。確認が必要です。)3 */
4 plan->commit(*s2); // wrong queue is used
5 ... 6 dft::compute_forward (...);
7 ... // コミット呼び出しがありません
8 dft::compute_forward(...);
このコードを以下のように手動で調整します。
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(...);
修正方法の提案#
oneapi::mkl::dft::descriptor::commit()
呼び出しが正しく生成され、正しいキュー・パラメーターを使用していることを確認します。必要に応じて、不足しているコミット呼び出しを追加したり、キュー・パラメーターを調整するなどして、コードを修正します。
詳細は、descriptor<precision, domain>::commit function (英語) を参照してください。