Automatic parallelization of kernels in shared-memory multi-GPU nodes

Javier Cabezas, Lluís Vilanova, Isaac Gelado, Thomas B. Jablin, Nacho Navarro, Wen Mei W. Hwu

Research output: Chapter in Book/Report/Conference proceedingConference contribution


In this paper we present AMGE, a programming framework and runtime system that transparently decomposes GPU kernels and executes them on multiple GPUs in parallel. AMGE exploits the remote memory access capability in modern GPUs to ensure that data can be accessed regardless of its physical location, allowing our runtime to safely decompose and distribute arrays across GPU memories. It optionally performs a compiler analysis that detects array access patterns in GPU kernels. Using this information, the runtime can perform more efficient computation and data distribution configurations than previous works. The GPU execution model allows AMGE to hide the cost of remote accesses if they are kept below 5%. We demonstrate that a thread block scheduling policy that distributes remote accesses through the whole kernel execution further reduces their overhead. Results show 1.98× and 3.89× execution speedups for 2 and 4 GPUs for a wide range of dense computations compared to the original versions on a single GPU.

Original languageEnglish (US)
Title of host publicationICS 2015 - Proceedings of the 29th ACM International Conference on Supercomputing
PublisherAssociation for Computing Machinery
Number of pages11
ISBN (Electronic)9781450335591
StatePublished - Jun 8 2015
Event29th ACM International Conference on Supercomputing, ICS 2015 - Newport Beach, United States
Duration: Jun 8 2015Jun 11 2015

Publication series

NameProceedings of the International Conference on Supercomputing


Other29th ACM International Conference on Supercomputing, ICS 2015
CountryUnited States
CityNewport Beach


  • Multi-GPU programming
  • NUMA

ASJC Scopus subject areas

  • Computer Science(all)

Fingerprint Dive into the research topics of 'Automatic parallelization of kernels in shared-memory multi-GPU nodes'. Together they form a unique fingerprint.

Cite this