4.1. Nanos6 FPGA Architecture configurationΒΆ
The Nanos6 behavior can be tuned with different configuration options. They are summarized and briefly described in the Nanos6 default configuration file as well as in the OmpSs-2 user guide, the FPGA architecture section is shown below:
[devices]
directory = true
[devices.fpga]
# Enable/disable the reverse offload service
reverse_offload = false
# Byte alignment of the fpga memory allocations
alignment = 16
# If xtasks supports async copies, it can be "async", if not, the runtime can use the default xtasks memcpy and
# simulate an asynchronous copy spawning a new thread with "forced async". Copies can also be synchronous with "sync".
mem_sync_type = "sync"
page_size = 0x8000
requested_fpga_memory = 0x40000000
# Enable FPGA device service threads. It is useful to disable them when using the broadcaster, because in that case the
# FPGAs are handled by the broadcaster device service and the FPGA services are not used.
enable_services = true
# Maximum number of FPGA tasks running at the same time
streams = 16
[devices.fpga.polling]
# Indicate whether the FPGA services should constantly run while there are FPGA tasks
# running on their FPGA. Enabling this option may reduce the latency of processing FPGA
# tasks at the expenses of occupying a CPU from the system. Default is true
pinned = true
# The time period in microseconds between FPGA service runs. During that time, the CPUs
# occupied by the services are available to execute ready tasks. Setting this option to 0
# makes the services to constantly run. Default is 1000
period_us = 1000