ScalableCore system at SWoPP2010 BoF-2

19
多数のFPGAを活用する ScalableCoreシステムのすすめ 高前田 伸也 東京工業大学 大学院情報理工学研究科 SWoPP2010@金沢 BoF-2

Transcript of ScalableCore system at SWoPP2010 BoF-2

Page 1: ScalableCore system at SWoPP2010 BoF-2

多数のFPGAを活用する ScalableCoreシステムのすすめ

高前田 伸也 東京工業大学 大学院情報理工学研究科

SWoPP2010@金沢 BoF-2

Page 2: ScalableCore system at SWoPP2010 BoF-2

概要  シンプルなハードウェア ScalableCoreシステムで 楽しいアーキテクチャ検証をしましょう!

10-08-05 SWoPP2010-BoF-2 2

!"#$%&'"()*+&,

!"#$%&'"()*+&-

!"#$%&'"()*+&.

!"#$%&/+012&,&

!"#$%&/+012&-&

!"#$%&/+012&.&

3*(14)2*"+&'*504)6&

7,8,9& 7:8,9&

7:8:9&7,8:9&

Page 3: ScalableCore system at SWoPP2010 BoF-2

マルチコアからメニーコアへ・・・?

10-08-05 SWoPP2010-BoF-2 3

Single-core Multi-core Many-core !

Page 4: ScalableCore system at SWoPP2010 BoF-2

評価はソフトウェアシミュレータで・・・?  実装するのは楽!でも速度が・・・

 メニーコアシミュレータSimMcの場合

10-08-05 SWoPP2010-BoF-2 4

0

200

400

600

800

1000

1200

1400

1600

20 40 60 80 100

Sim

ulat

ion

Spee

d (k

ilo c

ycle

/ se

c)

# nodes

SimMc

64コアの シミュレーションで

70Kcycle/sec

100コアの シミュレーションで

43Kcycle/sec

Page 5: ScalableCore system at SWoPP2010 BoF-2

じゃあ何で評価する?  チップは作れないけど, リアルタイムっぽく動作するものを見たいよね?

10-08-05 SWoPP2010-BoF-2 5 Difficulty to construct

Rea

lity

ソフトウェア シミュレーション

FPGA シミュレーション

実チップ 制作

より実チップに近い構成を 高速にシミュレーション

ハードウェア制約のない理想的な構成を

手軽に実現 リアルだが高価

Page 6: ScalableCore system at SWoPP2010 BoF-2

FPGAシミュレーションのメリット  はやい

 ソフトウェアシミュレータ比で10倍~200倍高速  実験→検討→実験のループが短くなる

 (思ったより)やすい  64コア用のシステムで30万円~80万円

•  ScalableCoreシステムは64ノード分で30万円くらい •  RAMP Goldは$750らしい

 うまい  たくさんシミュレーションできてうまい!

•  たくさん実験結果が出る・・・かもしれない •  たくさん論文が書ける・・・かもしれない

10-08-05 SWoPP2010-BoF-2 6

Page 7: ScalableCore system at SWoPP2010 BoF-2

シミュレーションが高速になると・・・  OSとかランタイムとか含めた 動的なベンチマークで評価できる・・・かも

10-08-05 SWoPP2010-BoF-2 7

Processor

Application

Processor

OS

Runtime

Application

more detailed

Page 8: ScalableCore system at SWoPP2010 BoF-2

そこでScalableCoreシステムですよ!  多数のFPGAを 並べて構成される メニーコアの 評価環境 [高前田ら,SACSIS2010]

 Spartan-3Eを 並べた!

10-08-05 SWoPP2010-BoF-2 8

!"#$%&'"()*+&,

!"#$%&'"()*+&-

!"#$%&'"()*+&.

!"#$%&/+012&,&

!"#$%&/+012&-&

!"#$%&/+012&.&

3*(14)2*"+&'*504)6&

7,8,9& 7:8,9&

7:8:9&7,8:9&

Page 9: ScalableCore system at SWoPP2010 BoF-2

ScalableCoreシステムの構成

10-08-05 SWoPP2010-BoF-2 9

ScalableCore Unit (FPGA) シミュレーション対象の構成要素

ScalableCore Board: Unitを接続する基板

Simulation Display: シミュレーション情報を 表示するディスプレイ

タイル状に配置した“Unit”を “Board”で接続する

プロトタイピングシステムの概念

Page 10: ScalableCore system at SWoPP2010 BoF-2

スケールします: 1コア (1×1)

10-08-05 SWoPP2010-BoF-2 10

45cm

30cm

Page 11: ScalableCore system at SWoPP2010 BoF-2

スケールします: 4コア (2×2)

