Development of computing platforms has been shifting to the usage of heterogeneous languages for some time now. The newest C++ standards are incorporating these heterogeneous characteristics into the language. In this context, we developed IRIO-OpenCL to simplify the integration of heterogeneous hardware with the Instrumentation & Control systems that are required on Big Science facilities. The focus is to use COTS hardware, with the advanced computing techniques to reduce development time. We present a set of problems that have been solved using OpenCL for scientific applications, two applications of machine learning (ML) for neutron and gamma discrimination, and the implementation of CCL algorithm for hot spot detection in plasmas.
The two machine learning applications aim to explore the feasibility of real time solutions to the neutron and gamma discrimination problem, but they do so in different ways. The first implementation is the direct implementation of a NN proposed in the latest literature. The NN has been implemented in the FPGA using the OpenCL standard. The different hardware elements have been implemented with kernels, a global DDR memory and some additional synchronization/communication elements (the data is passed using OpenCL pipes avoiding the external RAM access). The HW application is managed by an NDS device driver specifically designed to initialize the OpenCL runtime environment, initialize the global DDR memory with the weights and bias and to retrieve the result of the output of the classifier. The IRIO-OpenCL software module helps to implement this interface. The second implementation focused on a completely new model architecture trained TensorFlow. The dataset was obtained from a collaboration with JET. We implemented a 1D CNN using floating point operations which achieved a classification accuracy of 99.5% in the TensorFlow model. The implementation of this prototype uses 50% of the total area in the ARRIA 10 FPGA, with kernels working at 190MHz. The ARRIA10 based systems is capable of classifying around 79kevent/s.
The Hot Spot detection algorithm is used to control the temperature of the divertor and the wall in a tokamak. This work applies heterogeneous computing techniques based on the OpenCL standard to the real-time hot spot detection problem and obtains performance values in an MTCA platform. OpenCL reduces the development time, improves portability, and simplify the evaluation and validation of each part of the algorithm to find the best-suited device in the heterogeneous system. The proposed solution enables balancing the computational load between an FPGA and a GPU. The algorithm has been adapted and optimized, taking profit on the particularities of each platform.