DPCT1098#
Message#
The <expression text> expression is used instead of the <function name> call. These two expressions do not provide the exact same functionality. Check the generated code for potential precision and/or performance issues.
Detailed Help#
No exact functional equivalent of the function was found in SYCL* so an expression composed of other functions was used. Code precision and/or performance may not be as expected. Verify the code for correctness and performance.
Suggestions to Fix#
Verify the code for correctness and performance.
For example, this original CUDA* code:
1__device__ void device(float *f) {
2 float a = __ldg(f);
3}
results in the following migrated SYCL code:
1void device(float *f) {
2 /*
3 DPCT1098:0: The '*' expression is used instead of the __ldg call. These two
4 expressions do not provide the exact same functionality. Check the generated
5 code for potential precision and/or performance issues.
6 */
7 float a = *f;
8}
which is rewritten to:
1void device(float *f) {
2#if defined(__NVPTX__) && defined(__SYCL_DEVICE_ONLY__)
3 float a = sycl::ext::oneapi::experimental::cuda::ldg(f);
4#else
5 float a = *f;
6#endif
7}