2012 Fiscal Year Research-status Report
共有メモリモデルとスケジューリング最適化によるGPGPUプログラミング技術
Project/Area Number |
24500060
|
Research Category |
Grant-in-Aid for Scientific Research (C)
|
Research Institution | Mie University |
Principal Investigator |
大野 和彦 三重大学, 工学(系)研究科(研究院), 講師 (20303703)
|
Project Period (FY) |
2012-04-01 – 2015-03-31
|
Keywords | 高性能計算 / GPGPU / 並列プログラミング言語 / 言語処理系 / CUDA / プログラミングモデル |
Research Abstract |
グラフィック処理用のGPUを用いた高性能計算はコストパフォーマンスの高さから利用が増えているが、現状のプログラミング環境は生産性・再利用性に問題がある。そこで、現在使われている開発環境CUDAに対し、新たな開発環境MESI-CUDAの実現を目指して手法の研究と処理系の開発を行っている。本研究では、共有メモリ型の簡潔なプログラミングモデルを導入して記述性を向上させる一方で、静的解析を利用した自動最適化によりプログラムの実行性能を確保するアプローチをとっている。平成24年度は、以下の2点について研究・開発を行った。 (1)シェアードメモリを利用する手法 従来のMESI-CUDAのコード生成部は汎用性を重視し、GPU側では大容量のグローバルメモリのみ使用していた。これに対し、小容量だが高速なシェアードメモリを活用することで、より高速な実行が可能になる。CUDAでは手作業でこのような工夫を行うことが多いが、最適化するのは非常に難易度が高い。そこで、優先的にシェアードメモリに配置すべきデータを発見する解析手法を開発し、その結果に基づき2種類のメモリを併用するコードの自動生成を実現した。 (2)ポインタを含むデータに対応する手法 従来のMESI-CUDAではポインタを扱うことができず、リスト・グラフなどの動的データ構造をGPU上で利用できない。そこで、動的データ構造中にポインタとして含まれるアドレス値を自動的に変換する手法を開発し、CPU・GPU間で透過的に動的データ構造を共有できる機構を実現した。他の研究ではテンプレートの導入などによりデータの抽象化を行っているのに対し、C言語ネイティブなデータ構造を直接変換するため、コードの追加なしに任意のデータ構造を共有できる利点がある。性能評価の結果、懸念される変換オーバヘッドについても、実プログラムでは許容範囲であった。
|
Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
GPUアーキテクチャの複雑なメモリ構造を単純な共有メモリモデルで隠蔽することは、本研究の特徴である一方、このメモリ構造を活用する自動最適化が重要課題である。今年度に取り組んだシェアードメモリの活用手法は、CUDAでの手動最適化でも大きな効果が得られる重要な要素であり、MESI-CUDAが自動生成するコードの性能向上に欠かせない。今年度の研究では、未完成ではあるが基礎的な技術を得ることができた。次年度以降、解析・コード手法を拡張・改良することで、大幅な性能向上に繋げられると考えている。また、今回開発したデータの使用頻度を解析する手法は、データ転送のスケジューリング最適化にも利用できる。 GPUアーキテクチャはもともと配列主体の定型的なデータ構造に適しており、本研究でも当初は配列上のデータを想定していた。しかし、最近ではGPGPUがより広範囲に利用されるようになっており、動的データ構造が必要とされるケースも多い。このため当初の計画にはなかったが、ポインタを含むデータに対応するための技術開発を行った。今回の成果により、MESI-CUDAの実用性が大きく向上すると考えている。また、従来より動的にメモリを管理する機構を実現したため、今後スケジューリングの最適化などを行う際の自由度が高まった。 人材面では今年度に学部学生2名が本研究に参加し、共に大学院に進学した。このため、次年度・次々年度は実装や評価の体制がより強化できると考えている。
|
Strategy for Future Research Activity |
当初の計画と比較して課題に取り組む順序や内容が一部変更されているが、予定通り、今年度中に単一GPUの利用に関して実用レベルの解析・コード生成手法を得ることを目指す。また、第3世代アーキテクチャKeplerを採用したGPUが登場しているため、早期にこれを購入し、keplerでの性能評価や新アーキテクチャへの手法の適合などを進めていく。 当初の計画ではCPU・GPU間のデータ転送やカーネル関数実行のスケジューリングを重視していた。しかし、その後の調査やKeplerの新機能を検討した結果、データの分割とメモリへのマッピングが重要であり、処理のスケジューリングについてもデータマッピング主導で行う方が良い性能を達成できるとの感触を得ている。具体的には、現在はCUDA同様に必須であるGPUへの処理のマッピング記述を廃止するよう言語仕様を変更していく。これにより、マッピング・スケジューリングともに処理系に委ねられ、プログラムの記述をさらに簡潔にできる。一方で、処理系内でのコード生成の自由度が高まるため、新たにデータマッピング主導型のスケジューリング手法を開発し、高性能な最適化機構の実現を目指す。
|
Expenditure Plans for the Next FY Research Funding |
以前より使用していたGPU用PCに不調が生じたため、当初予定していたGPGPUカードの購入と合わせてPCを1台前倒しで導入した。一方で、国内・国外発表の件数が年度開始時の見込みより減少した。このため、全体として2万円程度が次年度に持ち越されることになった。 次年度研究費についても、新アーキテクチャを採用したGPUが想定したより高額であったため、物品購入や対外発表の計画も修正していく必要がある。
|
Research Products
(4 results)