2018 Fiscal Year Annual Research Report
Optimization Techniques and Language Abstractions for GPGPU in Ruby
Project/Area Number |
18J14726
|
Research Institution | Tokyo Institute of Technology |
Principal Investigator |
SPRINGER MATTHIAS 東京工業大学, 大学院情報理工学研究科, 特別研究員(DC2)
|
Project Period (FY) |
2018-04-25 – 2020-03-31
|
Keywords | Obj.-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.
|