Skip to main content
QUICK REVIEW

[論文レビュー] A Reconfigurable Vector Instruction Processor for Accelerating a Convection Parametrization Model on FPGAs

Syed Waqar Nabi, Saji N. Hameed|arXiv (Cornell University)|Apr 17, 2015
Parallel Computing and Optimization Techniques参考文献 7被引用数 7
ひとこと要約

本論文は、FPGA上で科学的カーネルを高速化する再構成可能ベクタ命令プロセッサアーキテクチャを提案している。特に、Flexpart大気拡散モデルにおける計算的に高負荷な対流パrametrizationカーネルを対象としている。可変アーキテクチャを持つカスタムベクタプロセッサアレイを用いることで、リソース効率を高めながら最大20倍の高速化を達成し、科学計算におけるFPGAベースHPCのための自動的で高水準言語コンパイルの実現可能性を示している。

ABSTRACT

High Performance Computing (HPC) platforms allow scientists to model computationally intensive algorithms. HPC clusters increasingly use General-Purpose Graphics Processing Units (GPGPUs) as accelerators; FPGAs provide an attractive alternative to GPGPUs for use as co-processors, but they are still far from being mainstream due to a number of challenges faced when using FPGA-based platforms. Our research aims to make FPGA-based high performance computing more accessible to the scientific community. In this work we present the results of investigating the acceleration of a particular atmospheric model, Flexpart, on FPGAs. We focus on accelerating the most computationally intensive kernel from this model. The key contribution of our work is the architectural exploration we undertook to arrive at a solution that best exploits the parallelism available in the legacy code, and is also convenient to program, so that eventually the compilation of high-level legacy code to our architecture can be fully automated. We present the three different types of architecture, comparing their resource utilization and performance, and propose that an architecture where there are a number of computational cores, each built along the lines of a vector instruction processor, works best in this particular scenario, and is a promising candidate for a generic FPGA-based platform for scientific computation. We also present the results of experiments done with various configuration parameters of the proposed architecture, to show its utility in adapting to a range of scientific applications.

研究の動機と目的

  • FPGAベースHPCの利用を科学者コミュニティにより容易にするために、プログラミングの簡素化とレガシーコードの自動コンパイルを可能にする。
  • 伝統的なFPGAプログラミングの限界、すなわち移植性の低さ、標準化の欠如、学習曲線の急峻さを克服する。
  • 1つのFPGAコプロセッサ設計内でスレッドレベル、パイプラインレベル、データレベルの複数の粒度の並列性を効率的に活用するためのアーキテクチャ的トレードオフを検討する。
  • 異なる科学的カーネル、特に不規則的または複雑なデータ依存関係を持つものに対して、コンパイル時におけるカスタマイズが可能な柔軟で再構成可能なアーキテクチャを構築する。
  • 高水準言語からFPGAへのコンパイルを可能にするために、効率的なコードメモリマッピングと命令実行をサポートするソフトウェア的でプログラマブルなベクタプロセッサを設計する。

提案手法

  • スカラプロセッサ、パイプラインプロセッサ、および各プロセッシングエレメントに複数の算術ユニットを備えたベクタプロセッサの3つのFPGAアーキテクチャを設計・評価する。
  • 命令メモリと分離された命令メモリを備えたハーバード型ベクタプロセッサを実装し、データレベルの並列性をサポートするため、可変アーキテクチャの算術ユニット(加算器、乗算器、除算器)を備える。
  • 高水準合成(HLS)およびハードウェア記述言語(Verilog)を用いて、FPGA上でのベクタプロセッサアーキテクチャの実装と最適化を実施する。
  • 算術ユニットの数を系統的に変化させることで(例:1-1-1、8-8-8、8-8-24)、リソース使用量と遅延のトレードオフを評価する。
  • 対称的および非対称的算術ユニット構成を比較し、特に除算器のような逐次ユニットの影響を踏まえて、最適なパフォーマンス対リソース比を特定する。
  • Flexpartの対流カーネルを代表的な科学的ワークロードとして用い、ベクタプロセッサアーキテクチャをスカラおよびパイプラインプロセッサと比較してベンチマークする。

実験結果

リサーチクエスチョン

  • RQ1FPGAベースの科学的カーネル高速化を、低レベルのハードウェア知識が不要な形で、分野の科学者にどのように容易にできるか?
  • RQ2スレッドレベル、データレベル、パイプラインレベルの並列性を効率的に活用しつつ、リソース使用量を抑える最適なアーキテクチャ構成は何か?
  • RQ3特に除算器のようなユニットのレプリケーションとリソース消費量の最適なバランスは何か? これは、科学的カーネルにおける高いパフォーマンスを達成する上で重要である。
  • RQ4再構成可能ベクタプロセッサアーキテクチャは、最小限の手動介入で高水準レガシーコード(例:C/C++)をFPGAハードウェアに完全自動コンパイル可能にするか?
  • RQ5可変アーキテクチャの算術ユニットを備えたベクタプロセッサは、実世界の大気モデル化カーネルを高速化する点で、スカラおよびパイプラインプロセッサと比較してどの程度のパフォーマンス向上を示すか?

主な発見

  • 24-24-24の算術ユニットにスケーリングした場合、1-1-1構成と比較して最大20倍の高速化を達成したが、リソース使用量は4倍増加した。
  • 非対称構成(例:8-8-24)では、除算器の数を増やすことで1.4倍のリソース使用量増加で2.1倍の遅延低減が得られ、パフォーマンス対リソース比が優れていることが示された。
  • 加算器と乗算器のレプリケーションは、遅延にほとんど影響しない。これは、除算器という逐次ユニットがパフォーマンスボトルネックのままであるためである。
  • 8-8-24構成がパフォーマンスとリソース効率のバランスが最良であり、他のアーキテクチャとの比較に最適な構成として選定された。
  • ハーバードアーキテクチャとプログラマブルな命令メモリのおかげで、このベクタプロセッサ設計は効率的な高水準言語コンパイルを可能としている。これにより、レガシーコードの自動マッピングが実現できる。
  • このアーキテクチャは3レベルの並列性をサポートする:コアのレプリケーションによるスレッドレベル並列性、将来の作業としての非対称コアチェーンによるパイプラインレベル並列性、およびベクタALUユニットによるデータレベル並列性。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。