Diagnostics Reference#

This topic gives you all of the diagnostic reference numbers, messages, detailed help, and suggestion to fix your errors.

ID

Message

DPCT1000

Error handling if-stmt was detected but could not be rewritten.

DPCT1001

The statement could not be removed.

DPCT1002

Special case error handling if-stmt was detected. You may need to rewrite this code.

DPCT1003

Migrated API does not return error code. (*, 0) is inserted. You may need to rewrite this code.

DPCT1004

REMOVED.

Compatible SYCL code could not be generated.

DPCT1005

The SYCL device version is different from CUDA Compute Compatibility. You may need to rewrite this code.

DPCT1006

SYCL does not provide a standard API to differentiate between integrated and discrete GPU devices.

DPCT1007

Migration of <API name> is not supported.

DPCT1008

<function name> function is not defined in SYCL. This is a hardware-specific feature. Consult with your hardware vendor to find a replacement.

DPCT1009

SYCL uses exceptions to report errors and does not use the error codes. The original code was commented out and a warning string was inserted. You need to rewrite this code.

DPCT1010

SYCL uses exceptions to report errors and does not use the error codes. The call was replaced with 0. You need to rewrite this code.

DPCT1011

The tool detected overloaded operators for built-in vector types, which may conflict with the SYCL 2020 standard operators (see 4.14.2.1 Vec interface). The tool inserted a namespace to avoid the conflict. Use SYCL 2020 standard operators instead.

DPCT1012

Detected kernel execution time measurement pattern and generated an initial code for time measurements in SYCL. You can change the way time is measured depending on your goals.

DPCT1013

The rounding mode could not be specified and the generated code may have different accuracy than the original code. Verify the correctness. SYCL math built-in function rounding mode is aligned with OpenCL C 1.2 standard.

DPCT1014

The flag and priority options are not supported for SYCL queues. The output parameter(s) are set to 0.

DPCT1015

Output needs adjustment.

DPCT1016

REMOVED.

The <API name> was not migrated, because parameter(s) <parameter name a> and/or <parameter name b> could not be evaluated, or because <parameter name a> is not equal to <parameter name b>. Rewrite this code manually.

DPCT1017

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.

DPCT1018

The <API name> was migrated, but due to <reason>, the generated code performance may be sub-optimal.

DPCT1019

local_mem_size in SYCL is not a complete equivalent of <variable name> in CUDA. You may need to adjust the code.

DPCT1020

Migration of <api name>, if it is called from __global__ or __device__ function, is not supported. You may need to redesign the code to use the host-side <api name> instead, which submits this call to the SYCL queue automatically.

DPCT1021

Migration of cublasHandle_t in __global__ or __device__ function is not supported. You may need to redesign the code.

DPCT1022

There is no exact match between the maxGridSize and the max_nd_range size. Verify the correctness of the code.

DPCT1023

The SYCL sub-group does not support mask options for <API name>. <Suggested fix>.

DPCT1024

The original code returned the error code that was further consumed by the program logic. This original code was replaced with 0. You may need to rewrite the program logic consuming the error code.

DPCT1025

The SYCL queue is created ignoring the flag and priority options.

DPCT1026

The call to <API name> was removed because <reason>.

DPCT1027

The call to <API name> was replaced with 0 because <reason>.

DPCT1028

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

DPCT1029

SYCL currently does not support getting device resource limits. The output parameter(s) are set to 0.

DPCT1030

SYCL currently does not support inter-process communication (IPC) operations. You may need to rewrite the code.

DPCT1031

Memory access across peer devices is an implementation-specific feature which may not be supported by some SYCL backends and compilers. The output parameter(s) are set to 0. You can migrate the code with peer access extension if you do not specify -no-dpcpp-extensions=peer_access.

DPCT1032

A different random number generator is used. You may need to adjust the code.

DPCT1033

Migrated code uses a basic Sobol generator. Initialize oneapi::mkl::rng::sobol generator with user-defined direction numbers to use it as Scrambled Sobol generator.

DPCT1034

Migrated API does not return an error code. 0 is returned in the lambda. You may need to rewrite this code.

