SlideShare una empresa de Scribd logo
1 de 13
Descargar para leer sin conexión
FPGAの使いどころを
定量的に考える...挑戦
わさらぼ合同会社
三好健文
2022.1.18
わさらぼ
• 高性能計算,組み込み処理でFPGAの利用の提案・開発
• 高位合成処理やDSLを利用した開発コスト削減の提案・開発
• FPGAで何がどのくらいできるか?
• ストリーム処理/信号処理なアプリケーション
• アクセラレータなアプリケーション
Logic Only Logic & DSP Logic & Memory Logic, Memory & DSP
Area Ratio 40 28 37 21
Critical Path
Delay(Fastest)
3.2 3.4 2.3 2.1
Critical Path
Delay(Slowest)
4.3 4.5 3.1 2.8
Dynamic Power
Consumption
12 12 9.2 9.0
FPGAのオーバーヘッド
[7] I. Kuon and J. Rose, “Measuring the gap between fpgas and asics,”
Proceedings of the 2006 ACM/SIGDA 14th Inter- national Symposium on Field Programmable Gate Arrays,
pp.21–30, FPGA ’06, ACM, New York, NY, USA, 2006.
Altera Stratix II(90nm) vs. STMicro. CMOS090
Ratio = FPGA/ASIC, 種々のベンチマークの相乗平均
論理回路を作る仕組みのためのオーバーヘッド
FPGAを活用するためには
• 汎用プロセッサ/マイコンにない演算(組み合わせ回路)の実装
• パイプライン並列の活用
• データ並列の活用
• オーバヘッドの少ないI/Oアクセス
vs.
• 動作周波数の低下分をカバー
• 利用するFPGAのリソース内に抑えこむ
FPGAの設計コスト
Ivo Bolsens, “FPGA2032 Roadmap:A Personal Perspective", FPGAs in 2032: Challenges and Opportunities in the next 20 years,” Feb. 2012
最初の実装ができるまでに時間がかかりすぎる…
FPGAの設計コスト
Ivo Bolsens, “FPGA2032 Roadmap:A Personal Perspective", FPGAs in 2032: Challenges and Opportunities in the next 20 years,” Feb. 2012
最初の実装ができるまでに時間がかかりすぎる…
ストリーム(リアルタイム)処理の場合
• ネットワーク処理
• インネットワークコンピューティング
• ディジタル信号処理
入力信号レート 出力信号レート
アプリケーション
間断なくデータを流す
ストリーム(リアルタイム)処理の場合
・・・
例:
10GbE: 156.25MHz*64bit => 内部を156.25MHz*256bitで4クロックに1回出力するようなロジックで構成
125Msps, 16bit/sample: 125MHz*16bit => 内部を250MHz*64bitで8クロックに1回出力するようなロジックで構成
FIFO/BRAM FIFO/BRAM FIFO/BRAM
必要な外部リソースの
アクセスレイテンシ分を
カバーできるように
- 処理サイクル数のゆらぎ
の緩衝
- 必要なデータにアクセス
できるように
FPGA
T [bps]
T [bps]
f [Hz], w [bit], II [cycles]
T ≦ f * w / II
処理 処理
- 処理のパイプライン段数と並列度分の
LUT,DSP,FFが必要はあるか?
- FIFO/BRAM用のメモリがあるか?
外部リソース
(DRAMなど)
アクセラレータの場合
• FPGAで処理の一部を高速化
• (たとえば)メモリを介して計算に必要なデータを授受
• できる限りの演算性能をFPGAでたたき出したい
ホストプロセッサ
メインメモリ
FPGAボード
FPGA メモリ
アクセラレータの場合
ルーフラインモデル
Samuel Williams, Andrew Waterman, and David Patterson. 2009. Roofline: an insightful visual performance model for multicore architectures. Commun.
ACM 52, 4 (April 2009), 65–76. DOI:https://doi.org/10.1145/1498765.1498785
演算性能
演算強度
転送データあたりに実行される演算数
min(ピーク演算性能,
ピークメモリ転送帯域*演算強度)
アクセラレータの場合
FPGAへのルーフラインモデルの適用
Cathal McCabe, “Programming and Benchmarking FPGAs with Software-Centric Design Entries,”
First Workshop on Resource Awareness and Application Autotuning in Adaptive and Heterogeneous Computing(DATE16), Mar. 2016
http://res4ant.deib.polimi.it/2016/presentations/Cathal_2016-03-17_DATE_resource_aware_hetrogeneous_computing.pdf
CPU: Xeon Processor(E5-2660)
- OoO 10cores@2.2GHz
- Memory 64GB@60GBps
- 256b vector units per core
Phi: Xeon Phi(5110P)
- 60cores@1.053GHz
- 8GB@320GBps
- 512b vector units per core
GPU: Nvidia K20x
- SIMT(13*192@732MHz)
- Memory 6GB@250GBps
FPGA: ADM PCIe 7V3
- Memory 16GB@21.3GBps
アクセラレータの場合
FPGAへのルーフラインモデルの適用: リソース使用量も考慮しなければ
Bruno da Silva, An Braeken, Erik H. D'Hollander, and Abdellah Touhafi. 2013. Performance modeling for FPGAs: extending the roofline model with high-level synthesis tools. Int. J.
Reconfig. Comput. 2013, Article 7 (January 2013), 1 pages. DOI:https://doi.org/10.1155/2013/428078
min(ピーク演算性能,
ピークメモリ転送帯域*演算強度)
min(コア当たりのピーク演算性能(CPPE)*スケーラビリティ(SC),
I/O転送帯域*演算強度)
使用可能リソース/
コア当たりのリソース
まとめ
• FPGAは便利...けど大変
• どのくらい大変か/有効かを事前に知りたい
• 要求仕様を満たすかどうかから考えるのも近道
• ルーフラインモデルを使った見積りも可能.
ただし,FPGA向けに一工夫必要

