SlideShare a Scribd company logo
ソフトウェア技術者はFPGAを 
どのように使うか 
2013年8月31日 きしだなおき
FPGAとは 
● Field Programmable Gate Array 
– Field 現場で 
– Programmable プログラム可能な 
– Gate 論理素子 
– Array いっぱい並んだやつ 
● 現場でプログラムできる論理回路
回路の合成 
● 例:3入力でORとANDの組み合わせ
回路にはいろいろある 
● XORやNOTなどいろいろ組み合わせると大変 
● 使われない素子が多くなる 
● 回路に無駄
LUT 
入力出力 
000 0 
100 0 
010 0 
110 1 
001 1 
101 1 
011 1 
111 1
LUT 
● あらかじめメモリにもっておけばいい 
● 製品としては4入力LUTや6入力LUT 
入力出力 
000 0 
100 0 
010 0 
110 1 
001 1 
101 1 
011 1 
111 1
論理ブロック 
● Logical Element(LE) Altera 
● Logical Cell(LC) Xilinx
配線 
● LUTが格子状に配置 
● 周囲に配線 
● アイランドスタイル
乗算回路とメモリ 
● 乗算やメモリを論理ブロックの組み合わせで実現 
すると効率がわるい 
● 乗算回路やメモリがのってる
FPGAとASIC 
● ASIC 
– Application Specific Integrated Circuit 
– 特定用途向け集積回路 
– 設計・製造に時間がかかる 
– 大量に生産する必要がある 
– 製造に数千万円から数億円 
– ひとつあたりのコストは安い 
– 大量生産向き 
– つまりふつうのチップ
ASICと比べたFPGA 
● 設計してすぐ動かせる 
● ひとつから作れる 
● ひとつあたりのコストは高い 
● 消費電力や速度はASICより不利 
● 少量生産やプロトタイプなど
FPGAとCPU 
● CPUとは
FPGAなら 
● 命令を読み込まず回路をそのとおり並べれる
FPGAの利点 
● 命令を読み込む必要がない 
● 処理間のデータのやりとりにメモリを介する必要 
がない 
● 細かな並列化 
● 大量のI/O 
– CPUでのI/Oは命令のひとつ 
● でもCPUは最適化が進んでいるし高性能製品が 
ある
GPUとFPGA 
● GPUとは 
– 浮動小数演算器をたくさんならべてデータを配って同 
時に計算
スループットとレイテンシ 
● スループット 
– 単位時間あたりの処理量 
● レイテンシ 
– ひとつの処理にかかる時間 
● シングルスレッドなら 
– スループット=単位時間÷レイテンシ 
– レイテンシ=単位時間÷スループット
スループット
データが処理時間の倍の速さで来たら
GPUの場合
処理がABに分割できたら
FPGAとGPU 
● GPU 
– 浮動小数計算が得意 
– 製品が安い 
– 大量のコア 
– 最悪レイテンシが遅くなる 
– データ間演算が苦手 
– CPUが必要
FPGAとGPU 
● FPGA 
– レイテンシをコントロールできる 
– 浮動小数計算は苦手 
– データ間演算もできる 
– 単独で動かせる 
● でもGPUが高性能低価格化してる 
– 性質としてFPGAが優れてても製品としてGPUが進ん 
でいる
FPGAでの開発 
● 回路記述 
– VHDLやVerilogHDLなど 
● 論理合成 
– HDLを論理回路に変換 
● 配置配線 
– 論理回路を実際の回路に配置 
● コンフィギュレーション 
– FPGAに回路情報を設定
HDLの問題点 
● 書くのが面倒 
● 書くのが面倒 
● 論理合成に時間がかかる 
– 数時間かかったりする 
● デバッグが面倒 
● デバッグが面倒 
● テストも面倒 
● テストも面倒 
● いろいろ面倒
IPを使う 
● Intellectual Property 
● ようするにライブラリ 
● だれかが作って検証してる
SoC 
● System on Chip 
● CPU回路のせちゃえ 
– ソフトコアCPU 
● 物理CPUのせちゃえ 
– FPGAの微細化 
– チップに余裕 
– 再構成可能回路が大量にあってもしかたない 
– そうだARMを乗せよう
高位合成 
● CとかJavaとかで書いてHDLに変換 
● アルゴリズムの検証がソフトウェアとして行える 
– デバッガなどが使える 
– コンパイルが速い
FPGAのつかいどころ 
● 信号処理 
● 金融計算 
● ネットワーク処理 
● 科学計算?
信号処理 
● 4K2Kテレビなど情報量が増大 
● レイテンシも重要 
● 浮動小数演算に課題 
– 浮動小数演算器が載ってくる
金融計算 
● 時間=お金 
● 回路切り替えにも工夫 
– 回路切り替えで処理が止まるならFPGAで時間短縮す 
る意味がない
ネットワーク処理 
● 40Gbイーサとか100Gbイーサとかが普及すると 
処理についていけない 
● 暗号処理や圧縮処理をFPGAで行うとよさげ 
● CPUはアプリケーション処理に専念
科学計算 
● 並列処理ができるので科学計算に期待されてい 
た 
● いまはだいたいGPUでおk 
– レイテンシは問題にならない 
– GPU安い 
– 大量に導入できる 
– すでに製品が普及してる
データストリーム処理 
● FPGAに向いているのはレイテンシが重要な処理 
● データ処理に従来のDBMSは使えない
DBMS 
● データベースマネージメントシステム 
● データが保存 
● さまざまなクエリーが流れる
DSMS 
● データストリームマネージメントシステム 
● クエリーが保存 
● データが流れる
ソフトウェア技術者とFPGA 
● ハードウェアの勉強によい 
– CPUの動きを実感できる 
– ハードウェアに興味がもてる 
● いまメモリなどハードウェアの革変器 
● ついていきやすい! 
● 実用は? 
– まだ手軽に使える製品がない
普及のシナリオ1 
● FPGAにCPUも乗る 
● ふつうにパソコンのCPUとして使われる 
● みんなFPGA
普及のシナリオ2 
● ネットワークカードにFPGAが乗る 
● 大規模サービスが採用 
● 小規模サービスも採用 
● FPGA付きネットワークカードが当然に 
● みんなFPGA 
● GPGPUならぬGPFPGA! 
● 本命