DPCT1035

All SYCL devices can be used by the host to submit tasks. You may need to adjust this code.

DPCT1036

REMOVED.

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

DPCT1037

Rewrite this code using <library name> with SYCL.

DPCT1038

When the kernel function name is used as a macro argument, the migration result may be incorrect. You need to verify the definition of the macro.

DPCT1039

The generated code assumes that <parameter name> points to the global memory address space. If it points to a local memory address space, replace <function name> with <function name>.

DPCT1040

Use sycl::stream instead of printf if your code is used on the device.

DPCT1041

SYCL uses exceptions to report errors, it does not use error codes. 0 is used instead of an error code in <statement name> statement. You may need to rewrite this code.

DPCT1042

The size of the arguments passed to the SYCL kernel exceeds the minimum size limit (1024) for a non-custom SYCL device. You can get the hardware argument size limit by querying info::device::max_parameter_size. You may need to rewrite this code if the size of the arguments exceeds the hardware limit.

DPCT1043

The version-related API is different in SYCL. An initial code was generated, but you need to adjust it.

DPCT1044

<BaseClass1> was removed because <BaseClass2> has been deprecated in C++11. You may need to remove references to typedefs from <BaseClass1> in the class definition.

DPCT1045

Migration is only supported for this API for the <matrix type> sparse matrix type. You may need to adjust the code.

DPCT1046

REMOVED.

The <original API name> was not migrated because <reason>. You need to adjust the code.

DPCT1047

The meaning of <parameter name> in the <API name> is different from the <API name>. You may need to check the migrated code.

DPCT1048

The original value <macro name> is not meaningful in the migrated code and was removed or replaced with 0. You may need to check the migrated code.

DPCT1049

The work-group size passed to the SYCL kernel may exceed the limit. To get the device limit, query info::device::max_work_group_size. Adjust the work-group size if needed.

DPCT1050

The template argument of the <type> could not be deduced. You need to update this code.

DPCT1051

SYCL does not support a device property functionally compatible with <property name>. It was migrated to <migrated token>. You may need to adjust the value of <migrated token> for the specific device.

DPCT1052

SYCL does not support the member access for a volatile qualified vector type. The volatile qualifier was removed. You may need to rewrite the code.

DPCT1053

Migration of device assembly code is not supported.

DPCT1054

The type of variable <variable name> is declared in device function with the name <type>. Adjust the code to make the <type> declaration visible at the accessor declaration point.

DPCT1055

Vector types with size 1 are migrated to the corresponding fundamental types, which cannot be inherited. You need to rewrite the code.

DPCT1056

The use of <variable name> in device code was not detected. If this variable is also used in device code, you need to rewrite the code.

DPCT1057

Variable <variable name> was used in host code and device code. <variable name> type was updated to be used in SYCL device code and new <host variable name> was generated to be used in host code. You need to update the host code manually to use the new <host variable name>.

DPCT1058

<API Name> is not migrated because it is not called in the code.

DPCT1059

SYCL only supports 4-channel image format. Adjust the code.

DPCT1060

SYCL range can only be a 1D, 2D, or 3D vector. Adjust the code.

DPCT1061

Call to <macro name> macro was removed because it only contains code, which is unnecessary in SYCL.

DPCT1062

SYCL Image doesn’t support normalized read mode.

DPCT1063

Advice parameter is device-defined <additional action>. You may need to adjust it.

DPCT1064

Migrated <function name> call is used in a macro/template definition and may not be valid for all macro/template uses. Adjust the code.

DPCT1065

Consider replacing sycl::<...>::barrier() with sycl::<...>::barrier(sycl::access::fence_space::local_space) for better performance if there is no access to global memory.

DPCT1066

REMOVED.

Input/Output distance are migrated to FWD/BWD_DISTANCE. You may need to update the code manually.

DPCT1067

The <parameter name> parameter could not be migrated. You may need to update the code manually.

DPCT1068

REMOVED.

The value of <argument type> could not be deduced. You need to update <placeholder> manually.

DPCT1069

The argument <argument name> of the kernel function contains virtual pointer(s), which cannot be dereferenced. Try to migrate the code with usm-level=restricted.

