Intel® High Level Design
Support for Intel® High Level Synthesis Compiler, DSP Builder, OneAPI for Intel® FPGAs, Intel® FPGA SDK for OpenCL™
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.

DPC++ Flags -> Quartus

CHughes
Beginner
778 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
662 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

CHughes
Beginner
646 Views

From my initial post, Xsparallel is overwritten.

BoonBengT_Intel
Moderator
605 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

 

CHughes
Beginner
599 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

BoonBengT_Intel
Moderator
564 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

CHughes
Beginner
474 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.

BoonBengT_Intel
Moderator
515 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

Reply