Skip to content

Intel Compilers - FPGA SDK for OpenCL (ifpgasdk)

The MeluXina system environment provides the Intel FPGA compiler.

EasyBuild module description

 Intel FPGA SDK for OpenCL software technology is a development
 environment that enables software developers to accelerate their applications
 by targeting heterogeneous platforms with Intel CPUs and FPGAs. This environment
 combines Intel’s state-of-the-art software development frameworks and compiler
 technology with the revolutionary, new Intel® Quartus® Prime Software to deliver
 next generation development environment that abstracts FPGA details while
 delivering optimized results. Intel® FPGA SDK for OpenCL™ software technology
 enables you to fully leverage the unique capabilities of FPGAs to deliver
 acceleration performance with power efficiency and low latency.

You can use Intel FPGA SDK to compile your FPGA/OpenCL applications.

Intel FPGA SDK usage

Interactive

Reserve an interactive session:

salloc -A COMPUTE_ACCOUNT -t 01:00:00 -q dev --res fpgadev -p fpga -N 1

The example above will allocate one FPGA node in interactive mode (dev QoS with fpgadev reservation). To use the compiler suite, you need to load both the ifpgasdk module (which includes the compiler tools), as well as the 520nmx module containing additional required files for the FPGA cards.

# Load the modules in an interactive session
module load ifpgasdk/20.4
module load 520nmx/20.4
# Compilation example of an OpenCL sample code (2D FFT)
aoc -board=p520_hpc_m210h_g3x16 -fp-relaxed -DINTEL_CL -o fft2d_mx FFT_2d.cl

Batch

The compiler suite can also be used in batch jobs. The script below provides a complete example, showing a launcher file that compiles an OpenCL FFT 2D example on one FPGA node allocated for 48 hours (synthesizing code for FPGAs takes hours).

#!/bin/bash -l
#SBATCH -N 1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=1
#SBATCH -p fpga
#SBATCH -q default
#SBATCH --time 48:00:00

#Load Intel FPGA SDK module and supporting packages
module load ifpgasdk/20.4
module load 520nmx/20.4

#Compile OpenCL program with Intel FPGA SDK
aoc -board=p520_hpc_m210h_g3x16 -fp-relaxed -DINTEL_CL -o fft2d_mx FFT_2d.cl

#Execute the program
./fft_2d_fpga.exe