I'm trying to run the host pipe example provided by Intel design example: https://www.intel.com/content/www/us/en/programmable/support/support-resources/design-examples/design-software/opencl/host-pipe.html.
However, when compiling the kernel code with command:
$ aoc -board=a10gx_hostch device/loopback_hostpipe.cl -o bin/loopback_hostpipe.aocx
I got warning message:
aoc: Running OpenCL parser....
device/loopback_hostpipe.cl:22:26: warning: unknown OpenCL extension 'cl_intel_fpga_host_pipe' - ignoring
#pragma OPENCL EXTENSION cl_intel_fpga_host_pipe : enable
I figured out that the current version of the AOC compiler(220.127.116.11) I'm using doesn't support cl_intel_fpga_host_pipe pragma, but I want to stick with 17.1 because my other BSPs were created for AOC 17.1. May I know if there's any way to work around this issue without upgrading my BSP?
You can install multiple versions of Quartus/AOC at the same time and use each with a compatible BSP. You just need to create appropriate bashrc for each so that you can easily switch between them by "sourcing" the associated bashrc.
By the way, since the reference BSP for v17.1 already has support for host channels, then Quatus 17.1 MUST support host channels. Maybe the name of the extension was something else in that version and has been changed since. I cannot find the documentation for the older versions on Intel's website to check.
Thank you for your reply!
My BSP version is v17.1.0. I tried to compile the host pipe kernel with AOC v18.0, BSP v17.1.0 and Quartus 18.104.22.168, but the compiler gave me error message at the very beginning:
aoc: This release of the Intel(R) FPGA SDK for OpenCL(TM) requires ACDS Version 18.0.0 (64-bit). However, the following version was found:
Quartus Prime Shell
Version 17.1.0 Build 240 10/25/2017 SJ Pro Edition
The AOC v18.1 Getting Started Guide (page 6) states AOC v18.1 only has backward compatibility with BSP v18.0 and BSP v17.1.1, but not BSP v17.1.0. However, is there any Quartus 17.1.1? From the Quartus Pro download page, it seems that v22.214.171.124 is the only version under 17.1 family.
The AOC v17.1 programming guide did state that cl_intel_fpga_host_pipe is supported, but it's weird that I still got the unknown pragma warning.
You should never mix different versions of Quartus and AOC. Are you using the Arria 10 reference board? If that is the case, there is a compatible BSP shipped with every version of Quartus for that board.
There is indeed Quartus v17.1.1 and v17.1.2. However, I am not sure if v17.1.1 is available for download anymore. On the download page for Quartus v17.1.0, there is an "Update" tab. You can find the v17.1.2 update there. There are multiple improvements to the host pipe API mentioned in the changelog for v17.1.1, maybe support for host pipes was not complete/working correctly in v17.1.0.