bscpm/ompss_2_at_fpga

Sponsored OSS

By Barcelona Supercomputing Center

Updated 3 months ago

Docker image with OmpSs-2@FPGA toolchain for arm64 and x86_64 architectures

Image
Languages & Frameworks
Integration & Delivery

428

OmpSs-2@FPGA Docker Image

This docker image contains and pre-configured environment to build OmpSs-2@FPGA applications targeting FPGA devices for the following architectures:

  • ARM 64bits (aarch64-linux-gnu)
  • x86_64 (x86_64-linux-gnu)

The image is build using the https://github.com/bsc-pm-ompss-at-fpga/ompss-2-at-fpga-releases Dockerfile and for each git tag.

General information

The image does not contain an installation of Xilinx tools (like VivadoHLS or Vivado), neither an installation petalinux tools or a build of a petalinux project. These tools will be needed to generate the board bitstreams and/or generate the boot files. The image contains different Mercurium installations to cross-compile applications for each architecture. In addition, it contains the required libraries, which the applications will be linked against, in the /opt/install-XXXX folder.

The default image user is ompss, and its password is ompss.

Prerequisites

  • Docker
  • Xilinx Vivado (recommended 2018.3 or higher)
  • Vivado license for the target device
  • [Optional for BOOT.BIN generation] Petalinux

Usage

The following commands show how to pull the docker image for DockerHUB and start a container. Usually, you will need to map the folders where you have the Xilinx tools installed (e.g. /opt/xilinx) and maybe the petalinux tools and build (e.g. /opt/petalinux). Moreover, you may need to add the folder where your application source code is (e.g. $HOME).

docker pull bscpm/ompss_at_fpga
docker run -it \
	-v /opt/xilinx/:/opt/xilinx/ \
	-v /opt/petalinux/:/opt/petalinux/ \
	-v $HOME:$HOME \
	-v /tmp/.X11-unix:/tmp/.X11-unix \
	-v /media/:/media/ \
	-e DISPLAY=$DISPLAY \
	--network host \
	bscpm/ompss_at_fpga bash

NOTE: In order for Xilinx tools and petalinux to run correctly, paths inside the container should be the same as installation path.

Docker run options

  • -v host_directory:container_directory Binds a directory in the host into the container
  • -v /tmp/.X11-unix:/tmp/.X11-unix Display server resources available in the container
  • -e DISPLAY=DISPLAY Set the DISPLAY environment variable
  • --network host Set the container network
  • --rm Remove the created container after it exits

Docker Pull Command

docker pull bscpm/ompss_2_at_fpga