1.3K Views
December 22, 21
スライド概要
フィックスターズならではの「FPGA」に関する高速化手法、 効率的な開発ノウハウ、苦労話などについてお話しいたします。
<講演内容>
1、続 Intel®️ Agilex™️ 開発キットを用いた各種機能トライアル~Agilex™️をもっと体感する~
6月に開催した Intel®️ Agilex™️ の各種機能トライアルに続く第2弾です。
前回、うまくできなかった HPS (Hard Processor System = ARMコア) 上での Linux 起動に再度チャレンジします。
また、前回は 40Gbps にとどまっていた ネットワーク I/O 性能を 100Gbps にアップグレードした結果についても報告します。
その他、Tips、ノウハウも共有できればと思いますので、前回参加された方も、そうでない方も是非ご聴講下さい。
2、AI Engine を使ったマルチコアプログラミング ~行列積アプリケーションの作成~
AI Engine は、最大で 400 近くのコアを搭載したメニーコアのプロセッサです。
これまでのセミナーでは AI Engine をシングルコアで使った際の情報を紹介してきましたが、今回のセミナーでは AI Engine の複数コアを使うことを目的として、大規模な行列に対する行列積を AI Engine で解く方法について紹介します。
AI Engine の複数コア間のデータ共有方法や、PLIO を使って AI Engine と PL の間でデータを効率よく受け渡しする方法についても時間の限り解説したいと思います。
・当社技術ブログ 記事: https://proc-cpuinfo.fixstars.com/
・フィックスターズグループ/セミナー一覧: https://www.fixstars.com/ja/seminar
・フィックスターズのFPGAシステム開発: https://www.fixstars.com/ja/services/fpga
フィックスターズは、コンピュータの性能を最大限に引き出すソフトウェア開発のスペシャリストです。車載、産業機器、金融、医療など、幅広い分野での開発経験があります。また、ディープラーニングや機械学習などの最先端技術にも力を入れています。 並列化や最適化技術を駆使して、マルチコアCPU、GPU、FPGA、量子アニーリングマシンなど、さまざまなハードウェアでソフトウェアを高速化するサービスを提供しています。さらに、長年の経験から培ったハードウェアの知識と最適化ノウハウを活かし、高精度で高性能なアルゴリズムの開発も行っています。 ・開催セミナー一覧:https://www.fixstars.com/ja/seminar ・技術ブログ :https://proc-cpuinfo.fixstars.com/
Fixstars Corporation www.fixstars.com 実践的!FPGA開発セミナー vol.5 2021/12/22 18:00~ Copyright © Fixstars Group Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com Xilinx FPGAにおける Partial Reconfigurationを 使った開発フロー Copyright © Fixstars Group Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com Who I am Yuki MATSUDA 松田 裕貴 ソリューション第一事業部 リードエンジニア 3 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com 自己紹介 • 松田 裕貴 • FPGA エンジニア • 主に Xilinx FPGA を使用 • 略歴 • 2016年 4月 フィックスターズ入社 • FPGA による高解像度の画像処理システム開発、 • ネットワーク処理のオフロードなどに着手 • 略歴 • 2016年 4月 フィックスターズ入社 • FPGA による高解像度の画像処理システム開発、 ネットワーク処理のオフロードなどに着手 4 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com アジェンダ • • • • Partial Reconfiguration (PR) とは? Xilinx FPGA 上の PR フローの解説 PR を行う上での嵌りどころ紹介 まとめ 5 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com Partial Reconfiguration (PR) とは? • Partial Reconfiguration (PR) とは? • FPGA の全体の動作を継続したまま、 一部の回路をリコンフィギュレーションする機能 • 用途 • 限られた回路量で複数の機能を時分割で実現する • 例: 車載とかで前進用/後退用で回路切り替え • I/O 部分は固定したまま内部機能の切り替え • 例: Alveo の Platform https://japan.xilinx.com/support/documentation/sw_manuals_j/xilinx2021_2/ug909-vivado-partial-reconfiguration.pdf Copyright © Fixstars Group 6
Fixstars Corporation www.fixstars.com 本セミナーの内容 • Xilinx FPGA での PR を行うフローを紹介 • Vivado 2021.1 で追加された Block Design Container (BDC) を使用 • これが追加されるまでは PR モジュールを いちいち RTL でラップする必要があったため面倒だった... • 実際に PR を使った際に、 嵌ったポイントや分かりにくかった点などを紹介 7 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com PR 参考資料 • 最初に見るべきは以下の資料。 特に UG はかなり親切に書かれているので、参考になる • 代わりに200page ~ なので読むのは結構大変 • Dynamic Function eXchange (DFX) と PR は同義なので、 この資料では PR の表記を使用 • UG909 Vivado Design Suite UG: Dynamic Function eXchange • https://japan.xilinx.com/support/documentation/sw_manuals_j/xil inx2021_1/ug909-vivado-partial-reconfiguration.pdf • UG947 Vivado Design Suite Tutorial: Dynamic Function eXchange • https://japan.xilinx.com/support/documentation/sw_manuals_j/xil inx2020_2/ug947-vivado-partial-reconfiguration-tutorial.pdf 8 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com 実際にやってみる • 環境 • ツール: Vivado 2021.2 • ボード: Alveo U250 • デザイン • XDMA + increment 関数だけを置いたもの • increment <-> decrement で PR を用いて関数を切り替え 9 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com PR を行うフロー • 通常のデザインに対し、以下の手順を追加で実施 a. PR 対象のモジュールを設定、置き換え先のモジュールを定義 b. (optional) PR を行うための Configuration 手段の追加 c. PR 対象を FPGA のどこに配置するか、物理制約を定義 d. モジュール毎に implement (配置配線) を行う 10 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com a. PR 対象モジュールの設定 • PR 対象モジュールを Block Design Container (BDC) 化・ DFX の有効化を行う • これだけで increment を PR 対象にできたので、ここに decrement を切り替え対象として追加する BDC化 11 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com a. 置き換え先のモジュールの定義 • increment と decrement へ切り替え可能にする a. increment と decrement の入出力は全く同じとなる必要がある Decrement 定義の追加 12 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com b. Configuration 手法の選択 • PR をする際に使用するコンフィギュレーション手法を選択する • 手法毎にコンフィギュレーション速度が違ったり、 PL 側に追加の機能が実装が必要だったりと違いがある https://japan.xilinx.com/support/documentation/sw_manuals_j/xilinx2021_1/ug909-vivado-partial-reconfiguration.pdf Copyright © Fixstars Group 13
Fixstars Corporation www.fixstars.com b. Configuration 手法の選択 (cont.) • 今回のデザインでは MCAP (PCIe 経由の Configuration) を使用 • xdma のオプションで簡単に有効化可能 • XVSEC driver [1] 経由でホストマシンから PR を行える 14 Copyright © Fixstars Group [1] https://github.com/Xilinx/dma_ip_drivers/tree/master/XVSEC
Fixstars Corporation www.fixstars.com c. 物理制約の定義 • PR 対象のモジュールを FPGA のどこに配置するか、 物理制約をユーザーが定義する • 手順 • この時点でSynthesis -> Open Synthesized Design とする • Draw Pblock で PR 対象のモジュールが配置される領域を書く Pblock の 領域を選択 15 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com c. 物理制約の定義 (cont.) • 物理制約の領域は、周辺モジュールとの接続を考える必要がある SLR1の右側: xdma が配置される (と予想される) 領域 • 追加で考慮すべきポイント 1. リソースを最も多く使うモジュールが入る領域を確保する 2. 配置配線によってリソースが膨らむので領域に余裕を持たせる • 特に、PR 領域と外部との配線コストが重めなので、 リソースはかなり膨らみがち 3. PR を有効にする前にまず一度 implementation し、 その結果を参考にして配置すると良いらしい 16 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com d. モジュール毎に配置配線 • PR では、次のような手順で配置配線を行う 1. 親となるデザインでの配置配線 2. 親デザインの配置情報を引き継いで、子デザインの配置配線 shell との接続を引き継いで module2 の impl を実施 17 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com 参考: 得られた配置配線結果 • 下図のような配置結果が得られた ➢ increment に対して引っ張られるような配線 ➢ PR 領域外のレジスタ数は十分余裕を持たせる方が良い 18 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com 生成されるビットストリーム • モジュール毎の配置配線が完了すると、以下のような ビットストリームが出力される ➢ _partial.bit がモジュール毎のパーシャルビットストリーム ➢ design_1_wrapper.bit (でコンフィグ後、 パーシャルビットストリームを使用して PR する $ ls impl_1/*.bit child_0_impl_1/*.bit child_0_impl_1/design_1_i_increment_decrement_inst_0_partial.bit child_0_impl_1/design_1_wrapper.bit impl_1/design_1_i_increment_pr_func_inst_0_partial.bit impl_1/design_1_wrapper.bit 19 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com PR での嵌りどころ: コンフィグ中の出力値 • このデザインで PR を行うと、コンフィグ中に PR 領域の出力のTVALID がHIGH になり、変なデータを後続で受け取ってしまう ➢ PR 中は外部へデータを出力させない必要がある 20 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com PR での嵌りどころ: コンフィグ中の出力値 (cont.) • DFX Decoupler IP を使うと コンフィグ中のデータ遮断を簡単に実現できる ➢ decouple=HIGH -> 入出力を遮断 ➢ decouple=LOW -> 入出力を通す • decouple=HIGH となっている間に PR をすることで、 安全な PR を行うことができる 21 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com 実機での動作例 • 実機上で increment/decrement を切り替えて動作させた ➢ PR を使うときは Decoupler で正しく分離したうえで PRをすることが重要 PR実施 22 increment 処理 Copyright © Fixstars Group decrement 処理
Fixstars Corporation www.fixstars.com まとめ • Xilinx FPGA でPRを行う方法について紹介した • モジュールの定義方法, 物理配置の決定, etc. • PR を実際に扱う際の注意点・嵌りどころについて紹介した • PR 中は出力値が不定となるため Decoupler が必要 • 物理配置を決定する際に考慮すべきポイント 23 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com FPGA 研究調査: 研究事例から学ぶ FPGA活用の未来 Copyright © Fixstars Group Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com Who I am Shinya KAJI 写真 梶 信也 ソリューション第四事業部 事業部長 25 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com 本日のセミナーでお伝えすること 最新研究調査:研究事例から学ぶFPGA活用の未来 FPGAの最新動向を最近の研究論文から読み解きます。 今後益々FPGA活用が進み、より高性能で高効率なシステムが世の中に浸透することが予想 されますが、世界中でFPGAがどのように活用されているのか、今後どのような問題領域に FPGAが活用されていくのか、について最近の研究論文から読み解きます。 「FPGAがすごいのは分かったけど、差別化を図るためにどう適用したら良いのかアイディ アが欲しい」という悩みを少しでも持たれている方にヒントをお届けします。 26 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com FPGA に関する市場の関心 (Google Trend より) • FPGA に関する一般的な関心はほぼ横這い 検索キーワード:「FPGA」 対象国 :すべての国 期間 :過去 5 年間 https://trends.google.co.jp/trends/ 27 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com FPGA に関する市場の関心 (Google Trend より) • • 先進国全般において FPGA は浸透している 中国、韓国、台湾といった東アジアの国々での関心が特に高い 検索キーワード:「FPGA」 対象国 :すべての国 期間 :過去 5 年間 https://trends.google.co.jp/trends/ 28 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com FPGA に関する市場の関心 (Google Trend より) • • FPGA 二大メーカーはほぼ同程度の人気 地域ごとに濃淡がありメーカーの戦略が垣間見える 検索キーワード:「FPGA」 対象国 :すべての国 期間 :過去 5 年間 29 Copyright © Fixstars Group https://trends.google.co.jp/trends/
Fixstars Corporation www.fixstars.com 論文を見たい時に気軽に使える情報源 • arXiv.org • • • 「物理学、数学、計算機科学、数量生物学(英語版)、数量ファイナンス、統計学、 電子工学・システム科学、経済学の、プレプリントを含む様々な論文が保存・公開さ れているウェブサイト」 (Wikipedia より引用) https://arxiv.org/ Google Scholar • • 「ウェブ検索サイトのGoogleの提供する検索サービスの一つ。主に学術用途での検索 を対象としており、論文、学術誌、出版物の全文やメタデータにアクセスできる」 (Wikipedia より引用) https://scholar.google.co.jp/ 30 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com 今回は arXiv.org で FPGA に 関する論文を調べてみた 31 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com arXiv に登録されている FPGA 論文は 2,000 弱! • 12 月だけで 22 本、2021 年で 300 本強の論文が公開登録 32 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com arXiv 論文 Top 50 (as of 2021-12-22) • • • 最新の 50 本を見ると、 • 13 本:いわゆる AI 系 • • • • 画像/映像処理系 HPC 系 アーキテクチャ系 高位合成系 その他には、 などなど 33 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com FPGA 上に特定用途向けの Hardware Architecture を構成 • • • • • 『N3H-Core: Neuron-designed Neural Network Accelerator via FPGA-based Heterogeneous Computing Cores』(https://arxiv.org/abs/2112.08193) 『Understanding the Limits of Conventional Hardware Architectures for Deep-Learning』(https://arxiv.org/abs/2112.02204) 『SAMO: Optimised Mapping of Convolutional Neural Networks to Streaming Architectures』(https://arxiv.org/abs/2112.00170) 既存のソフトウェアを FPGA 上で効率良く実行するための研究開発が散見される FPGA メーカが HLS を推し、ソフトウェアを提供する流れとも合致する 34 Copyright © Fixstars Group
Fixstars Corporation www.fixstars.com DPU for Convolutional Neural Network • ザイリンクスの DPU (Deep Learning Processor Unit) は、たたみ込みニューラル ネットワーク用 のプログラマブル エンジンです。このユニットに は、レジスタ設定モジュール、データ コントロー ラー モジュール、およびたたみ込み演算モジュー ルが含まれています。DPU には、多くのたたみ込 みニューラル ネットワークで効率的に機能するこ とを目的とした特別な命令セットがあります (https://japan.xilinx.com/products/intellectu al-property/dpu.html#overview より引用) 『PG338 - Zynq DPU v3.3 IP Product Guide (v3.3)』 https://japan.xilinx.com/content/dam/xilinx/support/documentation/ip_documentation/dpu/v3_3/pg338-dpu.pdf Copyright © Fixstars Group 35
Fixstars Corporation www.fixstars.com VTA: Versatile Tensor Accelerator • • VTA は TVM ベースのコンパイラスタックを備えた、オープンで汎用的、かつカスタ マイズ可能な深層学習アクセラレータ VTA と TVM は、ハードウェア設計、ドライバ、JIT ランタイム、TVM ベースの最適 化コンパイラ・スタックを含む、エンド・ツー・エンドのハードウェア・ソフトウェ ア深層学習システム・スタックを形成 36 Copyright © Fixstars Group https://tvm.apache.org/docs/topic/vta/index.html
Fixstars Corporation www.fixstars.com 最新の研究論文と各社動向から読み取れること • ソフトウェア化の流れは加速する • • FPGA をワークロードのアクセラレータとして **活用する** のであれば、 HLS C/C++ 開発や既存ソフトウェア資産を活かしたソフトウェア開発化が 進むことが予見される GPGPU が普及したパターンを感じる • FPGA 開発の TAT 改善 • • IP やフレームワークを提供する側で設計 -> 実装 -> 検証の工数を吸収 多くのユーザ側ではソフトウェアレベルの検証を行うことで TAT 短縮 (コスト減) • AI 活用を軸とした FPGA アクセラレーション • • レイテンシや安定性能が重要なユースケースでの活用 “AI Everywhere” 37 Copyright © Fixstars Group
Fixstars Corporation (余談) www.fixstars.com TVMCon 2021 : “TVM Streamer – Accelerating Multimedia Framework with TVM” https://www.tvmcon.org/ Copyright © Fixstars Group 38
Fixstars Corporation www.fixstars.com Thank You お問い合わせ窓口 : [email protected] Copyright © Fixstars Group Copyright © Fixstars Group