ScalableCore system at SACSIS2010, NARA

41
メニーコアアーキクチャのHW評価環境 ScalableCoreシステムの開発 ○高前田 伸也 , 渡邉 伸平 †☆ , 姜 軒 ,植原 昂 †☆☆ 藤枝 直輝 , 三好 健文 †‡☆☆☆ , 吉瀬 謙二 東京工業大学 大学院情報理工学研究科 科学技術振興機構 (JST) 現在,日本信号株式会社 ☆☆ 現在,パナソニック株式会社 ☆☆☆ 現在,電気通信大学 大学院情報システム学研究科 先進的計算基盤システムシンポジウム(SACSIS2010) 2010-05-28 セッションC6 14:30 ‒ 15:00

description

ScalableCoreシステム 1.1 @SACSIS2010, 奈良

Transcript of ScalableCore system at SACSIS2010, NARA

Page 1: ScalableCore system at SACSIS2010, NARA

メニーコアアーキクチャのHW評価環境 ScalableCoreシステムの開発

○高前田 伸也†, 渡邉 伸平†☆, 姜 軒†,植原 昂†☆☆

藤枝 直輝†, 三好 健文†‡☆☆☆, 吉瀬 謙二†

†東京工業大学 大学院情報理工学研究科 ‡科学技術振興機構 (JST) ☆現在,日本信号株式会社

☆☆現在,パナソニック株式会社 ☆☆☆現在,電気通信大学 大学院情報システム学研究科

先進的計算基盤システムシンポジウム(SACSIS2010) 2010-05-28 セッションC6 14:30 ‒ 15:00

Page 2: ScalableCore system at SACSIS2010, NARA

発表の前に  ポスターセッションにて発表しました. 皆様ありがとうございました!  メニーコアアーキテクチャのHW評価環境 ScalableCoreシステムの活用 ~ディペンダブルプロセッサの実装~

 本日はポスター発表にてデモをしました ScalableCoreシステムに関する発表です

10-05-28 SACSIS2010@奈良 2

Page 3: ScalableCore system at SACSIS2010, NARA

概要  多数のFPGAを用いたHW評価環境ScalableCoreシステム v1.1を構成  メニーコアアーキテクチャM-Coreを実装  ソフトウェアシミュレータと比較して 64コアのシミュレーション時に14.2倍の高速化

 コア数に対してスケーラブル •  コア数を変更しても速度低下なし

 サイクルアキューレートなシミュレーション •  ローカルバリア同期

–  隣接FPGAユニット間で同期  長時間エラー無く動作

10-05-28 SACSIS2010@奈良 3

Page 4: ScalableCore system at SACSIS2010, NARA

Agenda  背景

 M-Core/SimMc  シミュレーションの高速化  提案手法:ScalableCore  実装

 ScalableCoreシステム v1.1  動作の様子  評価  まとめ

10-05-28 SACSIS2010@奈良 4

Page 5: ScalableCore system at SACSIS2010, NARA

Agenda  背景

 M-Core/SimMc  シミュレーションの高速化  提案手法:ScalableCore  実装

 ScalableCoreシステム v1.1  動作の様子  評価  まとめ

10-05-28 SACSIS2010@奈良 5

Page 6: ScalableCore system at SACSIS2010, NARA

背景 (1/2)  シングルコアからマルチコア/メニーコアへ

 リアルなハードウェアを作りたい!  ちゃんと動くメニーコア環境が欲しいよね?  僕は欲しいです.

Single-core Multi-core Many-core !

10-05-28 SACSIS2010@奈良 6

Page 7: ScalableCore system at SACSIS2010, NARA

背景 (2/2)  アーキテクチャ/ソフトウェアの研究を 効率的に行いたい!  検証にはソフトウェアシミュレータをよく使用

•  構成の変更が簡単 •  特定のハードウェアが不必要

 ソフトウェアシミュレータだけで十分か?  No.  シミュレーション時間が遅い

•  OS/システムソフトウェアの検証にはつらい

