Title :
Communication Library to Overlap Computation and Communication for OpenCL Application
Author :
Komoda, Toshiya ; Miwa, Shinobu ; Nakamura, Hiroshi
Author_Institution :
Grad. Sch. of Inf. Sci. & Technol., Univ. of Tokyo, Tokyo, Japan
Abstract :
User-friendly parallel programming environments, such as CUDA and OpenCL are widely used for accelerators. They provide programmers with useful APIs, but the APIs are still low level primitives. Therefore, in order to apply communication optimization techniques, such as double buffering techniques, programmers have to manually write the programs with the primitives. Manual communication optimization requires programmers to have significant knowledge of both application characteristics and CPU-accelerator architecture. This prevents many application developers from effective utilization of accelerators. In addition, managing communication is a tedious and error-prone task even for expert programmers. Thus, it is necessary to develop a communication system which is highly abstracted but still capable of optimization. For this purpose, this paper proposes an OpenCL based communication library. To maximize performance improvement, the proposed library provides a simple but effective programming interface based on Stream Graph in order to specify an applications communication pattern. We have implemented a prototype system on OpenCL platform and applied it to several image processing applications. Our evaluation shows that the library successfully masks the details of accelerator memory management while it can achieve comparable speedup to manual optimization in which we use existing low level interfaces.
Keywords :
buffer storage; image processing; optimisation; parallel architectures; parallel programming; programming environments; software libraries; CPU-accelerator architecture; CUDA; OpenCL application communication; OpenCL based communication library; OpenCL platform; Stream Graph; accelerator memory management; communication management; communication optimization techniques; communication pattern; communication system; double buffering techniques; expert programmers; image processing applications; manual communication optimization; manual optimization; overlap computation; programming interface; user-friendly parallel programming environments; Kernel; Libraries; Memory management; Optimization; Programming; Runtime; Streaming media; Accelerators; Double Buffering; OpenCL; Stream Graph;
Conference_Titel :
Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), 2012 IEEE 26th International
Conference_Location :
Shanghai
Print_ISBN :
978-1-4673-0974-5
DOI :
10.1109/IPDPSW.2012.68