...

第4回:FPGAと高位合成 - HirokiNakaharaOboe.Net

by user

on
Category: Documents
10

views

Report

Comments

Transcript

第4回:FPGAと高位合成 - HirokiNakaharaOboe.Net
ソフトウェア工学特論
第4回
愛媛大学理工学研究科
電子情報工学専攻ソフトウェア分野
中原 啓貴
ソフトウェア工学特論
1
講義の内容
第1回:
第2回:
第3回:
第4回:
第5回:
第6回:
第7回:
FPGAをざっくり解説
FPGAのアーキテクチャ
FPGAの設計・CADツール
高位合成とFPGA
CPUやGPU等を取り込むFPGA
FPGAで電波望遠鏡・NIC・人工知能・株取引
FPGAでNES(ファミコン)を作る
ソフトウェア工学特論
2
今日の内容
• 高位合成(ソフトウェアから回路を合成)
高位合成を行うと
いきなりFPGAの回路に!
➔
C/C++やJavaで書いたコード
ソフトウェア工学特論
3
ビヘイビアと
RTL(Register Transfer Level)
• ビヘイビア
• クロックの概念がないプログラム(C/C++)と同じよ
うに処理を記述したレベル. ソフトウェアと違って複
数のプロセスが同時に動く (ハードウェアを意識).
→高位合成によりRTLを生成
• RTL
• クロック毎の回路動作を記述したレベル
→FPGAのCADフロー(前回参照)にかけることがで
きる
ソフトウェア工学特論
4
通常の設計方法
ソフトウェア工学特論
5
設計モデル
ソフトウェア
(逐次実行の世界)
ビヘイビア
(クロックを考えない)
高位合成はココ
ハードウェア
(並列実行の世界)
RTL
(クロックを考える)
ソフトウェア工学特論
6
なぜ高位合成?
• 設計期間の短縮
• 特に検証時間を短縮したい
• 設計誤りの減少
• 人手が介入する機会を減らす
• (コード量の比較)
• 設計空間の拡大
• 並列度・パイプライン段数の選択
• コード保守のしやすさ
ソフトウェア工学特論
7
一般的な高位合成の流れ
ソフトウェア工学特論
8
Control Data Flow Graph (CDFG)
• 高位合成の入力となるグラフ表現
ソフトウェア工学特論
9
CDFGの最適化
• 定数伝搬
• 共通演算除去
• デッドコード除去
• 並列性抽出
• Tree-height reduction
ソフトウェア工学特論
10
スケジューリング
• As Soon As Possible (ASAP)
ソフトウェア工学特論
11
スケジューリング問題
• 計算器資源(FPGAのリソース)制約
• 計算時間制約
• ASAPは最適解を得られない
• 一般的にはASAPとALAP間に解が存在
• リストスケジューリング
• 資源制約に違反しない限りASAPで割り当て
• 各演算に優先順位を付ける
• 自由度に基づく優先順位
• 残りのパス長に基づく優先順位
ソフトウェア工学特論
12
アロケーションとバインディング
• アロケーション (必要リソースの決定)
• 演算ユニット数と種類
• メモリ(レジスタ)数と種類
• バスの個数と種類
• バインディング(リソース割当て)
• 演算ユニットで行う演算
• メモリに読書きされる値
• バスで転送するデータ
• 目標
• 資源最小化・高速化
ソフトウェア工学特論
13
並列化とパイプライン化
与えられた資源
(ハードウェア)に
応じて適切な
並列化と
パイプライン化を
行ってくれるのが
高位合成
RTL設計は人手で
これを行う
ソフトウェア工学特論
14
高位合成による設計のポイント
C. Zhang, P. Li, G. Sun, Y. Guan, B. Xiao and J. Cong, ”Optimizing FPGA‐based Accelerator Design for Deep Convolutional Neural Networks,” FPGA 2015
15
2つの屋根
システムには2つの限界が存在
・リソース量 (Computation)
・メモリ帯域 (Bandwidth)
Bandwidth roofが求められる!
(性能)/(帯域, ここでは4.5GB/s)
C. Zhang, P. Li, G. Sun, Y. Guan, B. Xiao and J. Cong, ”Optimizing FPGA‐based Accelerator Design for Deep Convolutional Neural Networks,” FPGA 2015
16
設計方針
デザインAだと, 95GFlops/5.34 GBs だから
メモリ帯域制限 4.5GBsをオーバー!
結論: この線を
狙っていこう!
実効性能は
60 Gflopsに落ちる
デザインはこの範囲内に
収まらなければならない!
C. Zhang, P. Li, G. Sun, Y. Guan, B. Xiao and J. Cong, ”Optimizing FPGA‐based Accelerator Design for Deep Convolutional Neural Networks,” FPGA 2015
17
アルゴリズムB
アルゴリズムA
解決策: アルゴリズム改良
デザインはこの範囲内に
収まらなければならない!
C. Zhang, P. Li, G. Sun, Y. Guan, B. Xiao and J. Cong, ”Optimizing FPGA‐based Accelerator Design for Deep Convolutional Neural Networks,” FPGA 2015
18
Vivado HLSを使ってみる
• エミュレータを設計してみましょう
(詳細は第7回で)
ソフトウェア工学特論
19
FPGAと高位合成の現状
• FPGAが高位合成を重視・サポート
• FPGAの採用が普通になりターゲットになることが多くなった
• FPGA開発環境が高位アーキテクチャ設計をサポート
• FPGA内部がSoC化し, プロセッサとの協調・分担が容易に
• ソフトウェア開発環境がハード高位設計向けに
• 並列処理の記述能力が高いプログラミング言語が普及
• ネットの普及によりオープンソース開発が一般化
• 安価・無料の高位合成が登場. ネットでサポート
• 専用ハードの必要性の再認識
• IoT等複雑なI/O周りのプロトコルが増加
• マイコンの限界(性能と消費電力)によりFPGAに期待が
• CPUの性能向上に行き詰まり, FPGAによる性能向上に期待
ソフトウェア工学特論
20
様々な高位合成ツール
W. Meeus et.al, “An overview of today’s high‐level synthesis tools,” Design Automation for Embedded Systems, Sep., 2012, Vol. 16, No. 3, pp.31‐51.
ソフトウェア工学特論
21
Synthesijer: Javaから合成
ソフトウェア工学特論
22
ソフトウェア工学特論
23
PyCoRAM: Pythonから合成
ソフトウェア工学特論
24
まとめ
• 高位合成をざっと解説
• 内部で行われている最適化・処理
• FPGAで採用される事例が増えてきた
• Xilinx社Vivado HLSを実演
• 多くの高位合成ツールが公開・商用化
• 日本人も頑張っています
ソフトウェア工学特論
25
Fly UP