10-08-05 SWoPP2010-BoF-2 11

45cm

30cm

Page 12: ScalableCore system at SWoPP2010 BoF-2

スケールします: 16コア (4×4)

10-08-05 SWoPP2010-BoF-2 12

45cm

30cm

Page 13: ScalableCore system at SWoPP2010 BoF-2

スケールします: 64コア (8×8)

10-08-05 SWoPP2010-BoF-2 13

!"#$%&'"()*+&,

!"#$%&'"()*+&-

!"#$%&'"()*+&.

!"#$%&/+012&,&

!"#$%&/+012&-&

!"#$%&/+012&.&

3*(14)2*"+&'*504)6&

7,8,9& 7:8,9&

7:8:9&7,8:9&

Page 14: ScalableCore system at SWoPP2010 BoF-2

ScalableCoreシステム v1.1の構成  M-Coreのサイクルアキューレートな シミュレーション環境  各UnitにM-Coreの計算ノードを1つ実装

•  MIPSコア,メモリ,ルータ,ネットワークコントローラ  64ノードシミュレーションで14.2倍高速

•  電力効率では23倍高効率

10-08-05 SWoPP2010-BoF-2 14

プログラムローダ

Page 15: ScalableCore system at SWoPP2010 BoF-2

シミュレーション速度  64ノードで14.2倍の高速化

 もっと頑張りましょう.

10-08-05 SWoPP2010-BoF-2 15

0

200

400

600

800

1000

1200

1400

1600

20 40 60 80 100 0

5

10

15

20

Sim

ulat

ion

Spee

d (k

ilo v

irtua

l cyc

le /

sec)

Spee

dup

# nodes

SpeedupSimMc

ScalableCore system

Page 16: ScalableCore system at SWoPP2010 BoF-2

適用例: 高機能ルータアーキテクチャ  ルータによるプロセッサの信頼性向上手法SmartCoreシステムを実装  ルータをちょっと書き換えると実装できる!

10-08-05 SWoPP2010-BoF-2 16

SD

Loader (0,1)

物理ID (1,1)

Path (0,2)

物理ID (1,2)

物理ID (2,1)

物理ID (2,2)

物理ID (3,1)

物理ID (3,2)

物理ID (4,1)

物理ID (4,2)

Path (0,3)

物理ID (1,3)

物理ID (2,3)

物理ID (3,3)

物理ID (4,3)

論理ID (1,1)

論理ID (1,2)

論理ID (1,3)

論理ID (2,1)

論理ID (2,2)

論理ID (2,3)

電源 Master Mirror Master Mirror Master 物理ID (1,1) 論理ID (1,1)

Mirror 物理ID (2,1) 論理ID (1,1)

Router Router

INCC INCC

Masterに来たパケットをMirrorへコピー

宛先が物理ID(1,1)のパケット 宛先が物理ID(2,1)のパケット

Master 物理ID (1,1) 論理ID (1,1)

Mirror 物理ID (2,1) 論理ID (1,1)

Router Router

INCC INCC

宛先が物理ID(1,3)のパケット 宛先が物理ID(1,1)のパケット

(1) MasterとMirrorからの パケットを待ち合わせる

(2) Mirrorから来たパケットとMasterが出すパケットを比較

(3) 一致ならパケットをマージ

宛先をMasterに 書き換える

Page 17: ScalableCore system at SWoPP2010 BoF-2

ScalableCoreシステムがあると・・・  手元で64コア(以上)が動作する!

 ソフトウェアシミュレータで動作するのより 嬉しい!

 たくさんシミュレーションできる!  デモンストレーションできる!

 目立つ!  研究室公開にも使える!

 HDLを書くモチベーションになる!(?)  ちょっとは実回路構成考えてみるかー  ソフトウェアよりちょっとだけ現実的な構成

10-08-05 SWoPP2010-BoF-2 17

Page 18: ScalableCore system at SWoPP2010 BoF-2

実際に作ってみて・・・  シンプルなはずなのに動かない!

 たくさん並べるのはやっぱり難しい  非決定的な部分がたくさん

 動いたとき嬉しい!  ソフトウェアシミュレータ・HDLシミュレーションで動くのと訳が違う!

 非決定性に勝った!!!

 予想外に珍しいらしい  ハードウェア作っている人って実は多くない?

10-08-05 SWoPP2010-BoF-2 18

Page 19: ScalableCore system at SWoPP2010 BoF-2

まとめ  シンプルなハードウェア ScalableCoreシステムで 楽しいアーキテクチャ検証をしましょう!

 実際にハードウェア作るのは楽しいです♪

10-08-05 SWoPP2010-BoF-2 19