6.1. Ikergune cluster installation¶
The OmpSs-2@FPGA releases are automatically installed in the Ikergune cluster. They are available through a module file for each target architecture. This document describes how to load and use the modules to compile an example application. Once the modules are loaded, the workflow in the Ikergune cluster should be the same as in the Docker images.
6.1.1. General remarks¶
- All software is installed in a version folder under the
/apps/bsc/ARCH/ompss-2/
directory. - During the updates, the installation will not be available for the users’ usage.
- After the installation, an informative email will be sent.
6.1.2. Module structure¶
The ompss-2 modules are:
ompss-2/x86_64/*[release version]*
This will automatically load the default Vivado version, although an arbitrary version can be loaded before ompss:
module load vivado/2023.2 ompss-2/x86_64/git
To list all available modules in the system run:
module avail
Other modules may be required to generate the boot files for some boards, for example:
module load petalinux
6.1.3. Build applications¶
To generate an application binary and bitstream, you could refer to Compile OmpSs-2@FPGA programs as the steps are general enough.
Note that the appropriate modules need to be loaded. See Module structure.
6.1.4. Running applications¶
6.1.4.1. Log into a worker node (interactive jobs)¶
Ikergune cluster uses SLURM in order to manage access to computation resources. Therefore, to log into a worker node, an allocation in one of the partitions have to be made.
There are 2 partitions in the cluster: * ikergune-eth
: arm32
zynq7000 (7020) nodes * ZU102
: Xilinx zcu102 board
In order to make an allocation, you must run salloc
:
salloc -p [partition]
For instance:
salloc -p ikergune-eth
Then get the node that has been allocated for you:
squeue
The output should look similar to this:
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
8547 ikergune- bash afilguer R 16:57 1 Node-3
Then, you can log into your node:
ssh ethNode-3
6.1.4.2. Load ompss kernel module¶
The ompss-fpga kernel module has to be loaded before any application using fpga accelerators can be run.
Kernel module binaries are provided in
/apps/bsc/[arch]/ompss/[release]/kernel-module/ompss_fpga.ko
Where arch
is one of:
arm32
arm64
release
is one of the OmpSs@FPGA releases currently installed.
For instance, to load the 32bit kernel module for the git
release, run:
sudo insmod /apps/bsc/arm32/ompss/git/kernel-module/ompss_fpga.ko
You can also run module avail ompss
for a list of the currently installed releases.
6.1.4.3. Loading bitstreams¶
The fpga bitstream also needs to be loaded before the application can
run. The load_bitstream
utility is provided in order to simplify the
FPGA configuration.
load_bitstream bitstream.bin
Note that the .bin
file is being loaded. Trying to load the .bit
file will result in an error.