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

2018 Fiscal Year Annual Research Report

High-Productivity GPU Programming Languages

Research Project

Project/Area Number 18H03219
Research InstitutionTokyo Institute of Technology

Principal Investigator

増原 英彦  東京工業大学, 情報理工学院, 教授 (40280937)

Project Period (FY) 2018-04-01 – 2023-03-31
KeywordsGPGPU / Ruby / 領域特化言語 / メモリ管理 / JITコンパラ / プログラム合成
Outline of Annual Research Achievements

言語設計に関しては領域特化言語のための中間言語Ikra/Cppの設計を拡充し、入れ子配列を扱えるようにした。この成果はPLDI国際会議併設のARRAY'18ワークショップにおいて査読付論文として発表された。また、複数のバージョンを併用するプログラムのための基本的な言語機構を考案し、予備的な論文をECOOP国際会議に併設されたCOP'18ワークショップにて発表した。

実行方式に関しては、実行時にGPU内で動的・並列にオブジェクトを生成するためのライブラリDynaSOArの設計と実現を行った。これまでほとんど行われていなかった、GPU内での並列実行時に、各スレッドが選択的にオブジェクトを生成することを可能にするもので、階層ビットマップやStructure-of-Arrays配置などの高速化技術を取り入れることに成功している。この成果は、SPLASH'18国際会議でポスター発表した後に、関連分野では最も権威のあるECOOP'19国際会議と、その拡張についての論文がISMM'19国際会議に論文が採択されている。また、メタ実行時コンパイラに複数のコンパイル方式を導入する提案を行い、MinCamlコンパイラに基づく簡素な処理系を作成した。この提案についての予備的な論文が国際会議<Programming>併設のMoreVMs'19ワークショップに採択された。

正しさに関しては、GPGPUプログラムの最適化をプログラム合成手法によって実現する手法を提案した。誤りを引き起こしがちな共有メモリ最適化を、最適化前のプログラムと同じ動作をするプログラムを自動合成することで誤りなく最適化を行うことを目指している。実際にCUDAプログラムの最適化を行う処理系を作成し、xSIG'18ワークショップおよびPPL'19ワークショップにおいて査読付論文として発表した。

Current Status of Research Progress
Current Status of Research Progress

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

Reason

GPU上でオブジェクト指向プログラミング(OOP)を可能にするための要素技術として、GPU内で並列にオブジェクト生成を行うメモリ管理手法を考案し、実際に作成したライブラリでその効率を確めることができた。研究計画時点では明らかではなかったこととして、そもそも動的なメモリ管理機構自体がGPUで並列実行には向かないことに気付いた点がある。これに対し、階層ビットマップを用いた効率的な実現方法を考案することができ、実際にその性能を確認できるライブラリを構築できたことの意義は大きい。この研究についての論文は、OOP分野では最も権威ある国際会議ECOOPに採択されていることからも、計画以上の進展を見たと考える。

Strategy for Future Research Activity

実行方式に関しては、2018年度に基本的なメモリ管理機構に関して大きな進展を見ることができたので、その点に関するさらなる効率化、異なる実行環境・アプリケーションプログラムでの性能評価を継続して行う。またIkra/Cpp中間言語との統合も進める。さらに、履歴型実行時コンパイラ系については、基本的な最適化方式を取り入れ、完成度を高めてゆく。

言語設計に関しては、メモリ管理機構を含めて言語設計を見直し、コンパイラ型の処理系に取り入れる。さらに、グラフ処理等の動的な並列性を持つプログラムのための記述方法を検討する。

正しさの保証に関しては、プログラム合成による最適化手法について、合成アルゴリズムの高速化と、アプリケーションプログラムを用いた性能評価を行ってゆく。

  • Research Products

    (23 results)

All 2019 2018 Other

