Nested Object Support in a Structure-of-Arrays Dynamic Objector Allocator
DynaSOAr is a dynamic object allocator for GPGPU that enables object-oriented programming with an efficient structure-of-arrays (SOA) memory layout. One of the limitations in DynaSOAr is its poor support for nested objects. When a class has a field of another class, the fields of the inner class are allocated in an arrays-of-structure layout. This paper proposes a technique that translates nested class definitions into flat ones by inlining inner classes into top-level classes. We implemented this technique as a Sanajeh domain-specific language that translates Python class definitions into C++ classes using DynaSOAr. Our preliminary evaluation showed that Sanajeh executes a parallel benchmark program with nested objects at almost the same speed as the one with manually flatten classes.
Extended abstract (June 21, 2021) (array2021-sanajeh-2021-06-21.pdf) | 406KiB |
Mon 21 JunDisplayed time zone: Eastern Time (US & Canada) change
18:00 - 21:00 | |||
18:00 25mTalk | Improving the Performance of DGEMM with MoA and Cache-Blocking ARRAY Stephen Thomas National Renewable Energy Laboratory, Lenore Mullin SUNY Albany, USA, Kasia Swirydowicz Pacific Northwest National Laboratory File Attached | ||
18:25 25mTalk | Nested Object Support in a Structure-of-Arrays Dynamic Objector Allocator ARRAY File Attached | ||
18:50 25mTalk | Data Layouts are Important (Extended Abstract) ARRAY Doru Thom Popovici Lawrence Berkeley National Lab, Andrew Canning Lawrence Berkeley National Laboratory, Zhengji Zhao Lawrence Berkeley National Laboratory, Lin-Wang Wang Lawrence Berkeley National Laboratory, John Shalf Lawrence Berkeley National Laboratory File Attached |