より高速な検証環境が欲しい!

10-05-28 SACSIS2010@奈良 7

Page 8: ScalableCore system at SACSIS2010, NARA

メニーコアアーキテクチャM-Core  ターゲット : 数百~数千コア  均一な計算ノード多数をネットワークで接続

 HW/SWの協調で高性能を実現  ネットワークトポロジ: 2Dメッシュ

10-05-28 SACSIS2010@奈良

MemoryNode(0,0)

PathNode(1,0)

PathNode(2,0)

PathNode(0,1)

PathNode(0,2)

PathNode(0,N)

Comp.Node(1,1)

Comp.Node(2,1)

Comp.Node(1,2)

Comp.Node(2,2)

Comp.Node(M,1)

Comp.Node(M,2)

Comp.Node(1,N)

Comp.Node(2,N)

Comp.Node(M,N)

Many-core processor chip

Off chip main memory

PathNode(M,0)

Core

INCCNodeMemory

Router

Comp. Node(X,Y)

Y-

Y+

X+X-

Pagebuffer

INCC

Router

Mem. Node(0,0)

Y+

X+

Off chip main memory

Router

Path Node(X,Y)

Y-

Y+

X+X-

(b)

(c)

(a)

8

Page 9: ScalableCore system at SACSIS2010, NARA

メニーコアシミュレータSimMc  M-Coreのサイクルレベルシミュレータ  コア数とその配置を変更可能  ネットワークトラフィックの可視化可能

10-05-28 SACSIS2010@奈良 9

Page 10: ScalableCore system at SACSIS2010, NARA

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

SimMcのシミュレーション速度  遅い: コア数増加にほぼ反比例して速度低下

10-05-28 SACSIS2010@奈良

シミュレーション環境: Intel Core2Duo E8400 3GHz / Memory 4GB ベンチマーク: Equation Solver Kernel

100コアの シミュレーションで 43K cycle / sec

64コアの シミュレーションで 70K cycle / sec

10

Page 11: ScalableCore system at SACSIS2010, NARA

Agenda  背景

 M-Core/SimMc  シミュレーションの高速化  提案手法:ScalableCore  実装

 ScalableCoreシステム v1.1  動作の様子  評価  まとめ

10-05-28 SACSIS2010@奈良 11

Page 12: ScalableCore system at SACSIS2010, NARA

高速なシミュレーションをするには?  SWシミュレータの高速化

 可読性・柔軟性と引き替え •  コア間通信の様な細流度の通信をシミュレートする必要あり

 FPGAによるHW実装  大幅なスピードアップが可能  HDL記述に気を遣えば,変更に対して柔軟

FPGAを用いて高速化!

10-05-28 SACSIS2010@奈良 12

Page 13: ScalableCore system at SACSIS2010, NARA

Agenda  背景

 M-Core/SimMc  シミュレーションの高速化  提案手法:ScalableCore  実装

 ScalableCoreシステム v1.1  動作の様子  評価  まとめ

10-05-28 SACSIS2010@奈良 13

Page 14: ScalableCore system at SACSIS2010, NARA

提案手法:ScalableCore

10-05-28 SACSIS2010@奈良

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

ScalableCore Board: Unitを接続する基板

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

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

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

14

Page 15: ScalableCore system at SACSIS2010, NARA

Agenda  背景

 M-Core/SimMc  シミュレーションの高速化  提案手法:ScalableCore  実装

 ScalableCoreシステム v1.1  動作の様子  評価  まとめ

10-05-28 SACSIS2010@奈良 15

Page 16: ScalableCore system at SACSIS2010, NARA

Big FPGA or Small FPGA?  今回はM-Core(計算ノード群)を実装

 タイルアーキテクチャ

 どのようなFPGAをどう使う?  少数の大容量FPGAを接続 : RAMP etc.

◎ 高速で動作する × 1ユニットあたりの価格が高価

 多数の小容量FPGAを接続 → こちらを採用! × 動作速度は”少数の大容量FPGA”に劣る ◎ 1つ1つのユニットは安価であり,導入しやすい

