scalablecore system at sacsis2010, nara
DESCRIPTION
ScalableCoreシステム 1.1 @SACSIS2010, 奈良TRANSCRIPT
メニーコアアーキクチャのHW評価環境 ScalableCoreシステムの開発
○高前田 伸也†, 渡邉 伸平†☆, 姜 軒†,植原 昂†☆☆
藤枝 直輝†, 三好 健文†‡☆☆☆, 吉瀬 謙二†
†東京工業大学 大学院情報理工学研究科 ‡科学技術振興機構 (JST) ☆現在,日本信号株式会社
☆☆現在,パナソニック株式会社 ☆☆☆現在,電気通信大学 大学院情報システム学研究科
先進的計算基盤システムシンポジウム(SACSIS2010) 2010-05-28 セッションC6 14:30 ‒ 15:00
発表の前に ポスターセッションにて発表しました. 皆様ありがとうございました! メニーコアアーキテクチャのHW評価環境 ScalableCoreシステムの活用 ~ディペンダブルプロセッサの実装~
本日はポスター発表にてデモをしました ScalableCoreシステムに関する発表です
10-05-28 SACSIS2010@奈良 2
概要 多数のFPGAを用いたHW評価環境ScalableCoreシステム v1.1を構成 メニーコアアーキテクチャM-Coreを実装 ソフトウェアシミュレータと比較して 64コアのシミュレーション時に14.2倍の高速化
コア数に対してスケーラブル • コア数を変更しても速度低下なし
サイクルアキューレートなシミュレーション • ローカルバリア同期
– 隣接FPGAユニット間で同期 長時間エラー無く動作
10-05-28 SACSIS2010@奈良 3
Agenda 背景
M-Core/SimMc シミュレーションの高速化 提案手法:ScalableCore 実装
ScalableCoreシステム v1.1 動作の様子 評価 まとめ
10-05-28 SACSIS2010@奈良 4
Agenda 背景
M-Core/SimMc シミュレーションの高速化 提案手法:ScalableCore 実装
ScalableCoreシステム v1.1 動作の様子 評価 まとめ
10-05-28 SACSIS2010@奈良 5
背景 (1/2) シングルコアからマルチコア/メニーコアへ
リアルなハードウェアを作りたい! ちゃんと動くメニーコア環境が欲しいよね? 僕は欲しいです.
Single-core Multi-core Many-core !
10-05-28 SACSIS2010@奈良 6
背景 (2/2) アーキテクチャ/ソフトウェアの研究を 効率的に行いたい! 検証にはソフトウェアシミュレータをよく使用
• 構成の変更が簡単 • 特定のハードウェアが不必要
ソフトウェアシミュレータだけで十分か? No. シミュレーション時間が遅い
• OS/システムソフトウェアの検証にはつらい
より高速な検証環境が欲しい!
10-05-28 SACSIS2010@奈良 7
メニーコアアーキテクチャ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
メニーコアシミュレータSimMc M-Coreのサイクルレベルシミュレータ コア数とその配置を変更可能 ネットワークトラフィックの可視化可能
10-05-28 SACSIS2010@奈良 9
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
Agenda 背景
M-Core/SimMc シミュレーションの高速化 提案手法:ScalableCore 実装
ScalableCoreシステム v1.1 動作の様子 評価 まとめ
10-05-28 SACSIS2010@奈良 11
高速なシミュレーションをするには? SWシミュレータの高速化
可読性・柔軟性と引き替え • コア間通信の様な細流度の通信をシミュレートする必要あり
FPGAによるHW実装 大幅なスピードアップが可能 HDL記述に気を遣えば,変更に対して柔軟
FPGAを用いて高速化!
10-05-28 SACSIS2010@奈良 12
Agenda 背景
M-Core/SimMc シミュレーションの高速化 提案手法:ScalableCore 実装
ScalableCoreシステム v1.1 動作の様子 評価 まとめ
10-05-28 SACSIS2010@奈良 13
提案手法:ScalableCore
10-05-28 SACSIS2010@奈良
ScalableCore Unit: シミュレーション対象の構成要素
ScalableCore Board: Unitを接続する基板
Simulation Display: シミュレーション情報を 表示するディスプレイ
タイル状に配置した“Unit”を “Board”で接続する
プロトタイピングシステムの概念
14
Agenda 背景
M-Core/SimMc シミュレーションの高速化 提案手法:ScalableCore 実装
ScalableCoreシステム v1.1 動作の様子 評価 まとめ
10-05-28 SACSIS2010@奈良 15
Big FPGA or Small FPGA? 今回はM-Core(計算ノード群)を実装
タイルアーキテクチャ
どのようなFPGAをどう使う? 少数の大容量FPGAを接続 : RAMP etc.
◎ 高速で動作する × 1ユニットあたりの価格が高価
多数の小容量FPGAを接続 → こちらを採用! × 動作速度は”少数の大容量FPGA”に劣る ◎ 1つ1つのユニットは安価であり,導入しやすい
10-05-28 SACSIS2010@奈良 16
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コアあたりの価格
ScalableCoreシステム v1.1 各UnitにM-Coreの計算ノードを1つ実装
Core, INCC, Router ノードメモリは512KB
Unit間はシリアル通信 各計算ノードのプログラムは左上のノード(1,1)からブートプログラムにより配布
10-05-28 SACSIS2010@奈良 18
ScalableCoreシステムの特徴 コア数を自由に変更可能
Unitの数を変える 1コアからどうぞ
低コスト 一から基板を開発し,64ノードで約30万円
各Unitにシミュレーション対象の一部を実装 システム全体に渡る信号を排除
各Unitは独立したクロックに同期して動作 スケーラビリティを確保
10-05-28 SACSIS2010@奈良 19
ハードウェアプラットフォーム ScalableCore Unit
Xilinx Spartan3E XC3S500E • 50万ゲート相当
512KB SRAM 2つのボタン
ScalableCore Board MMCカード 電源及び信号用の配線
Simulation Display コマンドインタプリタ型液晶 データ線1本のシリアル通信
10-05-28 SACSIS2010@奈良 20
全体図: 1ノード (1×1)
10-05-28 SACSIS2010@奈良 21
45cm
30cm
全体図: 4ノード (2×2)
10-05-28 SACSIS2010@奈良 22
45cm
30cm
全体図: 16ノード (4×4)
10-05-28 SACSIS2010@奈良 23
45cm
30cm
全体図: 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
ハードウェアアーキテクチャ 各Unitにシミュレーション対象の一部を実装
モジュール: 機能ユニットの単位 各モジュールはVerilog HDLで記述 システム制御機構も一緒に実装
各Unitは独立したクロックに同期して動作 各Unitに搭載した45MHzの水晶発振器 各Unitのクロック信号は45MHz1系統のみ
システム全体に渡る信号を排除 スケーラビリティを確保するため
10-05-28 SACSIS2010@奈良 25
モジュール構成 (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
モジュール構成 (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
2つの疑問 サイクルアキューレート性は保証できるのか?
Yes. Unit間の同期が必要: ローカルバリア同期
どのようにアーキテクチャを実装するのか? コア数は接続するUnit数を変更して対応
• 各UnitのIDの動的な割り当て 内部構成はHDLで記述: 仮想サイクル
10-05-28 SACSIS2010@奈良 28
サイクルアキューレートな動作 各Unitの毎処理で使うデータの世代を揃える
各Unit (FPGAカード)間で同期が必要 • All to Allな同期は必要ない • 1サイクルで通信する範囲でのみ同期を行えばよい
隣接Unit間でのみ待ち合わせを行う ローカルバリア同期方式を採用
10-05-28 SACSIS2010@奈良
0
3 4
2
1
29
ローカルバリア同期 隣接ノード間のみで待ち合わせ
初期化時に隣接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
仮想サイクル シミュレーション対象の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-'*!
Agenda 背景
M-Core/SimMc シミュレーションの高速化 提案手法:ScalableCore 実装
ScalableCoreシステム v1.1 動作の様子 評価 まとめと今後の課題
10-05-28 SACSIS2010@奈良 32
動作の様子 構成: 8x8 64ノード M-Coreプロセッサ アプリケーション: N-Queen
10-05-28 SACSIS2010@奈良 33
10-05-28 SACSIS2010@奈良 34
Agenda 背景
M-Core/SimMc シミュレーションの高速化 提案手法:ScalableCore 実装
ScalableCoreシステム v1.1 動作の様子 評価 まとめ
10-05-28 SACSIS2010@奈良 35
評価 評価項目
シミュレーション速度 消費電力 Energy-Delay Product
評価環境 ScalableCoreシステム
• 1ノードから64ノードまで • 100ノードは見積もり
SimMc(ソフトウェアシミュレータ) • Intel Core2Duo E8400, Memory 4GB, gcc4.3.2, 69800円のマシンで測定
10-05-28 SACSIS2010@奈良 36
評価: シミュレーション速度 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
評価: 消費電力 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
評価: 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
Agenda 背景
M-Core/SimMc シミュレーションの高速化 提案手法:ScalableCore 実装
ScalableCoreシステム v1.1 動作の様子 評価 まとめ
10-05-28 SACSIS2010@奈良 40
まとめ 多数のFPGAを用いたHW評価環境ScalableCoreシステム v1.1を構成 メニーコアアーキテクチャM-Coreを実装 ソフトウェアシミュレータと比較して 64コアのシミュレーション時に14.2倍の高速化
コア数に対してスケーラブル • コア数を変更しても速度低下なし
サイクルアキューレートなシミュレーション • ローカルバリア同期
– 隣接FPGAユニット間で同期 長時間エラー無く動作
10-05-28 SACSIS2010@奈良 41