• 研究課題をさがす
  • 研究者をさがす
  • KAKENの使い方
  1. 課題ページに戻る

2018 年度 実績報告書

生産性の高いGPU向けプログラミング言語処理系

研究課題

研究課題/領域番号 18H03219
研究機関東京工業大学

研究代表者

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

研究期間 (年度) 2018-04-01 – 2023-03-31
キーワードGPGPU / Ruby / 領域特化言語 / メモリ管理 / JITコンパラ / プログラム合成
研究実績の概要

言語設計に関しては領域特化言語のための中間言語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ワークショップにおいて査読付論文として発表した。

現在までの達成度 (区分)
現在までの達成度 (区分)

1: 当初の計画以上に進展している

理由

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

今後の研究の推進方策

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

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

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

  • 研究成果

    (23件)

すべて 2019 2018 その他

すべて 国際共同研究 (3件) 雑誌論文 (8件) (うち国際共著 3件、 査読あり 8件) 学会発表 (9件) (うち国際学会 1件、 招待講演 1件) 備考 (3件)

  • [国際共同研究] SUNY Binghamton/City University of New York(米国)

    • 国名
      米国
    • 外国機関名
      SUNY Binghamton/City University of New York
  • [国際共同研究] University of Potsdam(ドイツ)

    • 国名
      ドイツ
    • 外国機関名
      University of Potsdam
  • [国際共同研究] KTH Royal Institute of Technology(スウェーデン)

    • 国名
      スウェーデン
    • 外国機関名
      KTH Royal Institute of Technology
  • [雑誌論文] Extending a meta-tracing compiler to mix method and tracing compilation2019

    • 著者名/発表者名
      Yusuke Izawa, Hidehiko Masuhara, Tomoyuki Aotani
    • 雑誌名

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

      巻: - ページ: -

    • DOI

      -

    • 査読あり
  • [雑誌論文] A shell-like model for general purpose programming2019

    • 著者名/発表者名
      Jeanine Miller Adkisson, Johannes Westlund, Hidehiko Masuhara
    • 雑誌名

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

      巻: - ページ: -

    • DOI

      -

    • 査読あり / 国際共著
  • [雑誌論文] Massively parallel GPU memory compaction2019

    • 著者名/発表者名
      Matthias Springer and Hidehiko Masuhara
    • 雑誌名

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

      巻: - ページ: -

    • DOI

      -

    • 査読あり
  • [雑誌論文] DynaSOAr: A parallel memory allocator for object-oriented programming on GPUs with efficient memory access2019

    • 著者名/発表者名
      Matthias Springer and Hidehiko Masuhara
    • 雑誌名

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

      巻: - ページ: -

    • DOI

      -

    • 査読あり
  • [雑誌論文] Inner array inlining for structure of arrays layout2018

    • 著者名/発表者名
      Matthias Springer, Yaozhu Sun, Hidehiko Masuhara
    • 雑誌名

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

      巻: - ページ: 50-58

    • DOI

      10.1145/3219753.3219760

    • 査読あり / 国際共著
  • [雑誌論文] A context-oriented programming approach to dependency hell2018

    • 著者名/発表者名
      Yudai Tanabe, Tomoyuki Aotani, Hidehiko Masuhara
    • 雑誌名

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

      巻: - ページ: 14-8

    • DOI

      10.1145/3242921.3242923

    • 査読あり
  • [雑誌論文] Live, synchronized, and mental map preserving visualization for data structure programming2018

    • 著者名/発表者名
      Akio Oka, Hidehiko Masuhara, Tomoyuki Aotani
    • 雑誌名

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

      巻: - ページ: 72-87

    • DOI

      10.1145/3276954.3276962

    • 査読あり
  • [雑誌論文] Stochastic energy optimization for mobile GPS applications2018

    • 著者名/発表者名
      Anthony Canino, Yu David Liu, Hidehiko Masuhara
    • 雑誌名

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

      巻: - ページ: 703-713

    • DOI

      10.1145/3236024.3236076

    • 査読あり / 国際共著
  • [学会発表] On defining recursive functions in live data structure programming2019

    • 著者名/発表者名
      Akio Oka, Hidehiko Masuhara, Tomoyuki Aotani
    • 学会等名
      日本ソフトウェア科学会プログラミング論研究会
  • [学会発表] Programming experiences with a live programming environment for data structures2019

    • 著者名/発表者名
      Hidehiko Masuhara, Akio Oka, Tomoki Ogushi
    • 学会等名
      International Conference on the Art, Science, and Engineering of Programming (<Programming>'19)
    • 国際学会
  • [学会発表] A shell-like model for general purpose programming2019

    • 著者名/発表者名
      Jeanine Miller Adkisson, Johannes Westlund, Hidehiko Masuhara
    • 学会等名
      情報処理学会第122回プログラミング研究会
  • [学会発表] プロファイル型プログラム合成によるGPGPUプログラムの半自動最適化2019

    • 著者名/発表者名
      蟹暁, 増原英彦, 青谷知幸
    • 学会等名
      日本ソフトウェア科学会プログラミング論研究会
  • [学会発表] バージョン付きモジュールシステムの提案2019

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

    • 著者名/発表者名
      田辺裕大, Lubis Luthfan Anshar, 青谷知幸, 増原英彦
    • 学会等名
      情報処理学会第124回プログラミング研究会
  • [学会発表] Narratives for multi-party mechanisms and concerns2018

    • 著者名/発表者名
      Robert Hirschfeld, Tobias Durschmid, Patrick Rein, Marcel Taeumel, Hidehiko Masuhara
    • 学会等名
      日本ソフトウェア科学会大会
  • [学会発表] GPGPUプログラム最適化のためのプログラム合成器とその適用手法2018

    • 著者名/発表者名
      蟹暁, 朝倉泉, 増原英彦, 青谷知幸
    • 学会等名
      The 3rd cross-disciplinary Workshop on Computing Systems, Infrastructures, and Programming (xSIG 2018)
  • [学会発表] Automated refactoring of legacy Java software to default methods2018

    • 著者名/発表者名
      Raffi Khatchadourian, 増原英彦
    • 学会等名
      第17回情報科学技術フォーラム
    • 招待講演
  • [備考] DynaSOAr: A CUDA Framework for SMMO Applications

    • URL

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

  • [備考] KaniCUDA

    • URL

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

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

    • URL

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

URL: 

公開日: 2019-12-27  

サービス概要 検索マニュアル よくある質問 お知らせ 利用規程 科研費による研究の帰属

Powered by NII kakenhi