Memory-Efficient Object-Oriented Programming on GPUs
Tokyo Institute of Technology
arXiv:1908.05845 [cs.PL], (16 Aug 2019)
@misc{springer2019memoryefficient,
title={Memory-Efficient Object-Oriented Programming on GPUs},
author={Matthias Springer},
year={2019},
eprint={1908.05845},
archivePrefix={arXiv},
primaryClass={cs.PL}
}
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.
August 25, 2019 by hgpu