10.
ASIC vs. FPGA
n ASIC (Application Specific Integrated Circuit)
l それぞれのアプリケーションに特化した専用回路を設計
• 専用パイプライン・高い周波数で高い性能
n FPGA (Field Programmable Gate Array)
l どのアプリケーションも数種類のFPGAで実現:少量生産もOK
l 製品リリース後の回路構成の改変が可能
The number of units
Cost
ASIC
FPGA
FPGA is cheaper ASIC is cheaper
2015-03-11 Shinya T-Y, NAIST 10
14.
Digilent Nexys3
FPGA: Xilinx Spartan-6 LX16
Size: Pipelined CPU ×2
Price: 2万円?(アカデミック)
Digilent ZedBoard
FPGA: Xilinx Zynq-7020
Size: Pipelined CPU ×8 (+ ARM DualCore)
Price: 5万円 (アカデミック)
2015-03-11 Shinya T-Y, NAIST 14
15.
ScalableCore System
FPGA: Xilinx Spartan-6 ×100
Size: Pipelined CPU x200?
Price: 100万円程度?
2015-03-11 Shinya T-Y, NAIST 15
16.
How to Develop a Software?
Writing a software
in programming languages
Preprocess
Compile
Assemble
Link
CompilerFlow
Execution on a CPU
int main(){�
int a = 1 + 2;�
printf(“Hello %dn”, a);�
return 0;�
}�
add $t0, $t1, $t2�
li $v0, 1�
syscall�
ELF01ABF00F1...�
Executable Binary
2015-03-11 Shinya T-Y, NAIST 16
17.
How to Develop a (FPGA) Hardware?
Writing a hardware design in HDL
(Hardware Description Language)
Synthesis
Technology Mapping
Place and Route
Bitstream Generation
EDAFlow
Configuration of the bitstream
to an FPGA
module top�
(input CLK, RST, �
output reg [7:0] LED);�
always @(posedge CLK) begin�
LED <= LED + 1;�
end�
endmodule�
1A0C021E...�
Original HW on an FPGA
Bitstream
2015-03-11 Shinya T-Y, NAIST 17
18.
近年のFPGAを取り巻く環境
2015-03-11 Shinya T-Y, NAIST 18
19.
ARM搭載FPGAの登場 (1)
n ARMプロセッサ+FPGA (Xilinx Zynq, Altera SoC)
l 専用インターコネクトで密結合,キャッシュ・DRAM共有
l 普通のLinuxが動作する→大量なソフトウェア資源が利用可能
Zynq-7000 All Programmable SoC
http://japan.xilinx.com/products/silicon-devices/soc/zynq-7000.html
AlteraのARMベースSoC
https://www.altera.com/ja_JP/pdfs/literature/br/br-soc-fpga_j.pdf
2015-03-11 Shinya T-Y, NAIST 19
32.
PyCoRAM [Takamaeda+,CARL’13]:
CoRAM for Modern EDKs
n CoRAMのメモリ抽象化を今時のEDKで使いたい
l 標準的なインターコネクト(AXI4/Avalon)に繋ぎたい
l そうすれば他の普通のIPコアとも簡単に共存できそう
Standard On-chip Interconnect
CoRAM
Abstraction
Accelerator logic
Standard IP-core
Device-dependent Interfaces
CPU core
Portable application
design with CoRAM Cooperation with standard IP-cores
2015-03-11 Shinya T-Y, NAIST 32
33.
PyCoRAMマイクロアーキテクチャ
PyCoRAM IP
User
I/O
User Logic
CoRAM
Channel
CoRAM
Register
Control
Thread
Master
DMAC
CoRAM
Memory
Master
DMAC
CoRAM
Stream
FSM
GPIO
Slave
DMAC
CoRAM
IoChannel
2015-03-11 Shinya T-Y, NAIST 33
34.
PyCoRAM IP
User
I/O
User Logic
CoRAM
Channel
CoRAM
Register
Control
Thread
Master
DMAC
CoRAM
Memory
Master
DMAC
CoRAM
Stream
FSM
GPIO
Slave
DMAC
CoRAM
IoChannel
PyCoRAMマイクロアーキテクチャ
Modeled in RTL
(Verilog HDL)
Memory Access
Pattern
in Python
2015-03-11 Shinya T-Y, NAIST 34
35.
PyCoRAMマイクロアーキテクチャの実装
PyCoRAM IP
Interconnect (AXI4/Avalon)
DRAM ControllerFPGA
User
I/O
User Logic
CoRAM
Channel
CoRAM
Register
Control
Thread
Master
DMAC
Master I/F
CoRAM
Memory
Master
DMAC
Master I/F
CoRAM
Stream
Slave I/F
FSM
GPIO
Slave
DMAC
CoRAM
IoChannel
2015-03-11 Shinya T-Y, NAIST 35
36.
PyCoRAMマイクロアーキテクチャの実装
PyCoRAM IP
Interconnect (AXI4/Avalon)
DRAM ControllerFPGA
User
I/O
User Logic
CoRAM
Channel
CoRAM
Register
Control
Thread
Master
DMAC
Master I/F
CoRAM
Memory
Master
DMAC
Master I/F
CoRAM
Stream
Slave I/F
FSM
GPIO
Slave
DMAC
CoRAM
IoChannelMaster:
メモリ等へ能動
的にアクセス
Slave:
プロセッサ等から
読み書きされる
2015-03-11 Shinya T-Y, NAIST 36
37.
PyCoRAMにおける開発フロー
n 計算カーネルのRTLとPythonでのコントロールスレッド
記述からIPコアパッケージを生成
l 生成されたIPコアは通常のEDAフローで利用可能
User-logic
(Verilog HDL)
Control
Threads
(Python)
Logic
Hierarchy
Analysis
Python-to-
Verilog
Compilation
Control
Signal
Insertion IP-core
Packing
(RTL,
.mpd,
and
.pao)
IP-core
Integration
on EDK
Synthesis
Control
Signal Port
Addition
FPGA
Bit
File
Portable
Application
Design
PyCoRAM Tool-chain Vendor EDA FlowPython-to-Verilog HLS
RTL Conversion
IP-core
generation
with AXI4
Interface
Top design
synthesis with
AXI4
2015-03-11 Shinya T-Y, NAIST 37
41.
CNN and DNN
n CNN: Convolutional Neural Network
l 畳み込みニューラルネットワーク
• 畳み込み演算・プーリング(選択)を多層に積む
From “DaDianNao: A Machine-Learning Supercomputer (MICRO’14)”
2015-03-11 Shinya T-Y, NAIST 41
42.
Deep Learning on FPGAs
n データフローアーキテクチャの採用
l ニューロン・シナプスの値が乗算・加算パイプラインを流れる
n ニューロンのネットワークをHW実装したわけではない
l DNNモデルを高速化し何かを予測したいだけ
Zhang+, Optimizing FPGA-based Accelerator Design for Deep Convolutional Neural Networks, FPGA’15
2015-03-11 Shinya T-Y, NAIST 42
43.
FPGA-based Machine Learning System
n Microsoft Bing Search Engine (Catapult)
l A commercial FPGA-based web search engine
l Machine-learning (DNN) algorithms as hardware pipeline
Putnam+, A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services, ISCA'14
2015-03-11 Shinya T-Y, NAIST 43
44.
DaDianNao: A Machine-Learning Supercomputer
n CNN/DNNのためのプログラマブルアクセラレータ
n IEEE/ACM MICRO’14ベストペーパー
l µアーキテクチャのトップカンファレンスでベストペーパー
We show that, on a subset of the largest known neural network layers,
it is possible to achieve a speedup of 450.65x over a GPU, and reduce
the energy by 150.31x on average for a 64-chip system.
2015-03-11 Shinya T-Y, NAIST 44
45.
Chip Layout of DaDianNao
2015-03-11 Shinya T-Y, NAIST 45
46.
Multi-chip System for large network
2015-03-11 Shinya T-Y, NAIST 46
47.
Various Operations on Identical NFU
2015-03-11 Shinya T-Y, NAIST 47
48.
Energy Reduction (Inference)
n GPUと比較して150倍程度電力効率を改善
l 必要なメモリeDRAMでオンチップに入れてしまい
それを沢山ならべてしまえば高効率
2015-03-11 Shinya T-Y, NAIST 48
Be the first to comment