The Walsh-Hadamard transform plays a major role in many image and video coding algorithms. In one hand, its intensive use in these algorithms makes its acceleration a challenge, in order to speed-up the algorithm execution. On the other hand, the available fast implementations are not efficient across different platforms. In this work, a parallel-based implementation of the WHT is proposed for CPU and GPU platforms using the OpenCL standard. OpenCL achieves portability at code level, but its performance suffers when the same code is used for CPUs and GPUs. To achieve top performance, we propose two WHT versions: OpenCL-GPU for GPUs and OpenCL-CPU for CPUs. Broadly, OpenCL-GPU executed on a GPU runs faster than OpenCL-CPU executed on a multicore CPU, with speedups that range from 120.87 to 1016.35. However, OpenCL-GPU performance drops substantially when ran on a multicore CPU machine, where OpenCL-CPU achieves higher performance, as it exploits the OpenCL support for SIMD instructions.
['Pedro M. M. Pereira', 'Patricio Domingues', 'Nuno Rodrigues', 'Sérgio M. M. de Faria', 'Gabriel Falcao']
Optimized fast Walsh-Hadamard transform on OpenCL-GPU and OpenCL-CPU