Info: Zenodo’s user support line is staffed on regular business days between Dec 23 and Jan 5. Response times may be slightly longer than normal.

Published September 6, 2023 | Version v1
Preprint Open

Unified Shared Memory: Friend or Foe? Understanding the Implications of Unified Memory on Managed Heaps

Description

Adopting heterogeneous execution on GPUs and FPGAs in managed runtime systems, such as Java, is a challenging task due to the complexities of the underlying virtual machine. The majority of current work has been focusing on compiler toolchains to solve the challenge of transparent just-in-time compilation of different code segments onto the accelerators. However, apart from providing automatic code generation, one of the challenges is also the seamless interoperability with the host memory manager and the Garbage Collector (GC). Currently, heterogeneous programming models on top of managed runtime systems, such as Aparapi and TornadoVM, need to block the GC when running native code (e.g, JNI code) in order to prevent the GC from moving data while the native code is still running on the hardware accelerator.

To tackle this challenge, this paper proposes a novel Unified Memory (UM) memory allocator for heterogeneous programming frameworks for managed runtime systems. In this paper we show how, by providing small changes to a Java runtime system, automatic memory management can be enhanced to perform object reclamation not only on the host, but on the device also. This is done by allocating the Java Virtual Machine's object heap in unified memory which is visible to all hardware accelerators. In this manner, we enable transparent page migration of Java heap-allocated objects between the host and the accelerator, since our UM system is aware of pointers and object migration due to GC collections. This technique has been implemented in the context of MaxineVM, an open source research VM for Java written in Java. We evaluated our approach on a discrete and an integrated GPU, showcasing under which conditions UM can benefit execution across different benchmarks and configurations. Our results indicate that when hardware acceleration is not employed, UM does not pose significant overheads unless memory intensive workloads are encountered which can exhibit up to 12% (worst case) and 2% (average) slowdowns. In addition, if hardware acceleration is used, UM can achieve up to 9.3x speedup compared to the non-UM baseline implementation.

Files

2023-09-MPLR-Unified-Shared-Memory.pdf

Files (2.3 MB)

Name Size Download all
md5:1284aa9ba4c5826214d22a5287e277a9
2.3 MB Preview Download

Additional details

Funding

ELEGANT – Secure and Seamless Edge-to-Cloud Analytics 957286
European Commission
ENCRYPT – A SCALABLE AND PRACTICAL PRIVACY-PRESERVING FRAMEWORK 101070670
European Commission
TANGO – Digital Technologies ActiNg as a Gatekeeper to information and data flOws 101070052
European Commission
AERO – Accelerated EuRopean clOud 101092850
European Commission
INCODE – Programming Platform for Intelligent Collaborative Deployments over Heterogeneous Edge-IoT Environments 101093069
European Commission