DPCT1090#

Message#

SYCL does not support the device property that would be functionally compatible with <property name>. It was not migrated. You need to rewrite the code.

Detailed Help#

Not all CUDA* device properties have functionally compatible equivalents in SYCL*. These device properties are not migrated.

Suggestions to Fix#

Review and rewrite the code manually.

For example, this original CUDA* code:

1void foo(int t) {
2  cudaDeviceProp properties;
3  cudaGetDeviceProperties(&properties, 0);
4  int a = properties.regsPerBlock;
5  if (a < t)
6    code path 1
7  else
8    code path 2
9}

results in the following migrated SYCL code:

 1void foo() {
 2  dpct::device_info properties;
 3  dpct::get_device_info(properties, dpct::dev_mgr::instance().get_device(0));
 4  /*
 5  DPCT1090:0: SYCL does not support the device property that would be
 6  functionally compatible with regsPerBlock. It was not migrated. You need to
 7  rewrite the code.
 8  */
 9  int a = properties.regsPerBlock;
10  if (a < t)
11    code path 1
12  else
13    code path 2
14}

which is rewritten to:

1void foo() {
2  dpct::device_info properties;
3  dpct::get_device_info(properties, dpct::dev_mgr::instance().get_device(0));
4
5  // You need apply code path1 or path2 depending on the num of registers available on
6  // the target hardware.
7  code path 1/2
8}