arXivDaily arXiv每日学术速递 周一至周五更新
arXiv 1908.05845cs.PL
收藏

基于GPU的内存高效面向对象编程

Memory-Efficient Object-Oriented Programming on GPUs

Matthias Springer

摘要:

面向对象编程通常被认为对于高性能计算(HPC)来说效率太低,尽管事实上许多重要的HPC问题具有固有的对象结构。我们的目标是为大规模并行SIMD架构(尤其是GPU)带来高效的面向对象编程。在这篇论文中,我们开发了各种技术来优化面向对象的GPU代码。最值得注意的是,我们确定了面向对象的单方法多对象(SMMO)编程模型。我们首先为SMMO应用开发了一个嵌入式C++阵列结构(SOA)数据布局DSL。然后,我们设计了一个无锁的,动态的内存分配器,存储在SOA布局的分配。最后,我们展示了如何通过内存碎片整理进一步优化SMMO应用程序的内存访问。

英文摘要:

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.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