10-05-28 SACSIS2010@奈良 16

Page 17: ScalableCore system at SACSIS2010, NARA

1コアあたりのコスト  大きなFPGAでは1コアあたりのコストが急上昇

10-05-28 SACSIS2010@奈良 17

!"

#!!!"

$!!!!"

$#!!!"

%!!!!"

%#!!!"

&'()#!!*"

&'()$%!!*"

&'()$+!!*"

&'#,-&(!"

&'#,-&#!"

&'#,-&.#"

&'#,-&$$!"

&'#,-&$##"

&'#,-&%%!"

&'#,-&((!"

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

.(/01()

!""

#""

$!""

$#""

%!""

%#""

&!""

&#""

'!""

()&*#!!+"

()&*$%!!+"

()&*$,!!+"

()#-.(&!"

()#-.(#!"

()#-.(/#"

()#-.($$!"

()#-.($##"

()#-.(%%!"

()#-.(&&!"

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

,&-*.&"

デバイス 価格 Spartan3E XC3S500E 2,078

XC3S1200E 3,808

XC3S1600E 6,102

Virtex5 LX XC5VLX30 24,024

XC5VLX50 37,838

XC5VLX85 89,129

XC5VLX110 132,132

XC5VLX155 206,606

XC5VLX220 348,348

XC5VLX330 839,038

各デバイスの価格 1FPGAに実装可能なコア数

1コアあたりの価格

Page 18: ScalableCore system at SACSIS2010, NARA

ScalableCoreシステム v1.1  各UnitにM-Coreの計算ノードを1つ実装

 Core, INCC, Router  ノードメモリは512KB

 Unit間はシリアル通信  各計算ノードのプログラムは左上のノード(1,1)からブートプログラムにより配布

10-05-28 SACSIS2010@奈良 18

Page 19: ScalableCore system at SACSIS2010, NARA

ScalableCoreシステムの特徴  コア数を自由に変更可能

 Unitの数を変える  1コアからどうぞ

 低コスト  一から基板を開発し,64ノードで約30万円

 各Unitにシミュレーション対象の一部を実装  システム全体に渡る信号を排除

 各Unitは独立したクロックに同期して動作  スケーラビリティを確保

10-05-28 SACSIS2010@奈良 19

Page 20: ScalableCore system at SACSIS2010, NARA

ハードウェアプラットフォーム  ScalableCore Unit

 Xilinx Spartan3E XC3S500E •  50万ゲート相当

 512KB SRAM  2つのボタン

 ScalableCore Board  MMCカード  電源及び信号用の配線

 Simulation Display  コマンドインタプリタ型液晶  データ線1本のシリアル通信

10-05-28 SACSIS2010@奈良 20

Page 21: ScalableCore system at SACSIS2010, NARA

全体図: 1ノード (1×1)

10-05-28 SACSIS2010@奈良 21

45cm

30cm

Page 22: ScalableCore system at SACSIS2010, NARA

全体図: 4ノード (2×2)

10-05-28 SACSIS2010@奈良 22

45cm

30cm

Page 23: ScalableCore system at SACSIS2010, NARA

全体図: 16ノード (4×4)

10-05-28 SACSIS2010@奈良 23

45cm

30cm

Page 24: ScalableCore system at SACSIS2010, NARA

全体図: 64ノード (8×8)

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

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

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

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

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

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

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

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

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

10-05-28 SACSIS2010@奈良 24

Page 25: ScalableCore system at SACSIS2010, NARA

ハードウェアアーキテクチャ  各Unitにシミュレーション対象の一部を実装

 モジュール: 機能ユニットの単位  各モジュールはVerilog HDLで記述  システム制御機構も一緒に実装

 各Unitは独立したクロックに同期して動作  各Unitに搭載した45MHzの水晶発振器  各Unitのクロック信号は45MHz1系統のみ

 システム全体に渡る信号を排除  スケーラビリティを確保するため

10-05-28 SACSIS2010@奈良 25

Page 26: ScalableCore system at SACSIS2010, NARA

モジュール構成 (1/2)  4つの階層

 ユーザ層: 対象アーキテクチャを実装  ベースシステム層: システム初期化  リンク層: 同期・メモリ調停  物理層: デバイス制御

10-05-28 SACSIS2010@奈良

!"#$%&$'"#!

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

!01*,+-./#-&&"#!

+&-23,4"."#%/-#,

0")"/,4"."#%/-#,

!5.26#-.$'"#! *"7-#5,1#8$/"#!

*"7-#5,9.$/$%&$'"#!

:-;",*"7-#5,+-./#-&&"#!0-</"#!

9:++!+-#"!=)"#,>%5"#

+-7?</%/$-.,:-;",@*A+-#"B

!2%&%8&"+-#",*-;<&" !"#$%&,

+-77<.$2%/$-.)("C$2",+-./#-&&"#

+&-23$.D,0")"/

>$.3,>%5"#

E65)$2%&,>%5"#

