アクセラレータを活用するためのプログラミング環境
スポンサーリンク
概要
- 論文の詳細を見る
本発表では,GPU や GRAPE-DR などのメニーコア計算機を有効に利用するためのプログラム環境について報告する.メニーコア計算機は,100 個以上のプログラマブルな演算器を集積した LSI からなる計算機である.その性能は単精度では 1 TFLOPS を超え,倍精度では 200 GFLOPS を超える演算性能を持つため,並列計算可能な問題を高速に実行できる可能性がある.一方で,メニーコア計算機は自律的に動作できないため,ホスト計算機を補佐する形で計算を加速するアクセラレータとして利用される.メニーコアアクセラレータは,ホスト計算機のメインメモリとは別のメモリを持つため,必要なデータを明示的にホスト計算機のメモリから転送する必要がある.さらに,その演算器はスクラッチメモリやキャッシュメモリを持つため,どのようにデータを保持するか,どのようにデータを読み込むかの詳細により,演算性能は大きく変化する.それらの利用方法は問題によるため,高性能を引き出すためには,問題ごとにメモリの利用方法を最適化し,加えて,演算器の詳細な動作を最適化する必要がある.我々は,問題を粒子間相互作用の計算に特化することで,最適なコードを生成するコンパイラを開発した.本コンパイラは,利用される変数の性質に応じて,最適なメモリ利用法と演算の詳細を適用し最適化されたコードを生成する.また,本コンパイラでは,通常利用される単精度倍精度だけでなく,四倍精度演算を利用するコードを生成可能である.本コンパイラにより生成された粒子シミュレーションのコードにより,Radeon 4870 GPU で単精度演算で約 500 GFLOPS の演算性能を得た.四倍精度演算のテストケースとして,本コンパイラを高精度が必要な多次元数値積分に適用した.四倍精度に演算性能は,問題の大きさにより Radeon 4870 GPU で 6.4-7.6 GFLOPS,また GRAEP-DR で 2.7-5.5 GFLOPS の性能を得た.これは 1 core の CPU による四倍精度演算性能の数十倍に相当する.以上のように,適した問題ではメニーコアアクセラレータは演算加速器として有効に働く.メニーコアアクセラレータでは,問題に依存した高度な最適化が必要であるが,その上で並列実行可能な問題の種類は限られている.我々の手法を拡張して,問題の種類に応じた最適なメモリの利用方法と演算手法を適用する,問題別コンパイラを構築するフレームワークの構想についても報告する.
- 2010-03-16
著者
関連論文
- アクセラレータを活用するためのプログラミング環境
- 行列乗算カーネルの性能評価
- アクセラレータによる四倍精度演算
- 高精度浮動小数点演算器のFPGAでの実装(応用1)
- OpenCLによる四倍精度行列積の高速化
- 計算宇宙物理のためのGPUクラスタ向け並列Tree Codeの開発と性能評価