[論文レビュー] FOS: A Modular FPGA Operating System for Dynamic Workloads
FOS は、モジュラーなコンパイラー・フローとリソースに弾力性のあるランタイムを介して、ハードウェアとソフトウェアコンponentを分離することで、動的でマルチテントのアクセラレーションを可能にするモジュラーFPGAオペレーティングシステムである。FOS はコンパイル時間を最大2.34倍短縮し、更新遅延を100倍以上低減する。また、RTL、C、C++、OpenCL といった異種アクセラレータをサポートし、卤時的かつ空間的リソーススケジューリングを透明に実行することで、単一およびマルチテントワークロードにおいて最小限のオーバーヘッドで実現する。
With FPGAs now being deployed in the cloud and at the edge, there is a need for scalable design methods which can incorporate the heterogeneity present in the hardware and software components of FPGA systems. Moreover, these FPGA systems need to be maintainable and adaptable to changing workloads while improving accessibility for the application developers. However, current FPGA systems fail to achieve modularity and support for multi-tenancy due to dependencies between system components and lack of standardised abstraction layers. To solve this, we introduce a modular FPGA operating system -- FOS, which adopts a modular FPGA development flow to allow each system component to be changed and be agnostic to the heterogeneity of EDA tool versions, hardware and software layers. Further, to dynamically maximise the utilisation transparently from the users, FOS employs resource-elastic scheduling to arbitrate the FPGA resources in both time and spatial domain for any type of accelerators. Our evaluation on different FPGA boards shows that FOS can provide performance improvements in both single-tenant and multi-tenant environments while substantially reducing the development time and, at the same time, improving flexibility.
研究の動機と目的
- ハードウェア、EDAツール、ソフトウェアコンponentの間の密結合が原因で、現在のFPGAシステムにモジュラリティ、保守性、マルチテントシーの欠如が生じている問題に対処する。
- C、C++、OpenCL、RTL 用の高水準で言語に依存しないAPIを抽象化することで、FPGAの複雑さを軽減し、開発者の生産性とアクセシビリティを向上させる。
- ランタイムシステムを介して時間的・空間的マルチプレクシングをサポートすることで、複数のアクセラレータおよびユーザー間での動的リソース割り当てを実現する。
- シェルとモジュールのコンパイルを分離し、モジュールの再配置を可能にすることで、FPGAシステムのコンパイルおよび更新のオーバーヘッドを低減する。
- フルシステムの再コンパイルを必要とせずに、異なるFPGAボードやEDAツールバージョン間の異種FPGA環境をサポートする。
提案手法
- FOS は、システムコンponent(ハードウェアおよびソフトウェア)を、インターフェースが明確に定義された独立してコンパイル可能なモジュールに分離するモジュラーFPGA開発フローを採用する。
- シェルとアクセラレータモジュールを別々にコンパイルできる、分離型コンパイルモデルを導入することで、異なるFPGAプラットフォーム間での再利用および再配置を可能にする。
- ランタイムシステムはリソースに弾力性のあるスケジューリングを実装し、時間(タイムマルチプレクシング)および空間(空間的パーティショニング)の両ドメインで動的にFPGAリソースを割り当てる。
- 一元化されたユーザインタフェースにより、C、C++、OpenCL、RTL といった複数の言語を横断してアクセラレータへのアクセスを抽象化し、アプリケーション中心のプログラミングを可能にする。
- ランタイムでアクセラレータの切り替えおよびリピートを動的に実行可能であり、ワークロードの変化に応じた適応が可能である。
- 高水準APIを備えたオープンソースソフトウェアスタックにより、アプリケーション開発者はFOSを静的、単一ユーザーの動的、またはマルチテントの動的アクセラレーションモードで使用できる。
実験結果
リサーチクエスチョン
- RQ1FPGAシステムは、異種のEDAツール、ハードウェアプラットフォーム、ソフトウェアスタック間で、どのようにモジュラリティと保守性を実現できるか?
- RQ2モジュラーFPGAオペレーティングシステムは、コンパイルおよび更新のオーバーヘッドを低減しつつ、動的ワークロードをサポートできるか?
- RQ3リソースに弾力性のあるランタイムシステムは、単一およびマルチテントワークロードにおいて、時間的および空間的ドメインで多様なアクセラレータ(RTL、C、C++、OpenCL)をどれほど効果的にスケジューリングできるか?
- RQ4FOS は、CPU-FPGAシステムにおける非FPGA専門家にとって、開発者の生産性とアクセシビリティをどの程度向上させるか?
- RQ5FOS は、同時に実行される異種ワークロードを有するマルチテント環境において、どのようなパフォーマンスおよびスケーラビリティの利点を提供するか?
主な発見
- FOS は、モノリシックFPGAフローと比較して、コンパイル時間を最大2.34倍短縮し、更新遅延を100倍以上低減する。
- Ultra-96プラットフォームでは、最大3つの並列部分再構成領域を有する場合、ほぼ線形のパフォーマンススケーリングを達成するが、以降はタイムマルチプレクシングのオーバーヘッドによりパフォーマンスが頭打つ。
- マンデルブロ、ブラックショールズ、ソーベルアプリケーションの実行遅延は、物理的リージョン数に達するまで、リクエスト数の増加に伴いほぼ線形に改善する。
- マルチテント環境では、競合するメモリアクセスパターンが存在するにもかかわらず、FOS はリソースを動的に再割り当てすることで、ベースラインの1-Mandel × 1-Sobel構成と比較して46%のパフォーマンス向上を達成する。
- 個々のアプリケーションからのグリーディリソースリクエストであっても、インテリジェントなランタイムスケジューリングのおかげで、ほぼ最適なシステムパフォーマンスが得られることを示している。
- FOSランタイムおよび抽象化レイヤーのオーバーヘッドは最小限であり、動的リソース利用と再コンパイルの削減によるパフォーマンス向上がそれを上回る。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。