Methodology for the implementation of real-time image processing systems using FPGAs and GPUs and their integration in EPICS using Nominal Device Support

Abstract There is an increasing interest to improve the processing capabilities for imaging diagnostics in fusion devices. Furthermore, the continuous upgrades of the hardware systems used in these tasks require a flexible platform that obtains the maximum performance of these technologies: cameras, frame-grabbers, and parallel processing architectures using FPGAs, GPUs, and multicore CPUs. This work presents a methodology for the development of real-time image processing applications using the ITER CODAC Core System (CCS) software tools and the hardware configuration defined in the ITER fast controllers hardware catalog, by means of Camera Link cameras, Camera Link FPGA-based frame-grabbers, and NVIDIA GPUs. The integration with EPICS is provided using the Nominal Device Support approach and the IRIO tools integrated into CCS. This device support provides complete control of the camera configuration parameters, distribution of the image processing functions between the FPGA and the GPU, and efficient movement of the data between the different elements of the architecture. To validate the full development cycle, an EPICS application has been developed implementing different algorithms frequently used in fusion applications such as histogram, detection of levels, and classification of zones within an image. Results of the performance obtained are presented highlighting the differences among various configurations running the selected algorithms.