Getting a gcc include error trying to build vector-add example for FPGA emulation using OneAPI on my local server.
I followed the FPGA OneAPI tutorial in https://devcloud.intel.com/oneapi/get-started/base-toolkit/#fpga-vector-add-sample-walkthrough and successfully built and ran the example on the dev cloud, both in emulation and in hardware. However, the FPGA build took quite a long time, so I'd prefer to build on my local server, which I think will be quicker. To that end, I downloaded the base toolkit for OneAPI, plus the FPGA add-on, and I installed both. I cloned the vector-add example locally, modified the tutorial's build_fpga_emu.sh to point to my local copy of inteloneapi, and tried to build. I get the following error:
In file included from /.alpha/public/inteloneapi/compiler/2021.1-beta05/linux/lib/clang/11.0.0/include/CL/sycl/intel/sub_group.hpp:18:
/.alpha/public/inteloneapi/compiler/2021.1-beta05/linux/lib/clang/11.0.0/include/CL/sycl/intel/functional.hpp:28:17: error: too few template arguments for class template 'less'
return std::less<>()(std::forward<const T>(lhs), std::forward<const U>(rhs))
^
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../include/c++/4.8.5/bits/stl_function.h:231:12: note: template is declared here
struct less : public binary_function<_Tp, _Tp, bool>
^
I tried re-doing the installation while pointing at a previously-installed version 8.3.0 of gcc instead, but when all is said and done, I'm getting the same error. I'm guessing it's because the includes are still pointing to the default gcc 4.8.5 on my server. Maybe?
I'm an FPGA RTL designer, not a C programmer, so I'm not very familiar with how to point installations to correct versions of gcc. What am I doing wrong? Ancillary info: I do not have root or sudo privileges on this system. I must install these as a user.
Thanks for suggestions!