2.1. Mercurium FPGA Phase options¶
The following sections list and summarize the Mercurium options from the FPGA Phase.
2.1.1. fpga_memory_port_width¶
Defines the width (in bits) of memory ports (only for wrapper localmem data) for fpga accelerators. Usage example:
fpgacc --ompss --bitstream-generation src/dotproduct.c -o dotproduct \
--Wf,--board=zedboard --variable=fpga_memory_port_width:128
2.1.2. force_fpga_periodic_support¶
Force enabling the periodic tasks support in all FPGA accelerators. This feature is only enabled in the FPGA accelerators that require it (the target directive has the period or num_repetitions caluses). Usage example:
fpgacc --ompss --bitstream-generation src/dotproduct.c -o dotproduct \
--Wf,--board=zedboard --variable=force_fpga_periodic_support:1
2.1.3. disable_unaligned_fpga_memory_port_width¶
[Experimental in pre-production] Disables the logic to support unaligned memory regions handled by the shared memory port. This option only has effect when the fpga_memory_port_width option is also present. Usage example:
fpgacc --ompss --bitstream-generation src/dotproduct.c -o dotproduct \
--Wf,--board=zedboard --variable=fpga_memory_port_width:128 \
--variable=disable_unaligned_fpga_memory_port_width:1
Warning
This option will save resources in the logic of FPGA wrappers. However, that may be unsafe and result in bad application results due to data overwrite and/or data shift.