More Related Content

PDF
Gpu vs fpga
PDF
show コマンド結果をパースする方法あれこれ #npstudy
PPTX
研究者のための Python による FPGA 入門
PDF
20111015 勉強会 (PCIe / SR-IOV)
PDF
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
PDF
TensorRT Inference Serverではじめる、 高性能な推論サーバ構築
PDF
10GbE時代のネットワークI/O高速化
PPTX
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)
Gpu vs fpga
show コマンド結果をパースする方法あれこれ #npstudy
研究者のための Python による FPGA 入門
20111015 勉強会 (PCIe / SR-IOV)
【EX/QFX】JUNOS ハンズオントレーニング資料 EX/QFX シリーズ サービス ゲートウェイ コース
TensorRT Inference Serverではじめる、 高性能な推論サーバ構築
10GbE時代のネットワークI/O高速化
Deep Learningのための専用プロセッサ「MN-Core」の開発と活用(2022/10/19東大大学院「 融合情報学特別講義Ⅲ」)

What's hot (20)

PDF
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱
PDF
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
PPTX
トランザクションの設計と進化
PDF
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
PDF
Multi Chassis LAG for Cloud builders
PDF
(公開版)FPGAエクストリームコンピューティング2017
PPTX
高速シリアル通信を支える技術
PDF
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
PDF
データ爆発時代のネットワークインフラ
PDF
Linuxカーネルを読んで改めて知るプロセスとスレッドの違い
PDF
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
PDF
Singularityで分散深層学習
PDF
Spectre/Meltdownとその派生
PDF
UnboundとNSDの紹介 BIND9との比較編
PDF
CUDAプログラミング入門
ODP
自宅サーバ仮想化
PDF
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PDF
10分でわかる Cilium と XDP / BPF
PDF
ネットワークコンフィグ分析ツール Batfish との付き合い方
PDF
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
構成情報データベースをGitで管理したいネットワーク運用者の憂鬱
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
トランザクションの設計と進化
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
Multi Chassis LAG for Cloud builders
(公開版)FPGAエクストリームコンピューティング2017
高速シリアル通信を支える技術
Wakamonog6 “ISPのネットワーク”って どんなネットワーク?
データ爆発時代のネットワークインフラ
Linuxカーネルを読んで改めて知るプロセスとスレッドの違い
PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜
Singularityで分散深層学習
Spectre/Meltdownとその派生
UnboundとNSDの紹介 BIND9との比較編
CUDAプログラミング入門
自宅サーバ仮想化
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
10分でわかる Cilium と XDP / BPF
ネットワークコンフィグ分析ツール Batfish との付き合い方
How to Schedule Machine Learning Workloads Nicely In Kubernetes #CNDT2020 / C...
Ad

Viewers also liked (7)

