A CPU, GPU, FPGA System for X-Ray Image Processing Using High-Speed Scientific Cameras - Binotto, Alécio Pedro Delazari; Doering, Dionisio; Stetzelberger, Thorsten; McVittie, Patrick; Zimmermann, Sergio; Pereira, Carlos Eduardo (Anais do International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), 2013)
Currently, computers can be composed of different Processing Units (PUs) - general-purpose and also programmable and specialist-purpose. One of the goals for such heterogeneity is to improve applications' performance. Particularly, scientific applications can highly benefit from this kind of platform. They produce large amounts of data within several types of algorithms, and distinct PUs are an alternative to better execute such tasks. This work presents a new system box - composed of CPU, GPU, and FPGA - to carry on site X-ray image evaluations. It was firstly tested by evaluating the performance of a Linear Integration (LI) algorithm over the PUs. This algorithm is largely used by synchrotron experiments in which high-speed X-ray cameras produce extremely large amounts of data for post-processing analysis, which includes performing LI. In our experiments, LI execution was around 30x faster in FPGA compared to CPU, achieving a similar performance to GPU. Taking the end-to-end application, i.e., image transfer into memory, this rate increases to hundreds. Issues for using FPGAs as a co-processor under our dynamic scheduling framework is also discussed. Synthesizing times for LI when assigned to FPGA are still too long for dynamic scheduling, preventing online synthesizing of functions not designed a priori.