All Int'l Joint Research (3 results) Journal Article (8 results) (of which Int'l Joint Research: 3 results,  Peer Reviewed: 8 results) Presentation (9 results) (of which Int'l Joint Research: 1 results,  Invited: 1 results) Remarks (3 results)

  • [Int'l Joint Research] SUNY Binghamton/City University of New York(米国)

    • Country Name
      U.S.A.
    • Counterpart Institution
      SUNY Binghamton/City University of New York
  • [Int'l Joint Research] University of Potsdam(ドイツ)

    • Country Name
      GERMANY
    • Counterpart Institution
      University of Potsdam
  • [Int'l Joint Research] KTH Royal Institute of Technology(スウェーデン)

    • Country Name
      SWEDEN
    • Counterpart Institution
      KTH Royal Institute of Technology
  • [Journal Article] Extending a meta-tracing compiler to mix method and tracing compilation2019

    • Author(s)
      Yusuke Izawa, Hidehiko Masuhara, Tomoyuki Aotani
    • Journal Title

      Proceedings of the Workshop on Modern Language Runtimes, Ecosystems, and VMs (MoreVMs'19)

      Volume: - Pages: -

    • DOI

      -

    • Peer Reviewed
  • [Journal Article] A shell-like model for general purpose programming2019

    • Author(s)
      Jeanine Miller Adkisson, Johannes Westlund, Hidehiko Masuhara
    • Journal Title

      Proceedings of the Workshop on Modern Language Runtimes, Ecosystems, and VMs: Track on Programming Across the System Stack (MoreVMs/PASS'19)

      Volume: - Pages: -

    • DOI

      -

    • Peer Reviewed / Int'l Joint Research
  • [Journal Article] Massively parallel GPU memory compaction2019

    • Author(s)
      Matthias Springer and Hidehiko Masuhara
    • Journal Title

      Proceedings of the ACM SIGPLAN International Symposium on Memory Management (ISMM' 19)

      Volume: - Pages: -

    • DOI

      -

    • Peer Reviewed
  • [Journal Article] DynaSOAr: A parallel memory allocator for object-oriented programming on GPUs with efficient memory access2019

    • Author(s)
      Matthias Springer and Hidehiko Masuhara
    • Journal Title

      Proceedings of of European Conference on Object-Oriented Programming (ECOOP'19)

      Volume: - Pages: -

    • DOI

      -

    • Peer Reviewed
  • [Journal Article] Inner array inlining for structure of arrays layout2018

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

      Proceedings of the 5th ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming (ARRAY@PLDI 2018)

      Volume: - Pages: 50-58

    • DOI

      10.1145/3219753.3219760

    • Peer Reviewed / Int'l Joint Research
  • [Journal Article] A context-oriented programming approach to dependency hell2018

    • Author(s)
      Yudai Tanabe, Tomoyuki Aotani, Hidehiko Masuhara
    • Journal Title

      Proceedings of the 10th International Workshop on Context-Oriented Programming: Advanced Modularity for Run-time Composition, COP '18

      Volume: - Pages: 14-8

    • DOI

      10.1145/3242921.3242923

    • Peer Reviewed
  • [Journal Article] Live, synchronized, and mental map preserving visualization for data structure programming2018

    • Author(s)
      Akio Oka, Hidehiko Masuhara, Tomoyuki Aotani
    • Journal Title

      Proceedings of the 2018 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2018

      Volume: - Pages: 72-87

    • DOI

      10.1145/3276954.3276962

    • Peer Reviewed
  • [Journal Article] Stochastic energy optimization for mobile GPS applications2018

    • Author(s)
      Anthony Canino, Yu David Liu, Hidehiko Masuhara
    • Journal Title

      Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, ESEC/FSE 2018

      Volume: - Pages: 703-713

    • DOI

      10.1145/3236024.3236076

    • Peer Reviewed / Int'l Joint Research
  • [Presentation] On defining recursive functions in live data structure programming2019

    • Author(s)
      Akio Oka, Hidehiko Masuhara, Tomoyuki Aotani
    • Organizer
      日本ソフトウェア科学会プログラミング論研究会
  • [Presentation] Programming experiences with a live programming environment for data structures2019

    • Author(s)
      Hidehiko Masuhara, Akio Oka, Tomoki Ogushi
    • Organizer
      International Conference on the Art, Science, and Engineering of Programming (<Programming>'19)
    • Int'l Joint Research
  • [Presentation] A shell-like model for general purpose programming2019

    • Author(s)
      Jeanine Miller Adkisson, Johannes Westlund, Hidehiko Masuhara
    • Organizer
      情報処理学会第122回プログラミング研究会
  • [Presentation] プロファイル型プログラム合成によるGPGPUプログラムの半自動最適化2019

    • Author(s)
      蟹暁, 増原英彦, 青谷知幸
    • Organizer
      日本ソフトウェア科学会プログラミング論研究会
  • [Presentation] バージョン付きモジュールシステムの提案2019

    • Author(s)
      田辺裕大, 青谷知幸, 増原英彦
    • Organizer
      日本ソフトウェア科学会プログラミング論研究会
  • [Presentation] コエフェクト計算に基づく量化型の再形式化2019

    • Author(s)
      田辺裕大, Lubis Luthfan Anshar, 青谷知幸, 増原英彦
    • Organizer
      情報処理学会第124回プログラミング研究会
  • [Presentation] Narratives for multi-party mechanisms and concerns2018

    • Author(s)
      Robert Hirschfeld, Tobias Durschmid, Patrick Rein, Marcel Taeumel, Hidehiko Masuhara
    • Organizer
      日本ソフトウェア科学会大会
  • [Presentation] GPGPUプログラム最適化のためのプログラム合成器とその適用手法2018

    • Author(s)
      蟹暁, 朝倉泉, 増原英彦, 青谷知幸
    • Organizer
      The 3rd cross-disciplinary Workshop on Computing Systems, Infrastructures, and Programming (xSIG 2018)
  • [Presentation] Automated refactoring of legacy Java software to default methods2018

    • Author(s)
      Raffi Khatchadourian, 増原英彦
    • Organizer
      第17回情報科学技術フォーラム
    • Invited
  • [Remarks] DynaSOAr: A CUDA Framework for SMMO Applications

    • URL

      https://github.com/prg-titech/dynasoar

  • [Remarks] KaniCUDA

    • URL

      https://github.com/prg-titech/Kani-CUDA

  • [Remarks] BacCaml: The Meta-Hybrid Just-In-Time Compiler

    • URL

      https://github.com/prg-titech/baccaml

URL: 

Published: 2019-12-27  

Information User Guide FAQ News Terms of Use Attribution of KAKENHI

Powered by NII kakenhi