Title :
Experiences with OpenMP, PGI, HMPP and OpenACC Directives on ISO/TTI Kernels
Author :
Ghosh, Sudip ; Liao, Tingdi ; Calandra, H. ; Chapman, Barbara M.
Author_Institution :
Dept. of Comput. Sci., Univ. of Houston, Houston, TX, USA
Abstract :
GPUs are slowly becoming ubiquitous devices in High Performance Computing, as their capabilities to enhance the performance per watt of compute intensive algorithms as compared to multicore CPUs have been identified. The primary shortcoming of a GPU is usability, since vendor specific APIs are quite different from existing programming languages, and it requires a substantial knowledge of the device and programming interface to optimize applications. Hence, lately a growing number of higher level programming models are targeting GPUs to alleviate this problem. The ultimate goal for a high-level model is to expose an easy-to-use interface for the user to offload compute intensive portions of code (kernels) to the GPU, and tune the code according to the target accelerator to maximize overall performance with a reduced development effort. In this paper, we share our experiences of three of the notable high-level directive based GPU programming models - PGI, CAPS and OpenACC (from CAPS and PGI) on an Nvidia M2090 GPU. We analyze their performance and programmability against Isotropic (ISO)/Tilted Transversely Isotropic (TTI) finite difference kernels, which are primary components in the Reverse Time Migration (RTM) application used by oil and gas exploration for seismic imaging of the sub-surface. When ported to a single GPU using the mentioned directives, we observe an average 1.5-1.8x improvement in performance for both ISO and TTI kernels, when compared with optimized multi-threaded CPU implementations using OpenMP.
Keywords :
finite difference methods; graphics processing units; multiprocessing systems; parallel processing; user interfaces; GPU; GPU programming model; HMPP directive; ISO-TTI finite difference kernel; Nvidia M2090 GPU; OpenACC directive; OpenMP directive; PGI directive; RTM application; application program interface; compute intensive algorithm; easy-to-use user interface; graphics processing unit; high performance computing; isotropic kernel; multicore CPU; programming interface; programming language; reverse time migration; tilted transversely isotropic kernel; vendor specific API; CAPS; Finite Difference Stencils; GPGPU; HMPP; ISO; OpenACC; OpenMP; PGI; RTM; TTI;
Conference_Titel :
High Performance Computing, Networking, Storage and Analysis (SCC), 2012 SC Companion:
Conference_Location :
Salt Lake City, UT
Print_ISBN :
978-1-4673-6218-4
DOI :
10.1109/SC.Companion.2012.95