A survey of architectural approaches for improving GPGPU performance, programmability and heterogeneity

Mahmoud Khairy, Amr G. Wassal, Mohamed Zahran

Research output: Contribution to journalArticlepeer-review


With the skyrocketing advances of process technology, the increased need to process huge amount of data, and the pivotal need for power efficiency, the usage of Graphics Processing Units (GPUs) for General Purpose Computing becomes a trend and natural. GPUs have high computational power and excellent performance per watt, for data parallel applications, relative to traditional multicore processors. GPUs appear as discrete or embedded with CPUs, leading to a scheme of heterogeneous computing. Heterogeneous computing brings as many challenges as it brings opportunities. To get the most of such systems, we need to guarantee high GPU utilization, deal with irregular control flow of some workloads, and struggle with far-friendly-programming models. The aim of this paper is to provide a survey about GPUs from two perspectives: architectural advances to improved performance and programmability and advances to enhance CPU–GPU integration in heterogeneous systems. This will help researchers see the opportunities and challenges of using GPUs for general purpose computing, especially in the era of big data and the continuous need of high-performance computing.

Original languageEnglish (US)
Pages (from-to)65-88
Number of pages24
JournalJournal of Parallel and Distributed Computing
StatePublished - May 2019


  • Control divergence
  • Heterogeneous architecture
  • Memory systems

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture
  • Computer Networks and Communications
  • Artificial Intelligence


Dive into the research topics of 'A survey of architectural approaches for improving GPGPU performance, programmability and heterogeneity'. Together they form a unique fingerprint.

Cite this