Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16556 Discussions

I'm having an issue using the Atomic Library in C++11, it's saying that I need to specify the flag std=c++11, but I don't know how to do that with I++ compiler. How do I correct this, since I need Compare and Swap behavior for my data structure?

MSura2
Beginner
712 Views

Whereby when compiling my code with the command:

 

g++ src/fpga_basic.cpp -march=x86-64 -std=c++11 -o test-x86_64

 

It compiles correctly and executes the behavior that is expected. 

 

However, when I try and run:

 

i++ src/fpga_basic.cpp  -march=x86-64 -o test-x86-64

 

It doesn't compile complaining about the errors within the atomic library and that I need to set the flag for correct compilation.

 

some of the errors:

 

/usr/include/c++/4.8.5/bits/c++0x_warning.h:32:2: error: #error This file requires

   compiler and library support for the ISO C++ 2011 standard. This support is

   currently experimental, and must be enabled with the -std=c++11 or

   -std=gnu++11 compiler options.

#error This file requires compiler and library support for the \

 ^

In file included from src/fpga_basic.cpp:9:

In file included from /usr/include/c++/4.8.5/algorithm:61:

In file included from /usr/include/c++/4.8.5/bits/stl_algo.h:59:

/usr/include/c++/4.8.5/cstdlib:165:26: error: use of undeclared identifier

   '__builtin_labs'

 abs(long __i) { return __builtin_labs(__i); }

etc...

0 Kudos
5 Replies
AnilErinch_A_Intel
669 Views

Hi ,

You have to refer to the compiler user guide for the version of HLS compiler being used.

Depending on the version of the Intel HLS compiler , The C++ files are expected to be conforming to different standards like C++14 ,C++17 etc.

But not all the features of the language are supported ,

For example if you check the restriction section

Intel HLS Compiler Pro Edition Restrictions

in the below document , its is mentioned that what all features are not supported.

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/hls/ug-hls.pdf

Also if you see the reference manual of the compiler you can get in more detail the information about what subset of the C and C++ are supported.

Thanks and Regards

Anil

 

0 Kudos
MSura2
Beginner
669 Views

Hi Anil,

 

I wanted to know if there is any support available for atomic instruction by the HLS compiler?

Secondly, I want to request technical support via an engineer for using the the Intel HLS tool version 20.1, would you be able to provide that via a phone or telephone call?

 

Kind Regards,

 

Mayank Surana

0 Kudos
AnilErinch_A_Intel
669 Views

Hi Mayank,

 

Currently we do not support atomic instruction in HLS compiler.

 

For HLS , there is a series available in Intel FPGA channel in Youtube which describes pretty much in detail the steps and concepts.

 

https://www.youtube.com/watch?v=nYbw9k7KNJ

 

Regarding support for 20.1 , the getting started guide can be useful 

https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/hls/ug-hls-getting-started.pdf

 

If any thing mentioned in the guide is not working out ,please let us know.

 

Thanks and Regards

Anil

0 Kudos
MSura2
Beginner
669 Views

Hi Anil,

Thanks for the response, so another few questions. What is currently the best way possible to run atomic instructions on the FPGA via intel services?

Furthermore, I've been experiencing issues where is my FPGA (Intel Arria 10 Gx) is not being detected by the Quartus software (Version 20.1). However when I switch the version of Quartus to V18.1, the device becomes is recognised and ready for compilation.

Could you explain why this may be the case?

The device is connected via a PCIE into a data center. I'm running both software from Linux Ubuntu 18.04LTS.

0 Kudos
AnilErinch_A_Intel
669 Views

Hi

You can try with OpenCL instead of HLS , if you want to try atomic instructions in Intel FPGAs.

Please refer the OpenCL guide as given below

https://www.intel.com/content/www/us/en/programmable/documentation/mwh1391807965224.html

Regarding the Arria 10 Device support in Quartus 20.1 , please make sure that you have installed the device support files (.QDZ) for Arria10 and use it in Quartus 20.1 . The device files can be downloaded from the below link.

https://fpgasoftware.intel.com/

Thanks and Regards

Anil

 

0 Kudos
Reply