2013 Fiscal Year Research-status Report
共有メモリモデルとスケジューリング最適化によるGPGPUプログラミング技術
Project/Area Number |
24500060
|
Research Institution | Mie University |
Principal Investigator |
大野 和彦 三重大学, 工学(系)研究科(研究院), 講師 (20303703)
|
Keywords | 高性能計算 / GPGPU / 並列プログラミング言語 / 言語処理系 / CUDA / プログラミングモデル |
Research Abstract |
グラフィック処理用のGPUを用いた高性能計算はコストパフォーマンスの高さから利用が増えているが、現状のプログラミング環境は生産性・再利用性に問題がある。そこで、現在使われている開発環境CUDAに対し、新たな開発環境MESI-CUDAの実現を目指して手法の研究と処理系の開発を行っている。本研究では、共有メモリ型の簡潔なプログラミングモデルを導入して記述性を向上させる一方で、静的解析を利用した自動最適化によりプログラムの実行性能を確保するアプローチをとっている。平成25年度は、以下の3点について研究・開発を行った。 (1)メモリを効率的に利用する手法:昨年度に行ったシェアードメモリを自動利用する手法について、より広範囲に適用できるよう改良・拡張を行った。また、グローバルメモリも含めた全体のメモリ利用効率化を図るため、データのメモリマッピング・スケジューリング手法の研究を行った。 (2)マルチGPUを効率的に利用する手法:1台のPC上に性能の異なる複数GPUを装着した際に、静的・動的負荷分散により各GPUを効率的に利用する手法の研究を行った。 (3)GPUスレッドのマッピングを仮想化する手法:現在のMESI-CUDAは仮想共有メモリモデルの導入によりメモリアクセス・管理を簡易化する一方、GPUスレッドについてはCUDAと同様に物理的な生成及びマッピングを直接記述する。そこで、論理的なスレッド生成を導入し、コア数などのハードウェアではなく処理データに応じた大きさ・次元を指定する並列記述手法を導入した。本拡張により、ユーザが実行ハードウェアを意識せずにプログラムを書ける一方、処理系がハードウェアに応じた最適マッピングを行うことができる。また、物理スレッドの生成タイミングを隠蔽することでデータ転送・スレッド実行スケジューリングの自由度も高くなり、より強力な最適化が可能になる。
|
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スレッド生成を記述する際には処理データに依存した次元・大きさを指定し、コンパイラがハードウェアにマッピングする。これにより、従来は考慮する必要があったブロック毎のコア数などのアーキテクチャ依存パラメータを、ユーザプログラムから排除できる。一方、コンパイラが最適化の都合に合わせて各次元のマッピングやブロック内スレッド数を決定できるので、シェアードメモリを活用できるようにスレッド数を制限する、といった従来不可能だった最適化が可能になった。 また、最終年度に予定しているマルチGPUへの対応に向けて、性能の異なる複数GPUを搭載した環境上で負荷分散を行う方式の試験実装と予備評価を行った。 対外発表については、当初投稿を予定していた国際会議が開催されず、国内会議の発表のみにとどまった。25年度は早期に国際会議に投稿し、年度内に雑誌論文にまとめる予定である。
|
Strategy for Future Research Activity |
最新版の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との連携を図っていく。
|
Expenditure Plans for the Next FY Research Funding |
投稿を予定していた国際会議が開催されなかったことにより、今年度の海外出張旅費に余剰が生じた。 今年度の研究成果に関して、次年度早期に国際会議に投稿し発表する予定である。このため、次年度は海外出張旅費が当初予定より増える見込みである。
|