F%)",!5)/"7,>%5"#

26

Page 27: ScalableCore system at SACSIS2010, NARA

モジュール構成 (2/2)  灰色はユーザ層のモジュール(M-Core)

10-05-28 SACSIS2010@奈良

!"#$

%$&"#'()*+,+-.+/$#

0"1,$#

)2!!

3'*45#"*+/$#6$7$#+-.+/$#(893$#+-.+/$#(89

2":$(%$&"#'(!"*,#"..$#%$&"#'(

;#<+,$#(

3$#+-.(=1,>1, 3$#+-.()*>1,

)2!!(#$?+7,$#(

,"@A#"&(30;%

)*+,+-.(%$&"#'(6-,-

3,"#$

0$-:

B#+,$

6%;(+*A"#&-,+"*

B#+,$(

=1,>1,(A.+, )*>1,(A.+,

A.+,(,"((*$8,(*":$

A.+,(A#"&((*$8,(*":$

%%!(!"*,#"..$#

30;%(!"*,#"..$#(

!"*,#".

C"-:

0$-:

!."4D(E$*$#-,"#(

0$7$,(E$*$#-,"#(6-,-A#"&(%%!

27

Page 28: ScalableCore system at SACSIS2010, NARA

2つの疑問  サイクルアキューレート性は保証できるのか?

 Yes.  Unit間の同期が必要: ローカルバリア同期

 どのようにアーキテクチャを実装するのか?  コア数は接続するUnit数を変更して対応

•  各UnitのIDの動的な割り当て  内部構成はHDLで記述: 仮想サイクル

10-05-28 SACSIS2010@奈良 28

Page 29: ScalableCore system at SACSIS2010, NARA

サイクルアキューレートな動作  各Unitの毎処理で使うデータの世代を揃える

 各Unit (FPGAカード)間で同期が必要 •  All to Allな同期は必要ない •  1サイクルで通信する範囲でのみ同期を行えばよい

 隣接Unit間でのみ待ち合わせを行う ローカルバリア同期方式を採用

10-05-28 SACSIS2010@奈良

0

3 4

2

1

29

Page 30: ScalableCore system at SACSIS2010, NARA

ローカルバリア同期  隣接ノード間のみで待ち合わせ

 初期化時に隣接Unitの有無を検知し,その情報を使用

10-05-28 SACSIS2010@奈良

Sending to Unit 0

Sending to Unit 1

Sending to Unit 2

Sending to Unit 3

Receiving from Unit 0

Receiving from Unit 1

Receiving from Unit 2

Receiving from Unit 3

Sending to Unit 0

Sending to Unit 1

Sending to Unit 2

Sending to Unit 3

Receiving from Unit 0

Receiving from Unit 1

Receiving from Unit 2

Receiving from Unit 3

Cycle 1 Cycle 2

0

3 4

2

1

30

Page 31: ScalableCore system at SACSIS2010, NARA

仮想サイクル  シミュレーション対象の1サイクルに相当  1仮想サイクルは複数の実サイクルで実現  各モジュールが順番に動作

 Router & INCC (DMA Read) → Core → INCC (DMA Write)の順に動作

10-05-28 SACSIS2010@奈良 31

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

&+,-'.!

/'.0(1$/'2)023!

#+.'!

/425!

6$70.-,(1$#451'

809'

6:5451'

;5451'

6<5451'

==5451'

6>5451'

%?@ABC!7*!

!"##$%D.0-'*!

Page 32: ScalableCore system at SACSIS2010, NARA

Agenda  背景

 M-Core/SimMc  シミュレーションの高速化  提案手法:ScalableCore  実装

 ScalableCoreシステム v1.1  動作の様子  評価  まとめと今後の課題

10-05-28 SACSIS2010@奈良 32

Page 33: ScalableCore system at SACSIS2010, NARA

動作の様子  構成: 8x8 64ノード M-Coreプロセッサ  アプリケーション: N-Queen

10-05-28 SACSIS2010@奈良 33

Page 34: ScalableCore system at SACSIS2010, NARA

10-05-28 SACSIS2010@奈良 34

Page 35: ScalableCore system at SACSIS2010, NARA

Agenda  背景

 M-Core/SimMc  シミュレーションの高速化  提案手法:ScalableCore  実装

 ScalableCoreシステム v1.1  動作の様子  評価  まとめ

10-05-28 SACSIS2010@奈良 35

Page 36: ScalableCore system at SACSIS2010, NARA

評価  評価項目

 シミュレーション速度  消費電力  Energy-Delay Product

 評価環境  ScalableCoreシステム

•  1ノードから64ノードまで •  100ノードは見積もり

 SimMc(ソフトウェアシミュレータ) •  Intel Core2Duo E8400, Memory 4GB, gcc4.3.2, 69800円のマシンで測定

10-05-28 SACSIS2010@奈良 36

Page 37: ScalableCore system at SACSIS2010, NARA

評価: シミュレーション速度  64ノードで14.2倍の速度向上

10-05-28 SACSIS2010@奈良 37

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 38: ScalableCore system at SACSIS2010, NARA

評価: 消費電力  64ノードで23倍の効率

10-05-28 SACSIS2010@奈良 38

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

20 40 60 80 100 0

5

10

15

20

25

30

Ener

gy [J

/virt

ual c

ycle

]

Rel

ativ

e Ef

ficie

ncy

# nodes

Relative EfficiencySimMc

ScalableCore system

Page 39: ScalableCore system at SACSIS2010, NARA

評価: Energy-Delay Product  64ノードで334倍の効率

10-05-28 SACSIS2010@奈良 39

0

0.005

0.01

0.015

0.02

0.025

0.03

0.035

0.04

0.045

20 40 60 80 100 0

100

200

300

400

500

600En

ergy

-Del

ay P

rodu

ct [J

sec/

virtu

al c

ycle

]

Rel

ativ

e Ef

ficie

ncy

# nodes

Relative EfficiencySimMc

ScalableCore system

Page 40: ScalableCore system at SACSIS2010, NARA

Agenda  背景

 M-Core/SimMc  シミュレーションの高速化  提案手法:ScalableCore  実装

 ScalableCoreシステム v1.1  動作の様子  評価  まとめ

10-05-28 SACSIS2010@奈良 40

Page 41: ScalableCore system at SACSIS2010, NARA

まとめ  多数のFPGAを用いたHW評価環境ScalableCoreシステム v1.1を構成  メニーコアアーキテクチャM-Coreを実装  ソフトウェアシミュレータと比較して 64コアのシミュレーション時に14.2倍の高速化

 コア数に対してスケーラブル •  コア数を変更しても速度低下なし

 サイクルアキューレートなシミュレーション •  ローカルバリア同期

–  隣接FPGAユニット間で同期  長時間エラー無く動作

10-05-28 SACSIS2010@奈良 41