DPCT1070

<pointer variable name> is allocated by dpct::dpct_malloc. Use dpct::get_host_ptr<type>(pointer variable name) to access the pointer from the host code.

DPCT1071

REMOVED.

The placement of the FFT computational function could not be deduced, so it is assumed out-of-place. You may need to adjust the code.

DPCT1072

SYCL currently does not support getting the available memory on the current device. You may need to adjust the code.

DPCT1073

The field values of parameter <parameter name> could not be deduced, so the call was not migrated. You need to update this code manually.

DPCT1074

The SYCL Image class does not support some of the flags used in the original code. Unsupported flags were ignored. Data read from SYCL Image could not be normalized as specified in the original code.

DPCT1075

REMOVED.

Migration of cuFFT calls may be incorrect and require review.

DPCT1076

The device attribute was not recognized. You may need to adjust the code.

DPCT1077

<macro name> redefines a standard SYCL type, which may cause conflicts.

DPCT1078

Consider replacing memory_order::acq_rel with memory_order::seq_cst for correctness if strong memory order restrictions are needed.

DPCT1079

REMOVED.

Replace “dpct_placeholder” with the file path of the dynamic library.

DPCT1080

Variadic functions cannot be called in a SYCL kernel or by functions called by the kernel. You may need to adjust the code.

DPCT1081

The generated code assumes that <pointer variable> points to the global memory address space. If it points to a local or private memory address space, replace address_space::global with address_space::local or address_space::private.

DPCT1082

Migration of <type name> type is not supported.

DPCT1083

The size of <placeholder> in the migrated code may be different from the original code. Check that the allocated memory size in the migrated code is correct.

DPCT1084

The function call <function name> has multiple migration results in different template instantiations that could not be unified. You may need to adjust the code.

DPCT1085

The function <function name> requires sub-group size to be <size>, while other sub-group functions in the same SYCL kernel require a different sub-group size. You may need to adjust the code.

DPCT1086

__activemask() is migrated to 0xffffffff. You may need to adjust the code.

DPCT1087 [UPDATE]

SYCL currently does not support cross group synchronization. You can specify --use-experimental-features=root-group to use the root-group to migrate <synchronization API call>.

DPCT1088

The macro definition has multiple migration results in the dimension of free queries function that could not be unified. You may need to modify the code.

DPCT1089

The value of the sub-group size attribute argument <argument name> cannot be evaluated. Replace dpct_placeholder with an integral constant expression.

DPCT1090

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.

DPCT1091

The function dpct::segmented_reduce only supports DPC++ native binary operation. Replace “dpct_placeholder” with a DPC++ native binary operation.

DPCT1092

Consider replacing work-group size 128 with different value for specific hardware for better performance.

DPCT1093

The <Device ID> device may be not the one intended for use. Adjust the selected device if needed.

DPCT1094

Content contains misleading bidirectional Unicode characters.

DPCT1095

The identifier <Identifier A> is confusable with another identifier <Identifier B>.

DPCT1096

The right-most dimension of the work-group used in the SYCL kernel that calls this function may be less than <value of kernel sub-group size attribute>. The function <help function name> may return an unexpected result on the CPU device. Modify the size of the work-group to ensure that the value of the right-most dimension is a multiple of <value of kernel sub-group size attribute>.

DPCT1097

The function <backward function name> may require the workspace used to save intermediate results from function <forward function name>. By default, a workspace from engine_ext is selected according to the source data pointer, but this may be incorrect and cause a workspace data race. You may need to rewrite this code.

DPCT1098

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.

DPCT1099

Verify if the default value of the direction and placement used in the function <function name> aligns with the related compute function call.

DPCT1100

Currently the DFT external workspace feature in the Intel® oneAPI Math Kernel Library (oneMKL) is only supported on GPU devices. Use the internal workspace if your code should run on non-GPU devices.

DPCT1101

<expression text> expression was replaced with a value. Modify the code to use the original expression, provided in comments, if it is correct.

DPCT1102

Zero-length arrays are not permitted in SYCL device code.

