Intel® High Level Design
Support for Intel® High Level Synthesis Compiler, DSP Builder, OneAPI for Intel® FPGAs, Intel® FPGA SDK for OpenCL™
701 Discussions

DPC++ Flags -> Quartus

CHughes
Beginner
1,437 Views

When using dpcpp to compile for an FPGA target, is there a way to
control the number of threads that the Quartus tools can use?

sh,80458 -c cd ../oneAPI-samples/DirectProgramming/DPC++FPGA/ReferenceDesigns/crr/build/src && ../intel/2021.1.0.2659/compiler/2021.1.1/linux/bin/dpcpp -Xsparallel=12 -I../intel/2021.1.0.2659/dev-utilities/2021.1.1/include -fintelfpga -Xshardware -Xsdaz -Xsrounding=faithful -Xsparallel=2 -Xsseed=4 -Xsboard=s10:p520_max_sg280l -DOUTER_UNROLL=2 -DINNER_UNROLL=64 -DOUTER_UNROLL_POW2=2 crr_fpga.o -o ../oneAPI-samples/DirectProgramming/DPC++FPGA/ReferenceDesigns/crr/build/crr.fpga
  └─dpcpp,80459 -I../intel/2021.1.0.2659/dev-utilities/2021.1.1/include -fintelfpga -Xshardware -Xsdaz -Xsrounding=faithful -Xsparallel=2 -Xsseed=4 -Xsboard=s10:p520_max_sg280l -DOUTER_UNROLL=2 -DINNER_UNROLL=64 -DOUTER_UNROLL_POW2=2 crr_fpga.o -o ../oneAPI-samples/DirectProgramming/DPC++FPGA/ReferenceDesigns/crr/build/crr.fpga
    └─clang++,80460 --dpcpp -fsycl -I../intel/2021.1.0.2659/dev-utilities/2021.1.1/include -fintelfpga -Xshardware -Xsdaz -Xsrounding=faithful -Xsparallel=2 -Xsseed=4 -Xsboard=s10:p520_max_sg280l -DOUTER_UNROLL=2 -DINNER_UNROLL=64 -DOUTER_UNROLL_POW2=2 crr_fpga.o -o ../oneAPI-samples/DirectProgramming/DPC++FPGA/ReferenceDesigns/crr/build/crr.fpga
      └─perl,80472 ../intel/2021.1.0.2659/compiler/2021.1.1/linux/lib/oclfpga/share/lib/perl/acl/aoc.pl -o /tmp/crr_fpga-32e90b.aocx /tmp/crr_fpga-54488f.spv -sycl -dep-files=/tmp/crr_fpga-2de1d6.d -output-report-folder=../oneAPI-samples/DirectProgramming/DPC++FPGA/ReferenceDesigns/crr/build/crr.prj -g -hardware -daz -rounding=faithful -parallel=2 -seed=4 -board=s10:p520_max_sg280l

Passing -Xsparallel=<x> is overridden.

0 Kudos
7 Replies
BoonBengT_Intel
Moderator
1,321 Views

Hi @CHughes,

 

Thank you for posting in Intel community forum and hope all is well.
There are a list of compilation flag and one of it is to specify the thread number, more details can be found in the link here.
Please do review through the command and let us know if that clarify your doubts.

 

Best Wishes
BB

0 Kudos
CHughes
Beginner
1,305 Views

From my initial post, Xsparallel is overwritten.

0 Kudos
BoonBengT_Intel
Moderator
1,264 Views

Hi @CHughes,

 

Apologies as overlooked that, mind if I ask how/what command are used to invoke the dpc++ compiler?
As notice above the Xsparallel are specified twice.

 

Additionally, where are the above message coming from? And are you using the Intel devcloud for the compilation?
Hope to hear from you soon.

 

Best Wishes,
BB

 

0 Kudos
CHughes
Beginner
1,258 Views

This is the process tree for the aoc.pl perl script. The user run line is:

dpcpp -Xsparallel=12 -I../intel/2021.1.0.2659/dev-utilities/2021.1.1/include -fintelfpga -Xshardware -Xsdaz -Xsrounding=faithful -Xsparallel=2 -Xsseed=4 -Xsboard=s10:p520_max_sg280l -DOUTER_UNROLL=2 -DINNER_UNROLL=64 -DOUTER_UNROLL_POW2=2

 

Everything below that is the dpcpp -> quartus toolchain, which is invoked automatically (user has no control).

 

~Clay

0 Kudos
BoonBengT_Intel
Moderator
1,223 Views

Hi @CHughes,

 

Is the mention aoc.pl perl script being used to build the oneapi project?
Unfortunately the mention build flow is not a typical build flow we have here, would you be able to share more details on the steps needed and also the perl script for us to check further? Or any guide that you are following?

 

As well, the mention run line seems to specify Xsparallel twice which might cause the overwritten.
While mention that user have no control over it, hence would suggest perhaps to use the makefile to compile the oneapi project instead. (more reference can be found here)
Hope that clarify.

 

Best Wishes
BB

0 Kudos
CHughes
Beginner
1,133 Views

aoc.pl is called by dpcpp (there is nothing irregular about the compilation process); you can see the tree above: dpcpp->clang->perl. The user specified Xsparallel is being passed down but the Intel tools are inserting a duplicate, which is likely causing the user value to be overwritten.

0 Kudos
BoonBengT_Intel
Moderator
1,174 Views

Hi @CHughes,

 

Good day, just following up on the previous clarification.
By any chances did you managed to look into the it?

 

Best Wishes
BB

0 Kudos
Reply