Tue 19 Jun 2018 16:10 - 16:45 at Grand Ballroom C - Accessing the Memory System

Previous work has shown how the well-studied and SIMD-friendly Structure of Arrays (SOA) data layout strategy can speed up applications in high-performance computing compared to a traditional Array of Structures (AOS) data layout. However, a standard SOA layout cannot handle structures with inner arrays; such structures appear frequently in graph-based applications and object-oriented designs with associations of high multiplicity.

This work extends the SOA data layout to structures with array-typed fields. We present different techniques for inlining (embedding) inner arrays into an AOS or SOA layout, as well as the design and implementation of an embedded C++/CUDA DSL that lets programmers write such layouts in a notation close to standard C++. We evaluate several layout strategies with a traffic flow simulation, an important real-world application in transport planning.

Tue 19 Jun

Displayed time zone: Eastern Time (US & Canada) change

16:10 - 17:20
Accessing the Memory SystemARRAY at Grand Ballroom C
Inner Array Inlining for Structure of Arrays Layout
Matthias Springer Tokyo Institute of Technology, Yaozhu Sun Tokyo Institute of Technology, Hidehiko Masuhara Tokyo Institute of Technology
An Array API for Finite Difference Methods
Eva Burrows University of Bergen, Norway, Helmer André Friis IRIS, Norway, Magne Haveraaen University of Bergen, Norway