FPGA Configuration
System Requirements
Using DAPHNE's build script with FPGA kernels support requires the additional QUARTUSDIR
environment variable to be defined.
An example command is presented in fpga-build-env.sh
or in the following command:
To build DAPHNE with FPGA kernels support, the flag --fpgaopencl
has to be used:
To run the pre-compiled FPGA OpenCL kernels included in the DAPHNE repository, an installed and configured FPGA device is required. Our example kernels have been tested using an Intel(R) PAC D5005 card.
DAPHNE contains some example linear algebra kernels developed using the T2SP framework.
The example pre-compiled FPGA kernels can be used at DaphneDSL level.
To prepare the system for the pre-compiled FPGA kernels, some FPGA and OpenCL environment variables are required.
The easiest way to set up the required variables is to use the init_opencl.sh
script from installed Intel(R) Quartus software or from the
Intel(R) OpenCL RTE or Intel(R) OpenCL SDK packages.
Example script usage:
For additional details, see the Intel guide or the SDK for OpenCL.
Pre-compiled FPGA Kernels
To use a pre-compiled FPGA kernel, an FPGA image is required (*.aocx
). The FPGA device has to be programmed with a particular image which contains the required kernel implementation.
An example FPGA programming command using example FPGA image:
Additionally, the BITSTREAM
environment variable has to be defind in the system as follows:
When another FPGA image contains an implementation for another required computational kernel, then the FPGA device has to be reprogrammed and the BITSTREAM
environment variable has to be changed.