Closed stratika closed 2 months ago
I spotted the problem, it seems that there are two problems that result in erroneous execution:
1st problem: In the OCLCodeCache
class we have a method that checks if force compilation has been triggered, and the FPGA compilers for Intel are triggered only then. This seems to have been an old check that we had from the time we had the lookupbuffer
kernel, and we were waiting till the last task within a TaskGraph
in order to trigger the forceCompilation()
method from the TornadoVM
class. See here.
2nd problem: The executor.withDefaultScheduler()
configuration in the ExecutionPlan
seems to break the execution and results in OpenCL error (CL_INVALID_WORK_GROUP_SIZE
) when the clEnqueueNDRangeKernel
function is invoked.
Task info: blur.red
Backend : OPENCL
Device : Intel(R) FPGA Emulation Device CL_DEVICE_TYPE_ACCELERATOR (available)
Dims : 2
Global work offset: [0, 0]
Global work size : [448, 640]
Local work size : [64, 1, 1]
Number of workgroups : [7, 640]
[TornadoVM-OCL-JNI] ERROR : clEnqueueNDRangeKernel -> Returned: -54 Task info: blur.green Backend : OPENCL Device : Intel(R) FPGA Emulation Device CL_DEVICE_TYPE_ACCELERATOR (available) Dims : 2 Global work offset: [0, 0] Global work size : [448, 640] Local work size : [64, 1, 1] Number of workgroups : [7, 640]
[TornadoVM-OCL-JNI] ERROR : clEnqueueNDRangeKernel -> Returned: -54 Task info: blur.blue Backend : OPENCL Device : Intel(R) FPGA Emulation Device CL_DEVICE_TYPE_ACCELERATOR (available) Dims : 2 Global work offset: [0, 0] Global work size : [448, 640] Local work size : [64, 1, 1] Number of workgroups : [7, 640]
[TornadoVM-OCL-JNI] ERROR : clEnqueueNDRangeKernel -> Returned: -54
I will work on a fix.
Describe the bug
I tried to run on FPGA emulation mode with Intel oneAPI, the
BlurFilter
example that contains 3 tasks of the same kernel for computing the blur filter for red, green and blue. Here are all the steps:Step 1: I installed TornadoVM and in particular the develop branch:
Step 2: I have installed the Intel oneAPI Base Toolkit and set the variables. Then I was able to see the devices (including the FPGA):
Step 3: Note that I had to put the configuration file for Intel oneAPI FPGA in the etc path:
Step 4: I tried to run the example, as follows:
And got the following error:
How To Reproduce
Follow the previous steps and run:
Expected behavior
The tasks should run on the emulation mode without any issue.
Computing system setup (please complete the following information):