Visible to Intel only — GUID: GUID-6B9C3E92-B215-455B-B0DE-BA1A9CC8BB77
Visible to Intel only — GUID: GUID-6B9C3E92-B215-455B-B0DE-BA1A9CC8BB77
DPCT1005
Message
The SYCL device version is different from CUDA Compute Compatibility. You may need to rewrite this code.
Detailed Help
Intel® DPC++ Compatibility Tool detected a usage of CUDA* Compute Capability-dependent logic in the original program.
DPC++ does not support CUDA Compute Capability. The logic in the generated code uses a version extracted from the cl::sycl::info::device::version, which is different than CUDA Compute Capability.
Suggestions to Fix
Review the logic and adjust it.
For example, this original CUDA code:
int main() {
cudaDeviceProp deviceProp;
int deviceID = 0;
cudaGetDeviceProperties(&deviceProp, deviceID);
if (deviceProp.major >= 3) {
// Use functionality from Compute Capability 3.0+
}
return 0;
}
results in the following migrated SYCL* code:
int main() {
dpct::device_info deviceProp;
dpct::dev_mgr::instance().get_device(0).get_device_info(deviceProp);
/*
DPCT1005:0: The SYCL device version is different from CUDA Compute
Compatibility. You may need to rewrite this code.
*/
if (deviceProp.get_major_version() >= 3) {
// Invoke kernel using __shfl() which requires Compute Capability 3.0+
}
return 0;
}
which is rewritten to:
int main() {
// sycl::select_from_group is supported in SYCL 2020.
if (SYCL_LANGUAGE_VERSION >= 202000) {
// Invoke kernel using sycl::select_from_group
...
}
return 0;
}