The increase in the data acquisition and processing needs of High Energy Physics experiments has made it even more essential to use FPGAs to meet those needs. However harnessing the capabilities of the FPGAs has been hard for anyone but expert FPGA developers. The arrival of OpenCL, and the two major FPGA vendors supporting it, offers an easy software-based approach to taking advantage of FPGAs in applications such as High Energy Physics. OpenCL is a language for using heterogeneous architectures in order to accelerate applications. With OpenCL it has become easier to port code between GPUs, FPGAs & other accelerators and using FPGAs has become as easy as using GPUs. A comparison of their performance is made. OpenCL has the potential for a massive gain in productivity and ease of use enabling non FPGA experts to design, debug and maintain the code. Also, FPGA power consumption is much lower than other implementations. However, FPGAs are capable of far more than acceleration, hence it is interesting to explore if OpenCL can be used to take advantage of FPGAs for more generic applications. To answer this question, especially in the context of High Energy Physics, a DAQ module was also tested for implementation with OpenCL on FPGAs1. The challenges on using OpenCL for a DAQ application and their solutions, together with the performance of the OpenCL based acceleration are discussed. Many of the design elements needed to realize a DAQ system in OpenCL already exists, mostly as FPGA vendor extensions, but a small number of elements were found to be missing. This paper describes one of the first attempts to explore the use of OpenCL for applications outside the acceleration workloads.
Event published at:
LHCB Technical Note, CERN