Memory-Efficient Object-Oriented Programming on GPUs

08/16/2019
by   Matthias Springer, et al.
0

Object-oriented programming is often regarded as too inefficient for high-performance computing (HPC), despite the fact that many important HPC problems have an inherent object structure. Our goal is to bring efficient, object-oriented programming to massively parallel SIMD architectures, especially GPUs. In this thesis, we develop various techniques for optimizing object-oriented GPU code. Most notably, we identify the object-oriented Single-Method Multiple-Objects (SMMO) programming model. We first develop an embedded C++ Structure of Arrays (SOA) data layout DSL for SMMO applications. We then design a lock-free, dynamic memory allocator that stores allocations in SOA layout. Finally, we show how to further optimize the memory access of SMMO applications with memory defragmentation.

READ FULL TEXT

page 26

page 27

research
10/28/2018

DynaSOAr: A Parallel Memory Allocator for Object-oriented Programming on GPUs with Efficient Memory Access

Object-oriented programming has long been regarded as too inefficient fo...
research
10/10/2017

SoAx: A generic C++ Structure of Arrays for handling Particles in HPC Codes

The numerical study of physical problems often require integrating the d...
research
01/23/2019

Safely Abstracting Memory Layouts

Modern architectures require applications to make effective use of cache...
research
11/22/2018

Object-oriented design for massively parallel computing

We define an abstract framework for object-oriented programming and show...
research
04/17/2021

Ripple : Simplified Large-Scale Computation on Heterogeneous Architectures with Polymorphic Data Layout

GPUs are now used for a wide range of problems within HPC. However, maki...
research
03/25/2022

Aspect-Oriented Programming based building block platform to construct Domain-Specific Language for HPC application

The world of HPC systems is changing to a more complicated system becaus...
research
09/27/2020

A Type-Oriented Graph500 Benchmark

Data intensive workloads have become a popular use of HPC in recent year...

Please sign up or login with your details

Forgot password? Click here to reset