Forum Discussion
8 Replies
- yuguen
Occasional Contributor
The OpenCL SDK for Intel FPGAs is no longer distributed since 22.4.
Therefore, 22.4 is the last version of the compiler to officially support OpenCL as an input language.
How did you get a 2024.2.1 version of aoc? I'm guessing that you got that binary from a oneAPI SYCL compiler for FPGA install.
The SYCL compiler uses aoc internally, but is not expected to work as a standalone.
- BoonBengT_Altera
Moderator
Hi @Björne2,
Good day, just following up on the previous clarification.
By any chances did you managed to look into it?
Hope to hear from you soon.
Best Wishes
BB
- BoonBengT_Altera
Moderator
Hi @Björne2,
Greetings, just checking in to see if there is any further doubts in regards to this matter.
Hope your doubts have been clarified.
Best Wishes
BB
- BoonBengT_Altera
Moderator
Hi @Björne2,
Greetings, as we do not receive any further clarification/updates on the matter, hence would assume challenge are overcome. Please login to ‘https://supporttickets.intel.com’, view details of the desire request, and post a feed/response within the next 15 days to allow me to continue to support you. After 15 days, this thread will be transitioned to community support. For new queries, please feel free to open a new thread and we will be right with you. Pleasure having you here.
Best Wishes
BB
- Björne2
New Contributor
Hi BoonBengT and yuguen. I know that OneAPI only support SYCL. But SYCL is horrible for FPGA work so I'm sticking with OpenCL. Besides, SYCL is just a thin layer on top of OpenCL anyway. I solved my issue by removing the "volatile" keyword. Apparently, in recent versions volatile prevents memory coalescing.
- yuguen
Occasional Contributor
There is no guarantee that anything coming out of aoc will be functional as this tool is now deprecated.
What are your complaints about SYCL compared to OpenCL?
- Björne2
New Contributor
I know that, but the replacement SYCL tools are that bad. The main problem is that icpx embeds the FPGA image into the host code so you can't have one binary that switches between multiple images via command line parameters. Nor one binary with kernels for multiple different devices. icpx also takes 10 seconds for simple examples which compile instantly in OpenCL. It wouldn't be so bad if you could use a regular C++ compiler for the host code and just use icpx for the device code, but I haven't found any (easy) way of accomplishing that.