2D Image Convolution using Three Parallel Programming Models on the Xeon Phi [article]

Ashkan Tousimojarad, Wim Vanderbauwhede, W Paul Cockshott
2017 arXiv   pre-print
Image convolution is widely used for sharpening, blurring and edge detection. In this paper, we review two common algorithms for convolving a 2D image by a separable kernel (filter). After optimising the naive codes using loop unrolling and SIMD vectorisation, we choose the algorithm with better performance as the baseline for parallelisation. We then compare the parallel performance of the optimised code using OpenMP, OpenCL and GPRM implementations on the Intel Xeon Phi. We also measure the
more » ... fects of optimisation techniques and demonstrate how they affect both sequential and parallel performance. Apart from comparing the code complexity as well as the performance of the chosen parallel programming models, we investigate the impact of a parallelisation technique, task agglomeration in GPRM.
arXiv:1711.09791v1 fatcat:rt7ufla5evf3jfyjvu7wnnnloi