4.2.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, the FPGA architecture section is shown below:

[devices]
        directory = true
        [devices.fpga]
                # 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 = 0x200000000
                # 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 occupiying 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