PPTX
$30で始めるFPGA
PDF
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
PDF
FPGAのトレンドをまとめてみた
PPTX
FPGAことはじめ
PPTX
Zynq + Vivado HLS入門
PDF
FPGAを用いたシリアル入力型VGA映像出力装置の設計と実装
PDF
増え続ける情報に対応するためのFPGA基礎知識
$30で始めるFPGA
15.06.27 実録 ソフトウェア開発者が FPGAを独習した最初の3歩@RTLを語る会(9)
FPGAのトレンドをまとめてみた
FPGAことはじめ
Zynq + Vivado HLS入門
FPGAを用いたシリアル入力型VGA映像出力装置の設計と実装
増え続ける情報に対応するためのFPGA基礎知識
Ad

Similar to ソフトウェア技術者はFPGAをどのように使うか (20)

PPT
FPGA
PDF
[DL Hacks]FPGA入門
PPT
20140310 fpgax
PPTX
FPGAで遊んでみた
PPTX
Myoshimi extreme
PPTX
FPGAって、何?
PDF
Tensor flow usergroup 2016 (公開版)
PDF
ACRi_webinar_20220118_miyo
PDF
FPGA・リコンフィギャラブルシステム研究の最新動向
PDF
FPGAX6_hayashi
PDF
20apr2012 kernelvm7-main
PPTX
VHDL-2008が好きなんです
PDF
Lagopus performance
PDF
ICD/CPSY 201412
PDF
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
PPTX
動き検出勉強会リメイク。過去の発表のリメイク版です。動き検出のアルゴリズムとOpencvのオプションについてまとめました
PPTX
PYNQ 祭り: Pmod のプログラミング
PDF
Lagos running on small factor machine
PDF
FPGA+SoC+Linux実践勉強会資料
PPTX
FPGAでベンチマークしたときに苦労した話@fpgax#12
FPGA
[DL Hacks]FPGA入門
20140310 fpgax
FPGAで遊んでみた
Myoshimi extreme
FPGAって、何?
Tensor flow usergroup 2016 (公開版)
ACRi_webinar_20220118_miyo
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGAX6_hayashi
20apr2012 kernelvm7-main
VHDL-2008が好きなんです
Lagopus performance
ICD/CPSY 201412
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
動き検出勉強会リメイク。過去の発表のリメイク版です。動き検出のアルゴリズムとOpencvのオプションについてまとめました
PYNQ 祭り: Pmod のプログラミング
Lagos running on small factor machine
FPGA+SoC+Linux実践勉強会資料
FPGAでベンチマークしたときに苦労した話@fpgax#12

More from なおき きしだ (20)

PDF
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
PDF
GraalVM at Fukuoka LT
PDF
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
PDF
GraalVMについて
PDF
VRカメラが楽しいのでブラウザで見たくなった話
PDF
最近のJava事情
PDF
怖いコードの話 2018/7/18
PDF
Java新機能観察日記 - JJUGナイトセミナー
PDF
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
PDF
これからのコンピューティングの変化とこれからのプログラミング at 広島
PDF
Summary of JDK10 and What will come into JDK11
PDF
Summary of JDK10 and What will come into JDK11
PDF
Java10 and Java11 at JJUG CCC 2018 Spr
PPTX
New thing in JDK10 even that scala-er should know
PPTX
Java Release Model (on Scala Matsuri)
PDF
これからのJava言語と実行環境
PDF
JavaOne報告2017
PDF
JavaOne2017で感じた、Javaのいまと未来 in 大阪
PDF
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
PDF
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する
GraalVMの紹介とTruffleでPHPぽい言語を実装したら爆速だった話
GraalVM at Fukuoka LT
これからのコンピューティングの変化とこれからのプログラミング in 福岡 2018/12/8
GraalVMについて
VRカメラが楽しいのでブラウザで見たくなった話
最近のJava事情
怖いコードの話 2018/7/18
Java新機能観察日記 - JJUGナイトセミナー
プログラマになるためになにを勉強するか at 九州学生エンジニアLT大会
これからのコンピューティングの変化とこれからのプログラミング at 広島
Summary of JDK10 and What will come into JDK11
Summary of JDK10 and What will come into JDK11
Java10 and Java11 at JJUG CCC 2018 Spr
New thing in JDK10 even that scala-er should know
Java Release Model (on Scala Matsuri)
これからのJava言語と実行環境
JavaOne報告2017
JavaOne2017で感じた、Javaのいまと未来 in 大阪
Java8 コーディングベストプラクティス and NetBeansのメモリログから...
NetBeansのメモリ使用ログから機械学習できしだが働いてるかどうか判定する

ソフトウェア技術者はFPGAをどのように使うか