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

2012 年度 実施状況報告書

共有メモリモデルとスケジューリング最適化によるGPGPUプログラミング技術

研究課題

研究課題/領域番号 24500060
研究種目

基盤研究(C)

研究機関三重大学

研究代表者

大野 和彦  三重大学, 工学(系)研究科(研究院), 講師 (20303703)

研究期間 (年度) 2012-04-01 – 2015-03-31
キーワード高性能計算 / GPGPU / 並列プログラミング言語 / 言語処理系 / CUDA / プログラミングモデル
研究概要

グラフィック処理用のGPUを用いた高性能計算はコストパフォーマンスの高さから利用が増えているが、現状のプログラミング環境は生産性・再利用性に問題がある。そこで、現在使われている開発環境CUDAに対し、新たな開発環境MESI-CUDAの実現を目指して手法の研究と処理系の開発を行っている。本研究では、共有メモリ型の簡潔なプログラミングモデルを導入して記述性を向上させる一方で、静的解析を利用した自動最適化によりプログラムの実行性能を確保するアプローチをとっている。平成24年度は、以下の2点について研究・開発を行った。
(1)シェアードメモリを利用する手法
従来のMESI-CUDAのコード生成部は汎用性を重視し、GPU側では大容量のグローバルメモリのみ使用していた。これに対し、小容量だが高速なシェアードメモリを活用することで、より高速な実行が可能になる。CUDAでは手作業でこのような工夫を行うことが多いが、最適化するのは非常に難易度が高い。そこで、優先的にシェアードメモリに配置すべきデータを発見する解析手法を開発し、その結果に基づき2種類のメモリを併用するコードの自動生成を実現した。
(2)ポインタを含むデータに対応する手法
従来のMESI-CUDAではポインタを扱うことができず、リスト・グラフなどの動的データ構造をGPU上で利用できない。そこで、動的データ構造中にポインタとして含まれるアドレス値を自動的に変換する手法を開発し、CPU・GPU間で透過的に動的データ構造を共有できる機構を実現した。他の研究ではテンプレートの導入などによりデータの抽象化を行っているのに対し、C言語ネイティブなデータ構造を直接変換するため、コードの追加なしに任意のデータ構造を共有できる利点がある。性能評価の結果、懸念される変換オーバヘッドについても、実プログラムでは許容範囲であった。

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

2: おおむね順調に進展している

理由

GPUアーキテクチャの複雑なメモリ構造を単純な共有メモリモデルで隠蔽することは、本研究の特徴である一方、このメモリ構造を活用する自動最適化が重要課題である。今年度に取り組んだシェアードメモリの活用手法は、CUDAでの手動最適化でも大きな効果が得られる重要な要素であり、MESI-CUDAが自動生成するコードの性能向上に欠かせない。今年度の研究では、未完成ではあるが基礎的な技術を得ることができた。次年度以降、解析・コード手法を拡張・改良することで、大幅な性能向上に繋げられると考えている。また、今回開発したデータの使用頻度を解析する手法は、データ転送のスケジューリング最適化にも利用できる。
GPUアーキテクチャはもともと配列主体の定型的なデータ構造に適しており、本研究でも当初は配列上のデータを想定していた。しかし、最近ではGPGPUがより広範囲に利用されるようになっており、動的データ構造が必要とされるケースも多い。このため当初の計画にはなかったが、ポインタを含むデータに対応するための技術開発を行った。今回の成果により、MESI-CUDAの実用性が大きく向上すると考えている。また、従来より動的にメモリを管理する機構を実現したため、今後スケジューリングの最適化などを行う際の自由度が高まった。
人材面では今年度に学部学生2名が本研究に参加し、共に大学院に進学した。このため、次年度・次々年度は実装や評価の体制がより強化できると考えている。

今後の研究の推進方策

当初の計画と比較して課題に取り組む順序や内容が一部変更されているが、予定通り、今年度中に単一GPUの利用に関して実用レベルの解析・コード生成手法を得ることを目指す。また、第3世代アーキテクチャKeplerを採用したGPUが登場しているため、早期にこれを購入し、keplerでの性能評価や新アーキテクチャへの手法の適合などを進めていく。
当初の計画ではCPU・GPU間のデータ転送やカーネル関数実行のスケジューリングを重視していた。しかし、その後の調査やKeplerの新機能を検討した結果、データの分割とメモリへのマッピングが重要であり、処理のスケジューリングについてもデータマッピング主導で行う方が良い性能を達成できるとの感触を得ている。具体的には、現在はCUDA同様に必須であるGPUへの処理のマッピング記述を廃止するよう言語仕様を変更していく。これにより、マッピング・スケジューリングともに処理系に委ねられ、プログラムの記述をさらに簡潔にできる。一方で、処理系内でのコード生成の自由度が高まるため、新たにデータマッピング主導型のスケジューリング手法を開発し、高性能な最適化機構の実現を目指す。

次年度の研究費の使用計画

以前より使用していたGPU用PCに不調が生じたため、当初予定していたGPGPUカードの購入と合わせてPCを1台前倒しで導入した。一方で、国内・国外発表の件数が年度開始時の見込みより減少した。このため、全体として2万円程度が次年度に持ち越されることになった。
次年度研究費についても、新アーキテクチャを採用したGPUが想定したより高額であったため、物品購入や対外発表の計画も修正していく必要がある。

  • 研究成果

    (4件)

すべて 2013 2012

すべて 雑誌論文 (1件) (うち査読あり 1件) 学会発表 (3件)

  • [雑誌論文] A GPGPU Programming Framework Based on a Shared-memory Model2013

    • 著者名/発表者名
      Kazuhiko Ohno, Dai Michiura, Masaki Matsumoto, Takahiro Sasaki, Toshio Kondo
    • 雑誌名

      Parallel and Distributed Computing and Networks

      巻: 3 ページ: 1-12

    • 査読あり
  • [学会発表] シェアードメモリを利用したGPGPU処理系の自動最適化機構2013

    • 著者名/発表者名
      丸山 剛寛,神谷 智晴,松本 真樹,大野 和彦
    • 学会等名
      先進的計算基盤システムシンポジウムSACSIS2013
    • 発表場所
      仙台国際センター
    • 年月日
      20130522-20130524
  • [学会発表] Supporting Dynamic Data Structures in a Shared-memory Based GPGPU Programming Framework2012

    • 著者名/発表者名
      Kazuhiko Ohno, Masaki Matsumoto, Tomoharu Kamiya, Takanori Maruyama
    • 学会等名
      IASTED International Conference Parallel and Distributed Computing and Systems(PDCS 2012)
    • 発表場所
      Las Vegas, USA
    • 年月日
      20121112-20121114
  • [学会発表] GPGPUにおけるデータ転送を自動化するMESI-CUDAの提案2012

    • 著者名/発表者名
      道浦 悌, 大野 和彦, 松本 真樹, 佐々木 敬泰, 近藤 利夫
    • 学会等名
      先進的計算基盤システムシンポジウムSACSIS2012
    • 発表場所
      神戸国際会議場
    • 年月日
      20120516-20120518

URL: 

公開日: 2014-07-24  

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

Powered by NII kakenhi