Optimization Techniques and Language Abstractions for GPGPU in Ruby
Grant-in-Aid for JSPS Fellows
|Allocation Type||Single-year Grants |
High performance computing
|Research Institution||Tokyo Institute of Technology |
SPRINGER MATTHIAS 東京工業大学, 大学院情報理工学研究科, 特別研究員(DC2)
|Project Period (FY)
2018-04-25 – 2020-03-31
Granted (Fiscal Year 2019)
|Budget Amount *help
¥1,500,000 (Direct Cost: ¥1,500,000)
Fiscal Year 2019: ¥700,000 (Direct Cost: ¥700,000)
Fiscal Year 2018: ¥800,000 (Direct Cost: ¥800,000)
|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.
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.
Report (1 results)
Research Products (3 results)