DPCT1017#

Message#

The <SYCL API name> call is used instead of the <CUDA API name> call. These two calls do not provide exactly the same functionality. Check the potential precision and/or performance issues for the generated code.

Detailed Help#

SYCLomatic did not find an exact functional equivalent of the function in SYCL*, so it used the closest alternative. The replacement may impact your code precision and/or performance. Verify the code correctness/performance.

Suggestions to Fix#

Verify the code correctness/performance.

For example, this original CUDA* code:

1__global__ void k(float *out, float *in) {
2  *out = normf(3, in);
3}

results in the following migrated SYCL code:

1void k(float *out, float *in) {
2  /*
3  DPCT1017:0: The dpct::length call is used instead of the normf call. These two
4  calls do not provide exactly the same functionality. Check the potential
5  precision and/or performance issues for the generated code.
6  */
7  *out = dpct::length(in, 3);
8}

which is rewritten to:

1#include <sycl/ext/intel/math.hpp>
2void k(float *out, float *in) {
3  /*
4  If the extension API sycl::ext::intel::math::norm is available, the following
5  line can alternately be migrated to *out = sycl::ext::intel::math::norm(3, in);
6  */
7  *out = dpct::length(in, 3);
8}