DPCT1103

<expression text> should be a dynamic library. The dynamic library should supply wrapped kernel functions.

DPCT1104

<expression text> should point to a dynamic library loaded in memory. The dynamic library should supply wrapped kernel functions.

DPCT1105

The mcg59 random number generator is used. The subsequence argument <expression> is ignored. You need to verify the migration.

DPCT1106

<function name> was migrated with the Intel extensions for device information which may not be supported by all compilers or runtimes. You may need to adjust the code.

DPCT1107

Migration for this overload of <API Name> is not supported.

DPCT1108

<original API> was migrated with the experimental feature <feature name> which may not be supported by all compilers or runtimes. You may need to adjust the code.

DPCT1109

<language feature> cannot be called in SYCL device code. You need to adjust the code.

DPCT1110

The total declared local variable size in device function <function name> exceeds 128 bytes and may cause high register pressure. Consult with your hardware vendor to find the total register size available and adjust the code, or use smaller sub-group size to avoid high register pressure.

DPCT1111

Please verify the input arguments of <migrated API> base on the target function <kernel function name>.

DPCT1112

If the filter mode is set to linear, the behavior of image “read” may be different from tex1Dfetch in the original code. You may need to adjust the code.

DPCT1113

Consider replacing sycl::nd_item::barrier(sycl::access::fence_space::local_space) with sycl::nd_item::barrier() if function <function name> is called in a multidimensional kernel.

DPCT1114

cudaMemcpy is migrated to asynchronization memcpy, assuming in the original code the source host memory is pageable memory. If the memory is not pageable, call wait() on event return by memcpy API to ensure synchronization behavior.

DPCT1115

The sycl::ext::oneapi::group_local_memory_for_overwrite is used to allocate group-local memory at the none kernel functor scope of a work-group data parallel kernel. You may need to adjust the code.

DPCT1118

SYCL group functions and algorithms must be encountered in converged control flow.

DPCT1119

Migration of <type or API> is not supported, please try to remigrate with option: <option name>.

DPCT1120

<variable name> is in device memory and passed into device functions as an extra argument. As <variable name> is a template variable here, then the declaration of an extra parameter in device functions, the variable referenced in command group, and device functions may be incorrect as a result. You may need to adjust the code.

DPCT1121

Make sure that the <argument> which is used in the SYCL group function/algorithm is initialized.

DPCT1122

<original type>’ is migrated to ‘<migrated type>’ in the template declaration; it may cause template function or class redefinition; please adjust the code.

DPCT1123

The kernel function pointer cannot be used in the device code. You need to call the kernel function with the correct argument(s) directly. According to the kernel function definition, adjusting the dimension of the sycl::nd_item may also be required

DPCT1124

<API name> is migrated to asynchronous memcpy API. While the origin API might be synchronous, it depends on the type of operand memory, so you may need to call wait() on event return by memcpy API to ensure synchronization behavior.

DPCT1125

The type “<type name>” defined in function “<function name>” is used as the parameter type in all functions in the call path from the corresponding sycl::handler::parallel_for() to the current function. You may need to adjust the definition location of the type.

DPCT1126

The type “<type name>” defined in function “<function name>” is used as the parameter type in all functions in the call path from the sycl::handler::parallel_for() to the function “<function name>”. You may need to adjust the definition location of the type.

DPCT1127

The constant compile-time initialization for device_global is supported when compiling with C++20. You may need to adjust the compile commands.

DPCT1128

The type “<type name>” is not device copyable for <reason>. It is used in the SYCL kernel, please rewrite the code.

DPCT1129

The type “<type name>” is used in the SYCL kernel, but it is not device copyable. The sycl::is_device_copyable specialization has been added for this type. Please review the code.

DPCT1130

SYCL 2020 standard does not support dynamic parallelism (launching kernel in device code). Please rewrite the code.

DPCT1131

The migration of “<API name>” is not currently supported with SYCLcompat. Please adjust the code manually.

DPCT1132

SYCL 2020 does not support accessing the <property name> for the kernel. The API is replaced with member variable “<variable name>”. Please set the appropriate value for “<variable name>”.