研究課題/領域番号 |
24300020
|
研究機関 | 筑波大学 |
研究代表者 |
山際 伸一 筑波大学, システム情報系, 准教授 (10574725)
|
研究分担者 |
和田 耕一 筑波大学, システム情報系, 教授 (30175145)
中野 浩嗣 広島大学, 工学(系)研究科(研究院), 教授 (30281075)
柚木 清司 独立行政法人理化学研究所, 柚木計算物性物理研究室, 准主任研究員 (70532141)
|
研究期間 (年度) |
2012-04-01 – 2015-03-31
|
キーワード | ハイパフォーマンスコンピューティング / GPUコンピューティング / ストリーム指向 / マクロ並列化 / コンパイラ |
研究概要 |
コンパイラの開発に着手して、開発を進めている。データ依存性の解析に時間時間をかけている。その作業の中で、プログラム実行に関連する技術に関し、下記2つの新たな技術開発を行った。 (1) ストリームベースのプログラム実行に関する手法:これまで、ストリームベースのプログラムの実行をCaravelaで行う場合、細かな実行タイミングをC言語で記述していたため、非常に複雑なプログラム記述となる。そこで、簡易に実行順序をスクリプトで記述できるCarShを提案し、実装した。CarShにより、アクセラレータへのストリームベースのプログラム記述が格段に簡易になり、プログラムの生産性が格段に向上した。 (2) 連続するアクセラレータプログラムの実行方式:メニーコアアクセラレータでのプログラムを連続的に実行する場合、その処理データは一度、アクセラレータからホストプログラムに戻され、他のアクセラレータプログラムを実行する際に、再度、そのデータがアクセラレータ側にコピーされる。このデータの移動は大きなオーバヘッドとなる。この問題を解決する新たな実行方式であるシナリオ実行方式を開発した。アクセラレータ側にある、入出力データバッファ領域のポインタ交換によって、入出力データが入れ替える事が可能である。この機能を利用し、シナリオと呼ぶプログラムの実行順序を入力データストリームとして用意し、さらに、実行される全てのプログラムを事前にアクセラレータにダウンロードしておくことで、シナリオ毎に入出力データのポインタを交換しながら、実行されるべきプログラム部分を選択し実行を進めていく。この手法が、データ移動に関するオーバヘッドを削減し、実効性能が格段に向上した。 以上の2つの新たな方式を発見・発明し、その手法について論文にて公表した。また、特許についても出願し、権利化を行った。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
3: やや遅れている
理由
本年度は、2つの新しい技術開発に取り組み、それを元にマクロ並列化手法を開発していくことを決定したため、開発順序に変更が生じた。それに伴い、マクロ並列化のためのコンパイラ開発が遅れている。しかし、現在、データ並列性を抽出するための理論と、コンパイラ設計を実施しているところであり、本研究課題で目的としている開発に注力することで遅れを取り戻すことができると考えている。
|
今後の研究の推進方策 |
研究の実績概要にあるとおり、CarSh、シナリオ実行という2つの新技術を使うことで、以下のような開発の推進を行うことが可能になる。スクリプト実行が可能になったことにより、CarShを使った開発手法に切り替え、マクロ並列化コンパイラの開発を促進する。これまで、C言語で直接、プログラムの実行を記述していたが、CarShのフレームワークを利用することによって、開発スピードの向上を図る。上記に限らず、研究補助者へのテスト実行の委託、また、プログラム開発業務の委託を計画し、研究課題全体の促進を図る。
|
次年度の研究費の使用計画 |
国際会議へ参加するための調査旅費を計上していたが、取りやめたため。 国際会議へ参加し、調査するための旅費として使用する予定である。
|