Intel® FPGA SDK for OpenCL™ Pro Edition: Version 22.4 Release Notes

ID 683177
Date 12/19/2022
Public

1.4. Known Issues and Workarounds

This section provides information about known issues that affect the Intel® FPGA SDK for OpenCL™ and the Intel® FPGA RTE for OpenCL Version 22.4.

Description Workaround
When compiling an OpenCL™ kernel containing calls to library functions containing HLS tasks, incremental compile may trigger recompilation for unaffected kernels. No known workaround. However, this is not a functional bug. It may result in a more conservative incremental compile.
The emulator runtime emits an assertion error if a kernel is enqueued 16,000 times. Do not enqueue a kernel more than 16,000 times.

OpenCL™ kernels with names longer than 61 characters might fail in the Intel® Quartus® Prime Pro Edition compiler with an error similar to the following error:

Error (16045): Instance "...|<long_kernel_name>_cra_slave_inst" instantiates 
undefined entity "<long_kernel_name>_function_cra_slave" File: <filename> Line: 
<linenumber>
Reduce the size of the OpenCL™ kernel name.
OpenCL™ kernel pipes cannot be passed as arguments in some cases. The symptom is the runtime receives a CL_INVALID_BUFFER_SIZE (-61) error when you enqueue your kernel. Modify your design to use channels instead of pipes.
When alternatively using sub-buffers and their parent buffers, changes written to one might not be reflected in the other. Unmapping and mapping a buffer forces the sub-buffers and their parent buffers to be synced. Unmapping and mapping a buffer between buffer uses should prevent this issue.

This section provides information about known issues that affect the current release of the Intel® FPGA SDK for OpenCL™ Custom Platform Toolkit and Reference Platforms. These issues might also affect Custom Platforms you create for use with the Intel® FPGA SDK for OpenCL™ .

Description Workaround
For Windows, when the host application queries the number of devices, calls to clGetDeviceIDs return 128 devices regardless of the actual number of devices present.
Note: You can find the actual available devices at the beginning of the device list returned by clGetDeviceIDs.
Perform one of the following workarounds:
  • Rewrite the host application to limit the query for clGetDeviceIDs to the actual number of devices.
  • Rewrite the host application to use clGetDeviceInfo to query which devices are available. Calling clGetDeviceInfo with the CL_DEVICE_AVAILABLE flag correctly reports that extraneous devices are unavailable.
  • Rewrite the host application to only call clCreateContext with the actual number of devices. Calling clCreateContext with extraneous devices fails with the error CL_DEVICE_NOT_AVAILABLE.
  • Set the environment variable CL_OVERRIDE_NUM_DEVICES_INTELFPGA to the correct number of devices. Doing so fixes the erroneous behavior of clGetDeviceIDs.

Latest Known Intel® FPGA SDK for OpenCL™ Software Issues

For additional known issue information for the current Intel® FPGA SDK for OpenCL™ version and for previous versions, refer to the Knowledge Base web page.