Más contenido relacionado

La actualidad más candente

FPGA startup 第一回 LT
FPGA startup 第一回 LTFPGA startup 第一回 LT
FPGA startup 第一回 LTYamato Kazuhiro
 
FPGAを用いたEdge AIの現状
FPGAを用いたEdge AIの現状FPGAを用いたEdge AIの現状
FPGAを用いたEdge AIの現状Yukitaka Takemura
 
FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器I_HaL
 
Scale flux roi&performance_acri
Scale flux roi&performance_acriScale flux roi&performance_acri
Scale flux roi&performance_acri直久 住川
 
ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02maruyama097
 
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法Kentaro Sano
 
CMD2021 f01 xilinx_20210921_r1.1
CMD2021 f01 xilinx_20210921_r1.1CMD2021 f01 xilinx_20210921_r1.1
CMD2021 f01 xilinx_20210921_r1.1Yoshihiro Horie
 
Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)Takefumi MIYOSHI
 
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかなおき きしだ
 
増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識なおき きしだ
 
FPGAでベンチマークしたときに苦労した話@fpgax#12
FPGAでベンチマークしたときに苦労した話@fpgax#12FPGAでベンチマークしたときに苦労した話@fpgax#12
FPGAでベンチマークしたときに苦労した話@fpgax#12Jun Ando
 
NVIDIA 最近の動向
NVIDIA 最近の動向NVIDIA 最近の動向
NVIDIA 最近の動向NVIDIA Japan
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料一路 川染
 

La actualidad más candente (20)

Gpu vs fpga
Gpu vs fpgaGpu vs fpga
Gpu vs fpga
 
FPGA startup 第一回 LT
FPGA startup 第一回 LTFPGA startup 第一回 LT
FPGA startup 第一回 LT
 
Fpga local 20130322
Fpga local 20130322Fpga local 20130322
Fpga local 20130322
 
FPGAを用いたEdge AIの現状
FPGAを用いたEdge AIの現状FPGAを用いたEdge AIの現状
FPGAを用いたEdge AIの現状
 
Myoshimi extreme
Myoshimi extremeMyoshimi extreme
Myoshimi extreme
 
FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器FPGAによるHDMI to LVDS変換器
FPGAによるHDMI to LVDS変換器
 
Scale flux roi&performance_acri
Scale flux roi&performance_acriScale flux roi&performance_acri
Scale flux roi&performance_acri
 
ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02ハードウェア技術の動向 2015/02/02
ハードウェア技術の動向 2015/02/02
 
20140310 fpgax
20140310 fpgax20140310 fpgax
20140310 fpgax
 
Fpgax 20130604
Fpgax 20130604Fpgax 20130604
Fpgax 20130604
 
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
FPGAによる津波シミュレーション -- GPUを超える高性能計算の手法
 
CMD2021 f01 xilinx_20210921_r1.1
CMD2021 f01 xilinx_20210921_r1.1CMD2021 f01 xilinx_20210921_r1.1
CMD2021 f01 xilinx_20210921_r1.1
 
Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)Synthesijer.Scala (PROSYM 2015)
Synthesijer.Scala (PROSYM 2015)
 
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うか
 
FPGAって、何?
FPGAって、何?FPGAって、何?
FPGAって、何?
 
増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識増え続ける情報に対応するためのFPGA基礎知識
増え続ける情報に対応するためのFPGA基礎知識
 
FPGAでベンチマークしたときに苦労した話@fpgax#12
FPGAでベンチマークしたときに苦労した話@fpgax#12FPGAでベンチマークしたときに苦労した話@fpgax#12
FPGAでベンチマークしたときに苦労した話@fpgax#12
 
なにわTech20160827
なにわTech20160827なにわTech20160827
なにわTech20160827
 
NVIDIA 最近の動向
NVIDIA 最近の動向NVIDIA 最近の動向
NVIDIA 最近の動向
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 

Similar a ACRi_webinar_20220118_miyo

GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発Ryuuta Tsunashima
 
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...Takuma Usui
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータShinya Takamaeda-Y
 
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発Shinya Takamaeda-Y
 
