際際滷

際際滷Share a Scribd company logo
謹方の弌否楚FPGAを喘いた
スケ`ラブルなステンシル麻Cの_k
弌爽毧? 互念弥(表鍋) 阜匆?,?? 耳t屈?
? |奨垢I寄僥 寄僥垪秤鸚躪ぱа仂真
?? 晩云僥g尅d氏 蒙e冩梢TDC1
2013/05/24 枠M議麻児PシステムシンポジウムSACSIS2013
リコンフィギャラブルコンピュ`ティング(13:30-14:00) k燕25蛍|夘5蛍
云冩梢の撹惚
1
1. 謹方の弌否楚 FPGA を聞喘した2肝圷ステンシル
麻にして,互紳覆篇麻をgFする
ア`キテクチャを戻宛
2. 戻宛ア`キテクチャをgFしたFPGAべ`スの
互來嬬アクセラレ`タのg廾
3. 100の FPGA のアレ`システムにおけるu
および戻宛ア`キテクチャの屎輝來の編^
? 嘘尚
?ステンシル麻
?vB冩梢
? 謹方の弌否楚FPGAを喘いたスケ`ラブルな
ステンシル麻返隈
?デ`タセットの蛍護とFPGAへの護り輝て
?麻會の恷m晒
? ア`キテクチャ
? g廾
? u
? Y
k燕の送れ
2
? 陶裏蛍圭殻塀の除貌盾を箔める返隈の1つ
? 仇寳シミュレ`ション,デジタル佚催I尖送悶麻などの
?な蛍勸て?旋喘されている
ヤコビ隈における2肝圷ステンシル麻
* Morgan, K et.al IJNME 1983
3
v1[i][j] =
(C0 * v0[i-1][j]) + (C1 * v0[i][j+1]) +
(C2 * v0[i][j-1]) + (C3 * v0[i+1][j]);
Time-step k
Update data set
v1[i][j]は嶷み協方(C0?C3)をかけられた4除因の
泣の、鰈磴刑呂錣擦襪海箸砲茲辰酉麻される
? 處麻來嬬 (互業に恷m晒している)
? 掲紳覆編咀として參和の尖喇がい欧蕕譴
? 喘議な夛はステンシル麻にmしていない
? 泙蕕譴織瓮皀。囃
? そのためFPGAべ`スのカスタムコンピュ`ティングが嗤李
マルチコアやGPGPUにおける
ステンシル麻
4
Processor
Performance [GFlop/s]
Peak Sustained (efficiency)
1 core of Xeon E5220 (quad-core)
8 cores of Xeon E5220 SMP node
1 x NVidia Tesla C1016
16 x NVidia Tesla C1016
9.0
72.0
78
1248
2.8 (31%)
15.9 (22%)
51 (65%)
530 (42%)
[2]
[3]
[2] Augustin et al. Euro-Par ¨09 [3] Phillips et al. IPDPS 2010
? 嘘尚
?ステンシル麻
?vB冩梢
? 謹方の弌否楚FPGAを喘いたスケ`ラブルな
ステンシル麻返隈
?デ`タセットの蛍護とFPGAへの護り輝て
?麻會の恷m晒
? ア`キテクチャ
? g廾
? u
? Y
k燕の送れ
5
? 謹方の弌否楚FPGAを喘いたタイル侏ア`キテクチャシミュレ`タ
? メニ`コアプロセッサの互堀シミュレ`ションh廠
? ステンシル麻を互堀に盾くためのFPGAアレ`としてこのシステムを旋喘
ScalableCore システム
6
One FPGA node
FPGA
SRAMPROM
? g廾て?は1つのFPGAに64〜128のデ`タ勣殆を護り輝てる
? 戻宛返隈て?は1つのFPGAに護り輝てるデ`タセットがこのサイズに耕協
される
? FPGA アレ`を撹するノ`ト?の方を筝することによって, 麻する}サイズ
を筝する
デ`タセットの蛍護とFPGAへの護り輝て
7
(a) data set of 16 x 16 elements (b) block decomposition to 4 x 4 FPGAs
?朕議
?FPGAgのデ`タ宥佚においてS否て?きる宥佚レ
イテンシをやしてデ`タ棋ちによるスト`ルを
pする
麻會の恷m晒(1/7)
8
FPGAgて?のデ`タ宥佚
? (a)と(b)を曳^
麻會の恷m晒(2/7)
9
?イテレ`ション : あるr震て?畠てのデ`タ勣殆を厚仟する匯BのI尖
?畠てのデ`タ勣殆は、林麻および厚仟が1サイクルて?Kわるものとする
?光FPGAに護り輝てられた16のデ`タ勣殆の、聾イテレ`ションて?厚仟
戻宛返隈
麻會の恷m晒(3/7)
10
C12 C13
C8 C9
C4 C5
C0 C1
C14
C10
C6
C2
C15
C11
C7
C3
D0 D1
D4 D5
D8 D9
D12 D13
D2
D6
D10
D14
D3
D7
D11
D15
FPGA(C)FPGA(D)
(b)
A1A0 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15
B1B0 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B0
A0
0 16
A1
B1
´
First Iteration end
A0 A1
A4 A5
A8 A9
A12 A13
A2
A6
A10
A14
A3
A7
A11
A15
B0 B1
B4 B5
B8 B9
B12 B13
B2
B6
B10
B14
B3
B7
B11
B15
FPGA(A)FPGA(B)
(a)
戻宛返隈
C1C0 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15
D1D0 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D0
C0
0 16
C1
D1
´
First Iteration end
麻會の恷m晒(4/7)
11
C12 C13
C8 C9
C4 C5
C0 C1
C14
C10
C6
C2
C15
C11
C7
C3
D0 D1
D4 D5
D8 D9
D12 D13
D2
D6
D10
D14
D3
D7
D11
D15
FPGA(C)FPGA(D)
(b)
A1A0 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15
B1B0 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B0
A0
0 16
A1
B1
´
First Iteration end
A0 A1
A4 A5
A8 A9
A12 A13
A2
A6
A10
A14
A3
A7
A11
A15
B0 B1
B4 B5
B8 B9
B12 B13
B2
B6
B10
B14
B3
B7
B11
B15
FPGA(A)FPGA(B)
(a)
B1の麻をスト`ルさせないために
はA13 の、3サイクル參坪(14, 15,
16)に宥佚しなければならない
戻宛返隈
C1C0 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15
D1D0 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D0
C0
0 16
C1
D1
´
First Iteration end
麻會の恷m晒(5/7)
12
C12 C13
C8 C9
C4 C5
C0 C1
C14
C10
C6
C2
C15
C11
C7
C3
D0 D1
D4 D5
D8 D9
D12 D13
D2
D6
D10
D14
D3
D7
D11
D15
FPGA(C)FPGA(D)
(b)
A1A0 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15
B1B0 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B0
A0
0 16
A1
B1
´
First Iteration end
A0 A1
A4 A5
A8 A9
A12 A13
A2
A6
A10
A14
A3
A7
A11
A15
B0 B1
B4 B5
B8 B9
B12 B13
B2
B6
B10
B14
B3
B7
B11
B15
FPGA(A)FPGA(B)
(a)
B1の麻をスト`ルさせないために
はA13 の、3サイクル參坪(14, 15,
16)に宥佚しなければならない
戻宛返隈
C1C0 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15
D1D0 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12 D13 D14 D15 D0
C0
0 16
C1
D1
´
First Iteration end
D1の麻をスト`ルさせないために
は15サイクルの噫圍がある
麻會の恷m晒(6/7)
13
戻宛返隈
FPGAFPGA
M
´´
Iteration end
N-1 cycles(a)
N
FPGAFPGA
M
(b)
N
´´
Iteration end
N〜M-1 cycles
N〜Mのデ`タが護り輝てられる栽FPGAのgて?S否
て?きる宥佚レイテンシはN〜M?1サイクル
N〜Mのデ`タが護り輝てられる栽FPGAのgて?S否
て?きる宥佚レイテンシはN?1サイクル
麻會の恷m晒(7/7)
14
采麻する圭
? ほほ?1イテレ`ションのI尖サイクル方まて?宥佚レイテンシをS否
? デ`タ勣殆の方が紗するほど宥佚レイテンシをS否て?きるサイクル方は紗
謹方のFPGAを聞喘するときはこのペアを駅勣な方だけ兼きめればよい
? 嘘尚
?ステンシル麻
?vB冩梢
? 謹方の弌否楚FPGAを喘いたスケ`ラブルな
ステンシル麻返隈
?デ`タセットの蛍護とFPGAへの護り輝て
?麻會の恷m晒
? ア`キテクチャ
? g廾
? u
? Y
k燕の送れ
15
v1[i][j] = (C0 * v0[i-1][j]) + (C1 * v0[i][j-1]) +
(C2 * v0[i][j+1]) + (C3 * v0[i+1][j]);
MADDにおけるステンシル麻
16
8-stages
8-stages
FPGAノ`ト?のデ`タ勣殆とBlockRAMのvS
17
BlockRAM: low-latency SRAM which each FPGA has.
光FPGAに護り輝てられるデ`タセットはk圭鬚坊峺遒気譯
光BlockRAM(0゛7)に鯉{される
1つのFPGAに64〜128のデ`タセットが護り輝てられる栽
光BlockRAM(0゛7)に蛍護されたデ`タセット(8〜128)が鯉{される
FPGA array 4〜4
(Data is assigned)
BlockRAMs
MADDとBlockRAMのvS
18
?BlockRAMに鯉{されたデ`タセットは
俊AされているMADDによって麻される
?光MADDはK双に嘛
?MADDの麻Y惚はBlockRAMにき
される(r震kからk+1に厚仟)
? g娼業検嗤(泣方 e才處麻匂(IEEE754)
?Xilinxのコアジェネレ`タによって徭喇撹
?\麻匂7粁パイプライン
?紗麻匂7粁パイプライン
MADDア`キテクチャ
19
Register
20
Ser/Des
Ser/Des
Clock
Reset
FPGA
Spartan-6
Configuration
ROM
XCF04S
JTAG
port
West East
mux mux mux mux mux mux mux mux
mux8
MADD MADD MADD MADD MADD MADD MADD MADD
mux2
Ser/Des
Ser/Des
North
South
Sync
Mul
Add
0
Mux
32bit
C constant table
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 78 9
FIFOFIFOFIFOFIFOFIFOFIFOFIFOFIFO
ノ`ト?のシステムア`キテクチャ
メモリユニット (MADDが麻した、鮓
{?O俊FPGAから僕佚される、鮓饉{)
處麻匂MADD Multiply & Adder
(光MADDはK双I尖する)
O俊FPGAに揖豚佚催を僕佚
O俊FPGAに僕佚する、鮓饉{する
シリアライザ?デシリアライザ
(デ`タリカバリ?NRZI憲催を聞喘)
? 嘘尚
?ステンシル麻
?vB冩梢
? 謹方の弌否楚FPGAを喘いたスケ`ラブルな
ステンシル麻返隈
?デ`タセットの蛍護とFPGAへの護り輝て
?麻會の恷m晒
? ア`キテクチャ
? g廾
? u
? Y
k燕の送れ
21
? FPGAが謎方佩か甜方佩かをReする指揃
? デ`タ勣殆の麻會をQめるため
? 指揃トは掲械に弌さい
? FPGAあたりに1つのNOTゲ`ト
了崔秤鵑糧ゝ
22
Bottom row
FPGAs
Row 1:
odd row FPGAs
Row 2:
even row FPGAs
Row 3:
odd row FPGAs
FPGA
NOT
FPGA
NOT
FPGA
NOT
FPGA
NOT
0
1
0
1
FPGA
NOT
FPGA
NOT
FPGA
NOT
FPGA
NOT
0
1
0
1
FPGA
NOT
FPGA
NOT
FPGA
NOT
FPGA
NOT
0
1
0
1
FPGA
NOT
FPGA
NOT
FPGA
NOT
FPGA
NOT
0
1
0
1
ScalableCoreシステム
23
? FPGA(A)をMasterと協x
? Master參翌のFPGAはMasterから僕佚される佚催に揖豚
? Master參翌のFPGAは揖豚佚催を鞭佚するまて?麻をスト`ル
? 揖豚佚催はMasterがα +β の巓豚て?伏撹
? α 1イテレ`ションのためのステンシル麻にI尖に勣するサイクル方
? β 左FPGAのクロックのばらつきを簾Г垢襪燭瓩離洫`ジン
FPGAアレ`の揖豚Cの碧Mみ
24
α
FPGA A
FPGA B
FPGA C
FPGA D
stall
synchronize synchronize
α α
stall stall
β β β
(Master)
? 揖豚佚催を鞭佚したマスタ`(FPGA A)參翌のFPGAノ`ト?は恣圭鬚範
圭鬚僕豚佚催を僕佚
? 揖豚佚催は方噴サイクルの嫌をもつ襖侘
? 僕鞭佚ミスの契峭貨
? 鞭佚するFPGAて?は,この揖豚佚催が方サイクルBAして1となる栽に揖
豚佚催の鞭佚とする
FPGAアレ`の揖豚Cのg廾
25
FPGA D
FPGA B
FPGA C
FPGA A FPGA A
FPGA B
FPGA C
FPGA D
α β
α β
? 嘘尚
?ステンシル麻
?vB冩梢
? 謹方の弌否楚FPGAを喘いたスケ`ラブルな
ステンシル麻返隈
?デ`タセットの蛍護とFPGAへの護り輝て
?麻會の恷m晒
? ア`キテクチャ
? g廾
? u
? Y
k燕の送れ
26
? FPGAXilinx Spartan-6 XC6SLX16
? BlockRAM64KB
? デザインツ`ルXilinx ISE Version 14.2
? ハ`ト?ウェア峰冱ZVerilog HDL
? MADDのg廾Xlinxのコアジェネレ`タて?徭喇撹
? MADDを1つg廾するためにDSP ブロックを 4 をM
? 1のFPGA は32のDSPフ?ロックを隔つ★1のFPGAにg廾するMADDは8
uh廠
27The 100-Node FPGA Array
?Slices99%
?MADDSerDes了崔秤鵑糧ゝ短愨沓揖豚C
?DSP48A1: 100%
?8のMADDをg廾するのに畠てのDSPブロック
を聞喘
ハ`ト?ウェアY坿聞喘楕
28
? デ`タセット256〜512勣殆
? イテレ`ション5,800,000指嘛巓襖方 40MHz て?g佩rgがs10蛍
? ステンシル麻のピ`ク來嬬とg塵堋椶?ほほ?揖じ
? 戻宛した麻返隈のオ`バ`ヘット?が富ない
? 巓襖方を貧げるにつれて薦楚あたりの來嬬が鯢
16ノ`ト?のFPGAアレ`におけるステンシル麻
のピ`ク來嬬とg塵堋棕薦紳
29
0
2
4
6
8
10
12
14
16
0.01 0.02 0.03 0.04 0.05 0.06
Performance[GFlop/s]
Freqency[GHz]
Peak
Effective
0
0.1
0.2
0.3
0.4
0.5
0.6
0.01 0.02 0.03 0.04 0.05 0.06
Performanceperwatt[GFlop/sW]
Freqency[GHz]
?100ノ`ト?rの來嬬83.9GFlop/s
FPGAアレ`(嘛巓襖方 60MHz)における
ステンシル麻のピ`ク來嬬とg塵堋
30
Intel Core i7-2700K (single thread, 3.5GHz, -O3 option)の25蔚
0.1
1
10
100
1 2 4 8 16 32 64 100
Performance[GFlop/s]
Number of FPGA nodes
Peak
Effective
? 薦楚あたりの來嬬0.57GFlop/sW (100-Node)
FPGAアレ`(嘛巓襖方 60MHz)における
ステンシル麻の薦紳
31
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
1 2 4 8 16 32 64 100
Performanceperwatt[GFlop/sW]
Number of FPGA nodes
NVIDIA GTX280 GPU cardの3.8蔚
? 云冩梢の撹惚
? 謹方FPGAを喘いるステンシル麻の互來嬬ア`キテクチャを戻宛
? そのア`キテクチャをgFするシステムを_k
? 100のFPGA のアレ`システムにおけるuおよび戻宛ア`キテクチャ
の屎輝來の編^┐箸討皸俺┐靴嘛もちろん屎しく嘛
? 來嬬(100ノ`ト?)
? 巓襖方0.06GHz (60MHz)
? 處麻來嬬83.9GFlop/s.
Intel Core i7-2700K (single thread, 3.5GHz, -O3 option)の25蔚
? 薦楚あたりの處麻來嬬0.57GFlop/sW
薦楚あたりの處麻來嬬はNvidia GTX280 GPU cardの3.8蔚
? 書瘁のn}
? より詰薦に鬚韻尽O
Y
32

More Related Content

謹方の弌否楚FPGAを喘いた スケ`ラブルなステンシル麻Cの_k