.. index:: Run single-node applications .. _run-single-node-applications: Running single node applications :::::::::::::::::::::::::::::::: Running on QDMA-based FPGAs =========================== See :ref:`install-ompss2atfpga-toolchain_alveo-hardware-setup` to setup the hardware requisites for Alveo devices. Loading the bitstream ^^^^^^^^^^^^^^^^^^^^^ Bitstreams can be loaded via JTAG through a USB connection with the FPGA board. Run the following commands in Vivado interactive mode: .. code-block:: text vivado -nolog -nojournal -mode tcl .. code-block:: tcl open_hw_manager connect_hw_server open_hw_target foreach {dev} [get_hw_devices] { current_hw_device ${dev} set_property PROGRAM.FILE ${dev} program_hw_devices ${dev} } exit Set up qdma queues ^^^^^^^^^^^^^^^^^^ For DMA transfers to be performed between system main memory and the FPGA memory, qdma queues has to be set up by the user *prior to any execution*. In this case ``dma-ctl`` tool is used. For instance, in order to create and start a memory mapped qdma queue with index 1 run: .. code-block:: text dma-ctl qdmab3000 q add idx 1 mode mm dir bi dma-ctl qdmab3000 q start idx 1 mode mm dir bi OmpSs-2\@FPGA runtime system expects an mm queue at index 1, which can be created with the commands listed above. In the same fashion, these queues can also be removed: .. code-block:: text dma-ctl qdmab3000 q stop idx 1 mode mm dir bi dma-ctl qdmab3000 q del idx 1 mode mm dir bi For more information, see .. code-block:: text dma-ctl --help Running on System-on-Chips ========================== Loading bistreams ^^^^^^^^^^^^^^^^^ The FPGA bitstream needs to be loaded before the application can run. Xilinx provides the ``fpgautil`` utility in order to simplify bitstream loading. .. code-block:: text fpgautil -b bitstream.bin