MemoryPlus Workshop
MemoryPlus WorkshopMemoryPlus Workshop
MemoryPlus WorkshopHitoshi Sato
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)Shinya Takamaeda-Y
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理Motonori Shindo
 
仮想FPGAクラウド
仮想FPGAクラウド仮想FPGAクラウド
仮想FPGAクラウドEric Fukuda
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化Kazunori Sato
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fixstars Corporation
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門ryos36
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編Fixstars Corporation
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門NVIDIA Japan
 
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックKentaro Ebisawa
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速するKohei KaiGai
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hwykuga
 
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127HPCシステムズ株式会社
 

Similar a ACRi_webinar_20220118_miyo (20)

[DL Hacks]FPGA入門
[DL Hacks]FPGA入門[DL Hacks]FPGA入門
[DL Hacks]FPGA入門
 
GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発GPU-FPGA協調プログラミングを実現するコンパイラの開発
GPU-FPGA協調プログラミングを実現するコンパイラの開発
 
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
High-speed Sorting using Portable FPGA Accelerator (IPSJ 77th National Conven...
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
 
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
 
MemoryPlus Workshop
MemoryPlus WorkshopMemoryPlus Workshop
MemoryPlus Workshop
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
 
フロー技術によるネットワーク管理
フロー技術によるネットワーク管理フロー技術によるネットワーク管理
フロー技術によるネットワーク管理
 
仮想FPGAクラウド
仮想FPGAクラウド仮想FPGAクラウド
仮想FPGAクラウド
 
FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化FPGAによる大規模データ処理の高速化
FPGAによる大規模データ処理の高速化
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
 
Isca13 study
Isca13 studyIsca13 study
Isca13 study
 
研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門研究者のための Python による FPGA 入門
研究者のための Python による FPGA 入門
 
POWER8ここだけの話
POWER8ここだけの話POWER8ここだけの話
POWER8ここだけの話
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
 
CUDAプログラミング入門
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
 
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する
 
SDN Japan: ovs-hw
SDN Japan: ovs-hwSDN Japan: ovs-hw
SDN Japan: ovs-hw
 
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
HPC で使えそうな FPGA 搭載 AWS F1 インスタンス 20170127
 

Más de Takefumi MIYOSHI

Más de Takefumi MIYOSHI (20)

ACRiルーム1年間の活動と 新たな取り組み
ACRiルーム1年間の活動と 新たな取り組みACRiルーム1年間の活動と 新たな取り組み
ACRiルーム1年間の活動と 新たな取り組み
 
RISC-V introduction for SIG SDR in CQ 2019.07.29
RISC-V introduction for SIG SDR in CQ 2019.07.29RISC-V introduction for SIG SDR in CQ 2019.07.29
RISC-V introduction for SIG SDR in CQ 2019.07.29
 
Misc for edge_devices_with_fpga
Misc for edge_devices_with_fpgaMisc for edge_devices_with_fpga
Misc for edge_devices_with_fpga
 
Cq off 20190718
Cq off 20190718Cq off 20190718
Cq off 20190718
 
Synthesijer - HLS frineds 20190511
Synthesijer - HLS frineds 20190511Synthesijer - HLS frineds 20190511
Synthesijer - HLS frineds 20190511
 
Reconf 201901
Reconf 201901Reconf 201901
Reconf 201901
 
Hls friends 201803.key
Hls friends 201803.keyHls friends 201803.key
Hls friends 201803.key
 
Abstracts of FPGA2017 papers (Temporary Version)
Abstracts of FPGA2017 papers (Temporary Version)Abstracts of FPGA2017 papers (Temporary Version)
Abstracts of FPGA2017 papers (Temporary Version)
 
Hls friends 20161122.key
Hls friends 20161122.keyHls friends 20161122.key
Hls friends 20161122.key
 
Slide
SlideSlide
Slide
 
Synthesijer and Synthesijer.Scala in HLS-friends 201512
Synthesijer and Synthesijer.Scala in HLS-friends 201512Synthesijer and Synthesijer.Scala in HLS-friends 201512
Synthesijer and Synthesijer.Scala in HLS-friends 201512
 
Das 2015
Das 2015Das 2015
Das 2015
 
Microblaze loader
Microblaze loaderMicroblaze loader
Microblaze loader
 
Reconf 201506
Reconf 201506Reconf 201506
Reconf 201506
 
Synthesijer jjug 201504_01
Synthesijer jjug 201504_01Synthesijer jjug 201504_01
Synthesijer jjug 201504_01
 
Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316
 
Synthesijer fpgax 20150201
Synthesijer fpgax 20150201Synthesijer fpgax 20150201
Synthesijer fpgax 20150201
 
Synthesijer hls 20150116
Synthesijer hls 20150116Synthesijer hls 20150116
Synthesijer hls 20150116
 
Reconf_201409
Reconf_201409Reconf_201409
Reconf_201409
 
Fpgax 20130830
Fpgax 20130830Fpgax 20130830
Fpgax 20130830
 

ACRi_webinar_20220118_miyo