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

ID 683177
Date 3/28/2022
Public

A newer version of this document is available. Customers should click here to go to the newest version.

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.1.

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.