Skip to main content
QUICK REVIEW

[論文レビュー] GCC-Plugin for Automated Accelerator Generation and Integration on Hybrid FPGA-SoCs

Markus Vogt, Gerald Hempel|arXiv (Cornell University)|Aug 28, 2015
Embedded Systems Design Techniques参考文献 17被引用数 3
ひとこと要約

本論文では、変更のないレガシード埋め込みアプリケーションのパフォーマンスがCriticalなCコードのセクションを自動的に特定し、ハイブリッドFPGA-SoC向けにそれらに対応するハードウェアアクセラレータを生成する、再ターゲティング可能なGCCプラグインを提示する。アノテーションや言語制限なしに、透過的なハードウェア/ソフトウェア分割を可能にすることで、標準のベンチマークコードを用いてXilinx Zynqプラットフォーム上で最大5.7倍の高速化を達成した。

ABSTRACT

In recent years, architectures combining a reconfigurable fabric and a general purpose processor on a single chip became increasingly popular. Such hybrid architectures allow extending embedded software with application specific hardware accelerators to improve performance and/or energy efficiency. Aiding system designers and programmers at handling the complexity of the required process of hardware/software (HW/SW) partitioning is an important issue. Current methods are often restricted, either to bare-metal systems, to subsets of mainstream programming languages, or require special coding guidelines, e.g., via annotations. These restrictions still represent a high entry barrier for the wider community of programmers that new hybrid architectures are intended for. In this paper we revisit HW/SW partitioning and present a seamless programming flow for unrestricted, legacy C code. It consists of a retargetable GCC plugin that automatically identifies code sections for hardware acceleration and generates code accordingly. The proposed workflow was evaluated on the Xilinx Zynq platform using unmodified code from an embedded benchmark suite.

研究の動機と目的

  • 複雑なHW/SW分割とツールチェーン制限により、CプログラマーがハイブリッドFPGA-SoCを採用する際の高い導入障壁を低減すること。
  • バーチャルマシン環境を必要としたり、制限された言語サブセットや特別なコーディングアノテーションを要する従来の手法の制限を克服すること。
  • Xilinx ZynqなどのハイブリッドFPGA-SoCプラットフォームで、変更のないレガシーコードを自動的かつ透過的にアクセラレーション可能にする。
  • ソースコードの変更なしに既存のソフトウェア開発ワークフローに自然に統合できる、シームレスなプログラミングフローを提供すること。

提案手法

  • コンパilation中に中間表現(IR)を解析する再ターゲティング可能なGCCプラグインを開発する。
  • 静的解析とプロファイリングヒューリスティクスを用いて、計算強度とデータ再利用度に注目し、パフォーマンスがCriticalなコード領域を特定する。
  • ハイレベルシンセシス(HLS)バックエンドを用いて、特定されたCコードセクションからRTLコードを自動生成する。
  • 生成されたハードウェアモジュールをFPGAファブリックに統合し、データ転送および制御用のソフトウェアスタブを生成する。
  • Cの意味論とABI互換性を維持することで、標準の埋め込みCツールチェーンおよび既存のソフトウェアスタックとの互換性を確保する。
  • Zynqプラットフォーム上で、生成されたハードウェアモジュールをシステムイメージおよびランタイム設定に自動的にリンクする。

実験結果

リサーチクエスチョン

  • RQ1アノテーションや言語制限なしに、GCCプラグインがパフォーマンスがCriticalなCコードセクションを自動的に特定・アクセラレーション可能かどうか。
  • RQ2変更のないCコードから自動的にハードウェアを生成することで、ハイブリッドFPGA-SoC上でパフォーマンスとエネルギー効率がどの程度向上するか。
  • RQ3プラグインベースのワークフローは、手動またはアノテーション駆動のアプローチと比較して、開発者の作業負荷とアクセラレーションのオーバーヘッドの点でどのように異なるか。
  • RQ4Zynqプラットフォーム上で実世界の埋め込みベンチマークにこのプラグインを適用した場合、達成可能なスループット向上率とリソース利用効率はどの程度か。
  • RQ5生成されたハードウェアアクセラレータは、既存のソフトウェア開発およびデプロイメントパイプラインにシームレスに統合可能かどうか。

主な発見

  • GCCプラグインは、ソースコードの変更なしに、変更のない埋め込みベンチマークのパフォーマンスがCriticalなコードセクションを正常に特定・アクセラレーションした。
  • Xilinx Zynqプラットフォーム上で最大5.7倍の高速化を達成し、計算が集中的なカーネルに対して顕著なパフォーマンス向上を示した。
  • 生成されたハードウェアアクセラレータは正しくシステムに統合され、データ転送およびインターフェースプロトコルの自動処理が行われた。
  • Cの意味論とABI互換性が保持されたため、既存のソフトウェアスタックおよびツールチェーンへのシームレスな統合が可能だった。
  • 評価により、標準ベンチマークスイートからの実世界の埋め込みワークロードにおいても、現実的なデプロイ条件下で本手法が有効であることが示された。
  • 特別なコーディング慣習や低レベルのハードウェア知識が不要になったため、CプログラマーがハイブリッドFPGA-SoCを採用する際の導入障壁が低減された。

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

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

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

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