Unified OpenCL Integration Methodology for FPGA Designs
Creators
- 1. Tampere University
- 2. University of the Peloponnese
Description
OpenCL is a widely adopted open standard for general purpose programming of diverse heterogeneous parallel platforms that can harness various device types such as CPUs, DSPs, GPUs, FPGAs and hardware accelerators. It is an extensive and explicit low level API serving well as a platform portability layer. However, using OpenCL for diverse heterogeneous programming in multi-vendor platforms is not practical due to device vendors each providing their own OpenCL implementations which do not interoperate efficiently, leading to inefficient execution coordination and collaborative execution between various device types from different vendors. To this end, this paper proposes a vendor-independent open source method for integration of custom FPGA components to a common OpenCL platform. The method relies on a streamlined memory-mapped hardware control interface implemented by the integrated components. The required OpenCL driver integration is then automatically provided, enabling easy inclusion of different types of FPGA accelerators to the control of a single OpenCL runtime. The ease of integration and portability is demonstrated by integrating two hardware devices in two different FPGA devices. The resource overhead of the hardware interface is shown to be negligible and the clock frequency overheads small enough to not pose efficiency challenges.
Files
Unified_OpenCL_Integration.pdf
Files
(198.7 kB)
Name | Size | Download all |
---|---|---|
md5:6f387a6f1a93fcb4f269c097ae72f406
|
198.7 kB | Preview Download |
Additional details
Funding
- FITOPTIVIS – From the cloud to the edge - smart IntegraTion and OPtimization Technologies for highly efficient Image and VIdeo processing Systems 783162
- European Commission
- CPSoSaware – Cross-layer cognitive optimization tools & methods for the lifecycle support of dependable CPSoS 871738
- European Commission
- Energy Efficient Instruction Supply Using Emerging Memories 331344
- Academy of Finland