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

2013 年度 実施状況報告書

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

研究課題

研究課題/領域番号 24500060
研究機関三重大学

研究代表者

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

キーワード高性能計算 / GPGPU / 並列プログラミング言語 / 言語処理系 / CUDA / プログラミングモデル
研究概要

グラフィック処理用のGPUを用いた高性能計算はコストパフォーマンスの高さから利用が増えているが、現状のプログラミング環境は生産性・再利用性に問題がある。そこで、現在使われている開発環境CUDAに対し、新たな開発環境MESI-CUDAの実現を目指して手法の研究と処理系の開発を行っている。本研究では、共有メモリ型の簡潔なプログラミングモデルを導入して記述性を向上させる一方で、静的解析を利用した自動最適化によりプログラムの実行性能を確保するアプローチをとっている。平成25年度は、以下の3点について研究・開発を行った。
(1)メモリを効率的に利用する手法:昨年度に行ったシェアードメモリを自動利用する手法について、より広範囲に適用できるよう改良・拡張を行った。また、グローバルメモリも含めた全体のメモリ利用効率化を図るため、データのメモリマッピング・スケジューリング手法の研究を行った。
(2)マルチGPUを効率的に利用する手法:1台のPC上に性能の異なる複数GPUを装着した際に、静的・動的負荷分散により各GPUを効率的に利用する手法の研究を行った。
(3)GPUスレッドのマッピングを仮想化する手法:現在のMESI-CUDAは仮想共有メモリモデルの導入によりメモリアクセス・管理を簡易化する一方、GPUスレッドについてはCUDAと同様に物理的な生成及びマッピングを直接記述する。そこで、論理的なスレッド生成を導入し、コア数などのハードウェアではなく処理データに応じた大きさ・次元を指定する並列記述手法を導入した。本拡張により、ユーザが実行ハードウェアを意識せずにプログラムを書ける一方、処理系がハードウェアに応じた最適マッピングを行うことができる。また、物理スレッドの生成タイミングを隠蔽することでデータ転送・スレッド実行スケジューリングの自由度も高くなり、より強力な最適化が可能になる。

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

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

理由

本研究の柱であるメモリ利用の効率化とスケジューリングについて、研究を進めることができた。
メモリ利用の効率化については、性能向上に大きく影響するシェアードメモリの自動利用手法について、これまでの手法を改良して一般化し、適用範囲を広げてより高い性能を得ることができた。また、グローバルメモリの利用についても、大規模なデータを適時入れ替えながら配置する手法について研究を進めた。
スケジューリングについては前年度に得た、データマッピング主導で行うほうが良い結果が得られるとの知見に基づき、論理スレッドの導入によってデータマッピングをユーザから隠蔽するアプローチで研究を進めた。具体的には、ユーザがGPUスレッド生成を記述する際には処理データに依存した次元・大きさを指定し、コンパイラがハードウェアにマッピングする。これにより、従来は考慮する必要があったブロック毎のコア数などのアーキテクチャ依存パラメータを、ユーザプログラムから排除できる。一方、コンパイラが最適化の都合に合わせて各次元のマッピングやブロック内スレッド数を決定できるので、シェアードメモリを活用できるようにスレッド数を制限する、といった従来不可能だった最適化が可能になった。
また、最終年度に予定しているマルチGPUへの対応に向けて、性能の異なる複数GPUを搭載した環境上で負荷分散を行う方式の試験実装と予備評価を行った。
対外発表については、当初投稿を予定していた国際会議が開催されず、国内会議の発表のみにとどまった。25年度は早期に国際会議に投稿し、年度内に雑誌論文にまとめる予定である。

今後の研究の推進方策

最新版のCUDA6で本研究と同様の共有メモリ型プログラミングがサポートされたため、今後はこのようなGPGPUプログラミングが増加すると思われる。このことは、本研究で提案してきたMESI-CUDAのアプローチが妥当であることを裏付ける一方で、今後CUDAとの差異を明確にしていく必要が生じている。
CUDAの同機能はハードウェアとランタイムによるものであり、MESI-CUDAのようにプログラム解析を用いて最適化を施すアプローチは取っていない。必ずしも高性能を実現できるわけではなく、初心者向けのより簡便なプログラミング方法と位置づけられている。したがって、本研究では今後、CUDA6に対する優位点といえるコンパイラの最適化機能を強化する方向で研究を進めていく。また、今年度に導入した論理的なスレッド生成機構はCUDA6より簡易かつハードウェア依存のないGPGPUプログラミングを可能にするものであり、今後本格的な実装および最適化における活用を行ってく予定である。
一方で、最新の第3世代GPUアーキテクチャKeplerやそれに合わせたGPUランタイムでは、CUDA6での共有メモリ型のプログラミングをサポートする機構が追加されており、データ転送のように局所的・低レベルな要素では従来の機構を使用するMESI-CUDAより優位と予想される。したがって、MESI-CUDAにおける仮想共有メモリの低レベルな実装を一部CUDA6の機能に置き換えることで、個々のプログラムに応じた自動最適化が可能という本研究の利点を生かしたまま、CUDA/GPUの新機能の恩恵を受けられる可能性がある。今年度においてKeplerアーキテクチャのGPUカードは導入済みであり、次年度はCUDA6の評価を行いつつMESI-CUDAとの連携を図っていく。

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

投稿を予定していた国際会議が開催されなかったことにより、今年度の海外出張旅費に余剰が生じた。
今年度の研究成果に関して、次年度早期に国際会議に投稿し発表する予定である。このため、次年度は海外出張旅費が当初予定より増える見込みである。

  • 研究成果

    (4件)

すべて 2013

すべて 雑誌論文 (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-14

    • DOI

      10.2316/Journal.211.2013.3.211-1053

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

    • 著者名/発表者名
      神谷 智晴,丸山 剛寛,松本 真樹,大野 和彦
    • 学会等名
      2013年並列/分散/協調処理に関する 『北九州』サマー・ワークショップ SWoPP2013
    • 発表場所
      北九州国際会議場
    • 年月日
      20130731-20130802
  • [学会発表] シェアードメモリを利用したGPGPU処理系の自動最適化機構2013

    • 著者名/発表者名
      丸山 剛寛,神谷 智晴,松本 真樹,大野 和彦
    • 学会等名
      先進的計算基盤システムシンポジウムSACSIS2013
    • 発表場所
      仙台国際センター
    • 年月日
      20130522-20130524
  • [学会発表] GPGPU処理系の自動最適化手法におけるシェアードメモリへのデータ転送方法の改良2013

    • 著者名/発表者名
      神谷 智晴,丸山 剛寛,大野 和彦
    • 学会等名
      情報処理学会ハイパフォーマンス研究発表会
    • 発表場所
      石川県名倉温泉
    • 年月日
      20130303-20130304

URL: 

公開日: 2015-05-28  

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

Powered by NII kakenhi