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