• Search Research Projects
  • Search Researchers
  • How to Use
  1. Back to project page

2018 Fiscal Year Annual Research Report

Optimization Techniques and Language Abstractions for GPGPU in Ruby

Research Project

Project/Area Number 18J14726
Research InstitutionTokyo Institute of Technology

Principal Investigator

SPRINGER MATTHIAS  東京工業大学, 大学院情報理工学研究科, 特別研究員(DC2)

Project Period (FY) 2018-04-25 – 2020-03-31
KeywordsObj.-oriented Program. / GPUs / SMMO / Dynamic Mem. Allocation / Data Layout
Outline of Annual Research Achievements

Our research was centered around bringing abstractions for fast object-oriented programming (OOP) to GPUs. We developed two CUDA frameworks in the last year: Ikra-Cpp and DynaSOAr.

Ikra-Cpp is a data layout DSL that stores objects in the SIMD-friendly Structure-of-Arrays (SOA) layout without breaking OOP abstractions in C++/CUDA.

DynaSOAr extends Ikra-Cpp with a dynamic memory allocator based on concurrent, lock-free, hierarchical bitmaps. We optimized DynaSOAr for a class of OOP applications that we called SMMO (Single-Method Multiple-Objects). In our recent research paper at ECOOP 2019 we show that SMMO has many important real-world applications. DynaSOAr can speedup SMMO applications compared to other state-of-the-art GPU memory allocators.

Current Status of Research Progress
Current Status of Research Progress

1: Research has progressed more than it was originally planned.

Reason

Dynamic memory allocation ("instantiation") was one of the main challenges that we identified in the project proposal. This problem is now solved and our research results were recently accepted for publication at ECOOP 2019.

With SMMO, we found an important subclass of OOP problems. Examples for SMMO applications are: Social simulations (e.g., Sugarscape), evacuation simulations, predicting wildfire spreading, FEMs, particle systems, etc. This underlines the importance of our research.

Ikra-Cpp and DynaSOAr received interest from the research community. Ikra-Cpp won the 3rd prize at the ACM Student Research Competition (SRC) of CGO 2018 and DynaSOAr won the 1st place at the SRC of SPLASH 2018.

Strategy for Future Research Activity

We are currently trying to further improve the performance of DynaSOAr with "memory defragmentation", which we expect to result in better memory bandwidth utilization.

The are two main next steps: First, we would like to support more advanced OOP features in DynaSOAr (e.g., virtual method calls) and improve the DynaSOAr API with a custom preprocessor such as ROSE. Second, we would like to investigate how DynaSOAr code can be generated from high-level languages such as Ruby.

We will continue to actively search for and implement SMMO example applications to further convince the research community of the importance of object-oriented programming in the area of high-performance computing.

  • Research Products

    (3 results)

All 2018

All Journal Article (1 results) (of which Int'l Joint Research: 1 results,  Peer Reviewed: 1 results) Presentation (2 results)

  • [Journal Article] Inner Array Inlining for Structure of Arrays Layout2018

    • Author(s)
      Matthias Springer, Yaozhu Sun, Hidehiko Masuhara
    • Journal Title

      5th ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming

      Volume: - Pages: 50-58

    • DOI

      10.1145/3219753.3219760

    • Peer Reviewed / Int'l Joint Research
  • [Presentation] Inner Array Inlining for Structure of Arrays Layout2018

    • Author(s)
      Matthias Springer
    • Organizer
      5th ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming
  • [Presentation] SoaAlloc: Accelerating Single-Method Multiple-Objects Applications on GPUs2018

    • Author(s)
      Matthias Springer
    • Organizer
      ACM Student Research Competition at SPLASH 2018

URL: 

Published: 2019-12-27  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi