SlideShare a Scribd company logo
1 of 46
FPGAって、何?
.NETラボ勉強会 2017年 8月
2017/08/26
小松 豊彦 (KOMAT)
© 2017 TOYOHIKO KOMATSU
このセッションの目的
 FPGA(Field-Programmable Gate Array)は、論理仕様をプログラムす
ることで任意の論理回路を実現できる論理デバイスです
 ディープラーニングやIoT等の分野で、FPGAの名前を聞いたことが
あるかと思います
 そんなFPGAの特長や仕組み、設計方法、CPU・GPUとの違いなどの
解説を通して、FPGAとはどんなもので、どんなことが出来そうかを
少しでも知って頂けることを目標としています
1
注意事項
 本資料は、個人で準備した環境において、個人的に実施した結果や
調査をもとに作成されています
 著者および発表者が、本資料の内容について、その正確さや個々の
目的への適合性を保証するものではありません
 著者、発表者およびそれらの関係者を含む第三者は、本資料の利用
の結果として生じた損失・損害等について、一切責任を負いません
 本資料に記載されている製品名は各社の商標または登録商標です。
本資料では登録商標マーク ® は省略しています
2
自己紹介
 小松 豊彦 (こまつ とよひこ) ・ komat (こまっと)
 組込系のソフトウェア技術者らしい
 C#が好き
 デジタルガジェット大好き
3
こんなニュースがありました
 インテル、アルテラ買収で合意 -- 買収額は167億ドル [2015/6/1]
(※当時の相場で約2兆円)
https://japan.cnet.com/article/35065319/
インテル(Intel):言わずと知れた世界第1位の半導体メーカー
アルテラ(ALTERA):プログラマブルロジックデバイスの代表的企業
なぜ、インテルはこのような買収を行ったのか?
4
インテルのニュースリリース
 インテル コーポレーション、アルテラの買収を完了 [2015/12/28]
https://newsroom.intel.co.jp/news-releases/%E3%82%A4%E3%83%B3%E3%83%86%E3%83%AB-
%E3%82%B3%E3%83%BC%E3%83%9D%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%80%81%E3%82%A2%E3%83%AB%E3%83%86%E3
%83%A9%E3%81%AE%E8%B2%B7%E5%8F%8E%E3%82%92%E5%AE%8C/
インテル コーポレーション 副社長 兼 プログラマブル・ソリューション事業本部長
ダン・マクナマラ氏のメッセージより:
『アルテラの業界をリードするFPGA技術や顧客サポートと、インテ
ルの世界レベルの半導体製造技術を組み合わせることで、顧客はこれ
までにない性能と電力効率を兼ね備えた次世代の電子システムを構築
することができます』
FPGA技術の可能性は計り知れない?
5
一方、マイクロソフトでは
 The moonshot that succeeded: How Bing and Azure are using an AI
supercomputer in the cloud [2016/10/17]
https://blogs.microsoft.com/ai/2016/10/17/the_moonshot_that_succeeded/
“A team of Microsoft engineers and researchers, working together, has created a system
that uses a reprogrammable computer chip called a field programmable gate array, or
FPGA, to accelerate Bing and Azure.”
『マイクロソフトの技術者と研究者は共同で、BingとAzureを加速させるために、
FPGA(field programmable gate array)と呼ばれる再プログラミング可能なコンピューター
チップを使ったシステムを開発した』
FPGAを使ってそんなことも出来る!
6
FPGAの可能性
 これまでにない性能と電力効率
 クラウドコンピューティングの性能を加速
このようなことが出来るFPGAとは一体何者か?
7
特長
 様々な論理回路をプログラミング可能
 単純な論理回路からCPUまで、様々なデバイスを実現
 高速・汎用インタフェース
 DDR SDRAMや他のデバイスとの間で高速なデータを転送が可能
 複数の信号方式・信号レベルをサポート
 再プログラミング可能
 後から論理回路を変更できる。技術的には動作中にも変更可能
 SoCタイプの製品
 CPUコアを持つFPGAにより、更に柔軟で高性能なデバイスを実現
8
利用分野・製品
 主な利用分野・製品
 ネットワーク機器
 ASIC(特定用途向けIC)のプロトタイピング
 画像処理
 アクセラレータ
 低価格化により、最近では下記のような利用方法もある
 ASICの代用
 MCU(マイコン)の代用
9
FPGAアクセラレータ
 PCに接続して使用する、FPGA搭載のPCI Expressボード
例:Nallatech 510T Compute Acceleration Card
http://www.nallatech.com/store/fpga-accelerated-computing/pcie-accelerator-cards/nallatech-510t-fpga-computing-
acceleration-card/
10
FPGA x2, PCIe x16,
4GB DDR4 SDRAM x8(全て直結)
Microsoft Project Brainwave
 Microsoft unveils Project Brainwave for real-time AI
https://www.microsoft.com/en-us/research/blog/microsoft-unveils-project-brainwave/
 データセンターのネットワークにFPGAを直結
超低遅延な処理が可能
 搭載FPGA: Intel Stratix 10 TX
 100G Ethernet MAC Hard IP
 Quad-Core 64bit ARM Cortex-A53
 PCI Express (Gen3, x16) Hard IP
11
おいくら?
 数百円~数百万円
 Intel Stratix 10 GX [1SG280HU3F50E2VGS1] ※2,753,000LE, サンプル品
https://www.altera.co.jp/products/fpga/stratix-series/stratix-10/overview.html
24,470.12 USD (2,895,057円) ※550万LEの最上位品だと一体いくらするんだろうか・・・
 Intel MAX 10 [10M02DCV36C8G] ※2,000LE
https://www.altera.co.jp/products/fpga/max-series/max-10/overview.html
3.78 USD (447円) ※1個あたり。一括大量購入で単価は更に安価になる
※Digi Key調べ、2017/08/20現在
https://www.digikey.jp/
12
全体構造 13
http://chessprogramming.wikispaces.com/FPGA
 Logic Block
 論理ブロック。論理演算やデータの保持を行う
 乗算器、メモリ等を有する製品もある
 数百~数百万ブロック
 Routing Channel
 論理ブロックやI/Oとの信号の伝送を行う
 信号の行き先を制御するための
スイッチブロック・コネクションブロックを含む
 I/O Pad
 信号を外部に引き出す
 信号形式やタイミング調整等を行うI/Oブロックを含む
 細かいトポロジは製品毎に異なるが、概ねこんな感じ
論理ブロックの構造
 LUT (Lookup Table)
 任意の論理回路を表現
 FA (Full Adder)
 全加算器
 演算や比較を行う
 DFF (D Flip Flop)
 データの保持
 タイミングの調整
 MUX (Multiplexer)
 内部信号の選択
 製品によって構成は異なるが、概ねこんな感じ
14
https://commons.wikimedia.org/wiki/File:FPGA_cell_example.png
コンフィグレーション
 FPGAは動作開始前に「コンフィグレーション」という処理が必要
 FPGA内外に「コンフィグROM」が配置されている
 コンフィグROMには、予めコンフィグレーションデータを書き込んでおく
 コンフィグROMから、FPGA内のLUTやSRAMにデータを流し込む
 この時、流し込まれたデータの復号化や検証も同時に行われる
 コンフィグレーションは、必ずしもコンフィグROMを経由する必要はない
15
コンフィグレーション
データ
コンフィグROM FPGA
プログラミング コンフィグレーション
利用形態
 ロジックデバイス (システム・ハードウェアの一部として)
 ASIC(特定用途向けIC)
 MCU(マイコン)
 SoC(System on Chip)
 アクセラレータ (高度な演算処理を肩代わり)
 DSP (Digital Signal Processor)
 ベクトルプロセッサ
 その他 (上記の組み合わせ等)
16
まとめると
 多数の高速な論理ブロックによって、様々な論理回路を構成
 論理ブロックは単独でも連携しても動作可能
 大雑把に言えば、論理ブロック数はスレッド数に相当
 技術的には、論理回路を動的に書き換えることも可能
様々な処理・演算を高速に実行可能
17
CPU・GPUとのざっくり比較
FPGA CPU (GP)GPU
処理方式
フロー
ステートマシン
プログラム プログラム
同時処理数
論理ブロック単位
~数十万以上
スレッド単位
~数十
スレッド単位
~数百以上
演算機能
LUTによる論理回路
組み合わせ次第
整数・SIMD・
浮動小数点
整数・SIMD・
浮動/固定小数点
ハードウェアレベルの
スケーラビリティ
特に制限なし
1~4
同一製品に限る
1~3
同一製品に限る
特色
どんな演算や処理にも
対応・注力できる
最速ではないが
何でも演算出来る
大量の並列演算が得意
18
※同列で比較するのはフェアではない項目もあります
CPU・GPUに比べて優位な点
 必要な処理だけをプログラムしておくため、効率が良い
 柔軟性のある高速・汎用インタフェースにより、
FPGA同士やCPU・GPU等との連携がしやすい
 必要であれば、CPU機能を載せることも可能
(最初からCPUが内蔵されたFPGAもある)
 単独でも動作が可能
19
CPUにもGPUにもなれるFPGA
 技術的には、FPGAはCPUにもGPUにもなれる
 全く同じことをさせようとすると、
専用のCPUやGPUには性能では劣る
 しかし、CPUやGPUではFPGAの代わりになり得ない
 シミュレーションは可能であり、設計に必要
 エミュレーションは、現実的・実用的ではない
(性能面、費用対効果、電力効率など)
20
設計手法の移り変わり
 以前はハードウェア記述言語(HDL)で記述して設計することが殆どだった
HDL: Hardware description language
 様々なモジュールをGUI上で接続するだけでSoCを構成できるソリュー
ションが登場
【例】Intel Qsys : システム統合ツール
https://www.altera.co.jp/products/design-software/fpga-design/quartus-prime/features/qts-qsys.html
SoC: System on Chip
 最近は高位合成(HLS)によって、ソフトウェアで設計して、そのままハー
ドウェア化することも可能になった
HLS: High Level Synthesis
21
設計方法
 回路図による設計
 論理素子・モジュール
 ハードウェア記述言語(HDL)による設計
 Verilog(-HDL)
 VHDL
 高級言語による設計
 C/C++ (OpenCL)
 Python
 MATLAB
22
設計フロー
 インタフェース設計・電力設計
 論理設計
 タイミング設計
 シミュレーション
 論理合成
 プログラミング(コンフィグROMへの書き込み)
 実機確認
23
高位合成では
このプロセスを省力化可能
インタフェース設計・電力設計
 信号レベル
 CMOS, LVDS …
 ピンアサイン
 入力, 出力, データ, クロック …
 プロトコル・タイミング
 PCI Express, USB, Ethernet …
 消費電力
 論理規模や動作周波数によって消費電力が大きく変わる
24
 FPGAを動かすには、FPGAをハードウェアに搭載す
る必要がある
 搭載するハードウェアが既にある場合(メーカー製
の拡張ボード等)は、その仕様に合わせる。メー
カーが設計済みのデータを用意してある場合は、そ
れを利用する
 ハードウェアをこれから作る場合は、搭載予定の他
のデバイスとどのように通信するのかを、把握して
おく必要がある
論理設計
 データフロー・ステートマシンによる設計が中心
 データの保持・伝送にフリップフロップ(レジスタ)を用いるため
RTL(Register Transfer Level)設計と呼ばれる
 同期回路による論理設計
 クロックに合わせてデータ転送や演算を行う回路を用いる
 非同期回路による論理設計
 論理合成の結果が性能や動作を左右し、結果を予測しづらい
 クロック周波数が異なるブロックを接続する場合も、この設計となる
25
基本的に
こちらを用いる
タイミング設計
 データの伝達には時間がかかる (光速は超えられない)
 同じデータでもビット毎に到達時間が異なる (スキューと呼ぶ)
 どのデータがどんなタイミングで到達する必要があるのかを
予め設計しておく
 論理合成時に、設計したタイミングで動作できるかを確認可能
 必要に応じて、論理ブロックの配置を変更したり、
わざと遅延処理を入れたりして、タイミングを調整する
26
シミュレーション
 信号・データの処理過程や結果を、シミュレーターで確認する
 シミュレーションには下記の2つがある
 RTLシミュレーション (高速、遅延時間は考慮しない)
 ゲートレベル・シミュレーション (低速、遅延時間を考慮する)
参考 http://www.alteraforum.com/forum/showthread.php?t=41737
 シミュレーションには数十秒~数時間かかる
 あくまでもFPGA内での確認
外部との連携はインタフェース設計を信じるしかない
27
論理合成
 FPGA内での論理配置をソフトウェアにより自動決定する
 設計者の思惑とは異なる結果もあり得る
 ピンアサインを忘れると、それも勝手に決定されてしまう
 数分~十数時間かかる
 論理規模やPCのスペックによる
 論理合成で「コンフィグレーションデータ」が生成される
28
プログラミング
 FPGAの内外にある「コンフィグROM」に
コンフィグレーションデータを書き込む
 書き込み方法によっては数秒~十数分かかる
 決められた方法・タイミングで書き込みできれば良いので、
コンフィグROMの代わりに別のデバイスや方法を使っても良い
 マイコン内のフラッシュメモリ (ファームウェアの一部)
 SDカード
 PC
29
実機確認
 期待した動作になるとは限らない
 FPGAでもソフトウェアでも同じ
 論理設計のバグならともかく、
インタフェース設計・タイミング設計が原因のバグは厄介
 ソフトウェアでは書いたとおりに動作するが、
FPGAだと書いたとおりに動作するとは限らない
 インタフェース設計を誤ると、システムの故障に繋がる
 FPGAを搭載したハードウェアの不具合だと更に厄介
30
高位合成による設計
 アルゴリズムやデータフローから直接論理設計および合成を行う
 下記のような様々なHLSソリューションがある
 OpenCL
 Xilinx Vivado HLS
 Intel HLS Compiler
 MATLAB/SYMLINK + HDL Coder
など…
31
OpenCL
 OpenCL C言語による、異種混在の計算資源を利用した並列コン
ピューティングのためのクロスプラットフォームなフレームワーク
OpenCL: Open Computing Language
https://ja.wikipedia.org/wiki/OpenCL
 インテルのOpenCLソリューション
 インテル FPGA SDK for OpenCL
https://www.altera.co.jp/products/design-software/embedded-software-
developers/opencl/overview.html
32
上記Webページにある動画「ソフトウェア・プログラマーのためのFPGA開発入門」はオススメ
FPGA, CPU, GPU, DSP等を意識せず
処理を記述できる
高位合成のメリット・注意点
 メリット
 HDLによる論理設計やタイミング設計を省略できる
 ソフトウェアの開発手法でハードウェア化が可能
 注意点
 動作するレベルの論理回路が生成されるため、必ずしも高速にはならない。
高速化するにはチューニングが必要
 確かにC言語では書けるが、並列処理による高速化を行うには
フレームワーク等を利用する必要がある
33
もっと手軽に試したい
 開発ボードは各社から発売されている
 Terasic DE0 nano (Intel Cyclone IV)
http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&No=593
 開発ツールには無償版がある
 Intel Quartus Prime Lite Edition (新しいデバイス向け: Cyclone IV~, MAX 10)
https://www.altera.co.jp/products/design-software/fpga-design/quartus-prime/overview.html
 Intel Quartus II Web Edition (古いデバイス向け: ~Cyclone III)
34
Terasic DE0 nano
まとめ
 FPGAは様々な処理を実現できる論理デバイス
 クラウドではFPGAは高性能なアクセラレータになる
 FPGAでASICやマイコンの置き換えも可能
35
おわり
END
ご静聴ありがとうございました
36
デモ (時間が余ったら)
 Terasic DE0 nano
 Quartus Prime Lite Edition v17.0.2
 1秒周期でLチカ
37
Terasic DE0 nano
DE0 nano
 マニュアルから必要な情報を読み取る
DE0-nano User Manualより
 FPGA: Intel Cyclone IV EP4CE22F17C6N
 コンフィグROM: EPCS64 (要Flash Loader)
 緑色LED (A15ピン, Hレベルで点灯)
 クロック発信器 (50MHz, R8ピン)
 I/O standard 3.3V
38
手順
 New Project Wizard
 FPGAは “EP4CE22F17C6”を選択。語尾のNは要らない。ここではファイルも追加しない
 Pin Planner
 “led0”と”clock_50”という名前のピンを、それぞれ”A15”ピンと”R8”ピンに設定。
Reserved列に信号方向を設定(それぞれOutput, Input)
 “Create Top-Level Design File”で、Verilogファイル(.vファイル)を生成
 生成されたVerilog ファイルにソースを追加
 Compile
 大量のWarningは気にしない。TimeQuestがどうのこうの出てくるのも気にしない
 Programmer
 FPGAに直接書き込んでも動作する (ただし書き込んだデータは電源オフで消える)
 LED1~8がほんのり点灯するが、問題なし (未使用ピンがweak pullupされるため。本来ならLレベルにすべき)
39
Lチカのソース(追加部分)
// {ALTERA_IO_BEGIN} DO NOT REMOVE THIS LINE!
output led0;
input clock_50;
reg led0_reg = 1'b1;
reg [31:0] counter = 0;
assign led0 = led0_reg;
parameter COUNT = (50000000 / 2) - 1;
always @(posedge clock_50) begin
led0_reg <= (counter == COUNT) ? ~led0_reg : led0_reg;
counter <= (counter == COUNT) ? 0 : counter + 1;
end
// {ALTERA_IO_END} DO NOT REMOVE THIS LINE!
40
この部分を追加する
参考文献・リンク集
 FPGAの原理と構成 (天野英晴 著、オーム社 刊)
http://shop.ohmsha.co.jp/shopdetail/000000004588/
 高位合成について思ったこと
http://nahitafu.cocolog-nifty.com/nahitafu/2015/09/post-912f.html
 Inside the Microsoft FPGA-based configurable cloud
https://azure.microsoft.com/en-us/resources/videos/build-2017-
inside-the-microsoft-fpga-based-configurable-cloud/
41
参考文献・リンク集(つづき)
 FPGA
https://ja.wikipedia.org/wiki/FPGA
 なぜインテルはアルテラを買収し、FPGAをXeonに統合しようとして
いるのか?
http://cn.teldevice.co.jp/column/detail/id/93
 機械学習/Deep Learningの仕事が増える2017年、ソフトウェアエン
ジニアがFPGAを学ぶべき理由
http://www.atmarkit.co.jp/ait/articles/1701/30/news007.html
42
参考文献・リンク集(つづき)
 エンタープライズ・IoT領域でのFPGA活用に関する研究開発成果
https://www.miraclelinux.com/labs/fpga
 Xilinx Vivado Design Suite 評価版および WebPACK
https://japan.xilinx.com/products/design-tools/vivado/vivado-
webpack.html
 Intel Stratix 10
https://www.altera.co.jp/products/fpga/stratix-series/stratix-
10/overview.html
43
参考文献・リンク集(つづき)
 Intel MAX 10
https://www.altera.co.jp/products/fpga/max-series/max-
10/overview.html
 改訂 入門Verilog HDL記述 (小林 優 著, CQ出版社 刊)
http://www.cqpub.co.jp/hanbai/books/33/33981.htm
 Open Cores
https://opencores.org/
※オープンソースのハードウェアIPコア
44
参考文献・リンク集(つづき)
 Microsoft、リアルタイムAI向けアクセラレータを開発
http://pc.watch.impress.co.jp/docs/news/1076883.html
45

More Related Content

What's hot

FPGAでベンチマークしたときに苦労した話@fpgax#12
FPGAでベンチマークしたときに苦労した話@fpgax#12FPGAでベンチマークしたときに苦労した話@fpgax#12
FPGAでベンチマークしたときに苦労した話@fpgax#12Jun Ando
 
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムShinya Takamaeda-Y
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説Takateru Yamagishi
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料一路 川染
 
エンジニアも知っておきたいAI倫理のはなし
エンジニアも知っておきたいAI倫理のはなしエンジニアも知っておきたいAI倫理のはなし
エンジニアも知っておきたいAI倫理のはなしYasunori Nihei
 
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応marsee101
 
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争goccy
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編Fixstars Corporation
 
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことHopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことNVIDIA Japan
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例Fixstars Corporation
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みMasahiro Sakai
 
Ultra96ボードでYOLOを高速化
Ultra96ボードでYOLOを高速化Ultra96ボードでYOLOを高速化
Ultra96ボードでYOLOを高速化Hiroyuki Okuhata
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門Fixstars Corporation
 
Chainer で Tensor コア (fp16) を使いこなす
Chainer で Tensor コア (fp16) を使いこなすChainer で Tensor コア (fp16) を使いこなす
Chainer で Tensor コア (fp16) を使いこなすNVIDIA Japan
 
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみるDSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみるAtsushi KOMIYA
 
Moving computation to the data (1)
Moving computation to the data (1)Moving computation to the data (1)
Moving computation to the data (1)Kazunori Sato
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメTetsuyuki Kobayashi
 

What's hot (20)

Gpu vs fpga
Gpu vs fpgaGpu vs fpga
Gpu vs fpga
 
FPGAでベンチマークしたときに苦労した話@fpgax#12
FPGAでベンチマークしたときに苦労した話@fpgax#12FPGAでベンチマークしたときに苦労した話@fpgax#12
FPGAでベンチマークしたときに苦労した話@fpgax#12
 
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
 
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
CUDAのアセンブリ言語基礎のまとめ PTXとSASSの概説
 
FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料FPGA+SoC+Linux実践勉強会資料
FPGA+SoC+Linux実践勉強会資料
 
エンジニアも知っておきたいAI倫理のはなし
エンジニアも知っておきたいAI倫理のはなしエンジニアも知っておきたいAI倫理のはなし
エンジニアも知っておきたいAI倫理のはなし
 
高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応高位合成ツールVivado hlsのopen cv対応
高位合成ツールVivado hlsのopen cv対応
 
ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争ぼくとJenkinsおじさんの360日戦争
ぼくとJenkinsおじさんの360日戦争
 
TVM の紹介
TVM の紹介TVM の紹介
TVM の紹介
 
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
CPU / GPU高速化セミナー!性能モデルの理論と実践:実践編
 
Hopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないことHopper アーキテクチャで、変わること、変わらないこと
Hopper アーキテクチャで、変わること、変わらないこと
 
いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例いまさら聞けないarmを使ったNEONの基礎と活用事例
いまさら聞けないarmを使ったNEONの基礎と活用事例
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 
Ultra96ボードでYOLOを高速化
Ultra96ボードでYOLOを高速化Ultra96ボードでYOLOを高速化
Ultra96ボードでYOLOを高速化
 
いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門いまさら聞けない!CUDA高速化入門
いまさら聞けない!CUDA高速化入門
 
Chainer で Tensor コア (fp16) を使いこなす
Chainer で Tensor コア (fp16) を使いこなすChainer で Tensor コア (fp16) を使いこなす
Chainer で Tensor コア (fp16) を使いこなす
 
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみるDSIRNLP #3 LZ4 の速さの秘密に迫ってみる
DSIRNLP #3 LZ4 の速さの秘密に迫ってみる
 
Moving computation to the data (1)
Moving computation to the data (1)Moving computation to the data (1)
Moving computation to the data (1)
 
AS45679 on FreeBSD
AS45679 on FreeBSDAS45679 on FreeBSD
AS45679 on FreeBSD
 
組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ組み込みLinuxでのGolangのススメ
組み込みLinuxでのGolangのススメ
 

Viewers also liked

悪意ないユーザに配慮した不正クライアントの排除
悪意ないユーザに配慮した不正クライアントの排除悪意ないユーザに配慮した不正クライアントの排除
悪意ないユーザに配慮した不正クライアントの排除klab-koike-r
 
Golangにおける端末制御 リッチなターミナルUIの実現方法
Golangにおける端末制御 リッチなターミナルUIの実現方法Golangにおける端末制御 リッチなターミナルUIの実現方法
Golangにおける端末制御 リッチなターミナルUIの実現方法Masashi Shibata
 
Raspberry piと.net coreのstandardな関係
Raspberry piと.net coreのstandardな関係Raspberry piと.net coreのstandardな関係
Raspberry piと.net coreのstandardな関係Masuda Tomoaki
 
勉強会資料 Distribution
勉強会資料 Distribution勉強会資料 Distribution
勉強会資料 Distributionmiki koganei
 
Compact ordered dict__k_lab_meeting_
Compact ordered dict__k_lab_meeting_Compact ordered dict__k_lab_meeting_
Compact ordered dict__k_lab_meeting_miki koganei
 
センサー・VR・MR 基本とオススメ
センサー・VR・MR 基本とオススメセンサー・VR・MR 基本とオススメ
センサー・VR・MR 基本とオススメSatoshi Maemoto
 
ARもVRもMRもまとめてドーン
ARもVRもMRもまとめてドーンARもVRもMRもまとめてドーン
ARもVRもMRもまとめてドーンSatoshi Maemoto
 
負荷試験、どうしてる?(公開版)
負荷試験、どうしてる?(公開版)負荷試験、どうしてる?(公開版)
負荷試験、どうしてる?(公開版)miki koganei
 
ARもVRもMRもまとめてドドンドーン!
ARもVRもMRもまとめてドドンドーン!ARもVRもMRもまとめてドドンドーン!
ARもVRもMRもまとめてドドンドーン!Satoshi Maemoto
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた徹 上野山
 

Viewers also liked (12)

悪意ないユーザに配慮した不正クライアントの排除
悪意ないユーザに配慮した不正クライアントの排除悪意ないユーザに配慮した不正クライアントの排除
悪意ないユーザに配慮した不正クライアントの排除
 
Golangにおける端末制御 リッチなターミナルUIの実現方法
Golangにおける端末制御 リッチなターミナルUIの実現方法Golangにおける端末制御 リッチなターミナルUIの実現方法
Golangにおける端末制御 リッチなターミナルUIの実現方法
 
Raspberry piと.net coreのstandardな関係
Raspberry piと.net coreのstandardな関係Raspberry piと.net coreのstandardな関係
Raspberry piと.net coreのstandardな関係
 
勉強会資料 Distribution
勉強会資料 Distribution勉強会資料 Distribution
勉強会資料 Distribution
 
Compact ordered dict__k_lab_meeting_
Compact ordered dict__k_lab_meeting_Compact ordered dict__k_lab_meeting_
Compact ordered dict__k_lab_meeting_
 
センサー・VR・MR 基本とオススメ
センサー・VR・MR 基本とオススメセンサー・VR・MR 基本とオススメ
センサー・VR・MR 基本とオススメ
 
ARもVRもMRもまとめてドーン
ARもVRもMRもまとめてドーンARもVRもMRもまとめてドーン
ARもVRもMRもまとめてドーン
 
負荷試験、どうしてる?(公開版)
負荷試験、どうしてる?(公開版)負荷試験、どうしてる?(公開版)
負荷試験、どうしてる?(公開版)
 
ARもVRもMRもまとめてドドンドーン!
ARもVRもMRもまとめてドドンドーン!ARもVRもMRもまとめてドドンドーン!
ARもVRもMRもまとめてドドンドーン!
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた
 
OpenCVの基礎
OpenCVの基礎OpenCVの基礎
OpenCVの基礎
 
OpenCV 3.0 on iOS
OpenCV 3.0 on iOSOpenCV 3.0 on iOS
OpenCV 3.0 on iOS
 

Similar to FPGAって、何?

FPGAで遊んでみた
FPGAで遊んでみたFPGAで遊んでみた
FPGAで遊んでみたAkira Kaneda
 
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
 
Starc verilog hdl2013d
Starc verilog hdl2013dStarc verilog hdl2013d
Starc verilog hdl2013dKiyoshi Ogawa
 
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかなおき きしだ
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)Shinya Takamaeda-Y
 
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoTakefumi MIYOSHI
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄Yukio Saito
 
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
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみようYou&I
 
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみたHiroki Nakahara
 
ヘネシー&パターソン7.4
ヘネシー&パターソン7.4ヘネシー&パターソン7.4
ヘネシー&パターソン7.4walk-to-work
 
加藤先生ご講演資料_20210824
加藤先生ご講演資料_20210824加藤先生ご講演資料_20210824
加藤先生ご講演資料_20210824直久 住川
 
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)Shinya Takamaeda-Y
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMFAtomu Hidaka
 

Similar to FPGAって、何? (20)

FPGAで遊んでみた
FPGAで遊んでみたFPGAで遊んでみた
FPGAで遊んでみた
 
FPGA
FPGAFPGA
FPGA
 
Myoshimi extreme
Myoshimi extremeMyoshimi extreme
Myoshimi extreme
 
Kyoto dev caffe
Kyoto dev caffeKyoto dev caffe
Kyoto dev caffe
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
 
Starc verilog hdl2013d
Starc verilog hdl2013dStarc verilog hdl2013d
Starc verilog hdl2013d
 
ソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うかソフトウェア技術者はFPGAをどのように使うか
ソフトウェア技術者はFPGAをどのように使うか
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
 
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyo
 
45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄45分で理解する 最近のスパコン事情 斉藤之雄
45分で理解する 最近のスパコン事情 斉藤之雄
 
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...
 
Pdp11 on-fpga
Pdp11 on-fpgaPdp11 on-fpga
Pdp11 on-fpga
 
OpenCLに触れてみよう
OpenCLに触れてみようOpenCLに触れてみよう
OpenCLに触れてみよう
 
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
電波望遠鏡用の分光器をAltera SDK for OpenCL使ってサクッと作ってみた
 
ヘネシー&パターソン7.4
ヘネシー&パターソン7.4ヘネシー&パターソン7.4
ヘネシー&パターソン7.4
 
加藤先生ご講演資料_20210824
加藤先生ご講演資料_20210824加藤先生ご講演資料_20210824
加藤先生ご講演資料_20210824
 
Ptt391
Ptt391Ptt391
Ptt391
 
ICD/CPSY 201412
ICD/CPSY 201412ICD/CPSY 201412
ICD/CPSY 201412
 
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
 
2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF2014 1018 OSC-Fall Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
 

FPGAって、何?