TY - GEN
T1 - An asymmetric distributed shared memory model for heterogeneous parallel systems
AU - Gelado, Isaac
AU - Cabezas, Javier
AU - Navarro, Nacho
AU - Stone, John E.
AU - Patel, Sanjay
AU - Hwu, Wen Mei W.
PY - 2010
Y1 - 2010
N2 - Heterogeneous computing combines general purpose CPUs with accelerators to efficiently execute both sequential control-intensive and data-parallel phases of applications. Existing programming models for heterogeneous computing rely on programmers to explicitly manage data transfers between the CPU system memory and accelerator memory. This paper presents a new programming model for heterogeneous computing, called Asymmetric Distributed Shared Memory (ADSM), that maintains a shared logical memory space for CPUs to access objects in the accelerator physical memory but not vice versa. The asymmetry allows light-weight implementations that avoid common pitfalls of symmetrical distributed shared memory systems. ADSM allows programmers to assign data objects to performance critical methods. When a method is selected for accelerator execution, its associated data objects are allocated within the shared logical memory space, which is hosted in the accelerator physical memory and transparently accessible by the methods executed on CPUs. We argue that ADSM reduces programming efforts for heterogeneous computing systems and enhances application portability. We present a software implementation of ADSM, called GMAC, on top of CUDA in a GNU/Linux environment. We show that applications written in ADSM and running on top of GMAC achieve performance comparable to their counterparts using programmer-managed data transfers. This paper presents the GMAC system and evaluates different design choices. We further suggest additional architectural support that will likely allow GMAC to achieve higher application performance than the current CUDA model.
AB - Heterogeneous computing combines general purpose CPUs with accelerators to efficiently execute both sequential control-intensive and data-parallel phases of applications. Existing programming models for heterogeneous computing rely on programmers to explicitly manage data transfers between the CPU system memory and accelerator memory. This paper presents a new programming model for heterogeneous computing, called Asymmetric Distributed Shared Memory (ADSM), that maintains a shared logical memory space for CPUs to access objects in the accelerator physical memory but not vice versa. The asymmetry allows light-weight implementations that avoid common pitfalls of symmetrical distributed shared memory systems. ADSM allows programmers to assign data objects to performance critical methods. When a method is selected for accelerator execution, its associated data objects are allocated within the shared logical memory space, which is hosted in the accelerator physical memory and transparently accessible by the methods executed on CPUs. We argue that ADSM reduces programming efforts for heterogeneous computing systems and enhances application portability. We present a software implementation of ADSM, called GMAC, on top of CUDA in a GNU/Linux environment. We show that applications written in ADSM and running on top of GMAC achieve performance comparable to their counterparts using programmer-managed data transfers. This paper presents the GMAC system and evaluates different design choices. We further suggest additional architectural support that will likely allow GMAC to achieve higher application performance than the current CUDA model.
KW - Asymmetric distributed shared memory
KW - Data-centric programming models
KW - Heterogeneous systems
UR - http://www.scopus.com/inward/record.url?scp=77952251540&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=77952251540&partnerID=8YFLogxK
U2 - 10.1145/1736020.1736059
DO - 10.1145/1736020.1736059
M3 - Conference contribution
AN - SCOPUS:77952251540
SN - 9781605588391
T3 - International Conference on Architectural Support for Programming Languages and Operating Systems - ASPLOS
SP - 347
EP - 358
BT - ASPLOS XV - 15th International Conference on Architectural Support for Programming Languages and Operating Systems
T2 - 15th International Conference on Architectural Support for Programming Languages and Operating Systems, ASPLOS XV
Y2 - 13 March 2010 through 17 March 2010
ER -