研究実績の概要 |
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.
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
1: 当初の計画以上に進展している
理由
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.
|
今後の研究の推進方策 |
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.
|