DPCT1028#

Message#

The <API name> was not migrated because <reason>.

Detailed Help#

SYCLomatic was not able to recognize the parameter value used as a CUDA* device attribute.

Suggestions to Fix#

Redesign the code logic to remove use of the device attribute.

For example, this original CUDA code:

1 void foo(int *result, CUdevice device) {
2   cuDeviceGetAttribute(result, CU_DEVICE_ATTRIBUTE_GPU_OVERLAP, device);
3 }

results in the following migrated SYCL* code:

1 void foo(int *result, int device) {
2   /*
3   DPCT1028:0: The cuDeviceGetAttribute was not migrated because parameter
4   CU_DEVICE_ATTRIBUTE_GPU_OVERLAP is unsupported.
5   */
6   cuDeviceGetAttribute(result, CU_DEVICE_ATTRIBUTE_GPU_OVERLAP, device);
7 }

which is rewritten to:

1 void foo(int *result, int device) {
2   // Assume the HW supports copy memory and execute a kernel concurrently
3   *result = 1;
4 }