HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

14
HWメニーコアシミュレータ ScalableCoreシステムの高速化 ◎高前田 伸也,吉瀬 謙二 東京工業大学 大学院情報理工学研究科 2011-03-02 情報処理学会 第73回全国大会 @東工大

Transcript of HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

Page 1: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

HWメニーコアシミュレータScalableCoreシステムの高速化

◎高前田 伸也,吉瀬 謙二 東京工業大学 大学院情報理工学研究科

2011-03-02 情報処理学会 第73回全国大会 @東工大

Page 2: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

はじめに  多数のFPGAで構成されるメニーコアシミュレータ ScalableCoreシステムの高速化手法を検討する   FPGA間で同期するデータの削減により シミュレーションの高速化を目指す

 少数ノードのシミュレーション時には大幅な速度向上の見込み

2

Page 3: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

メニーコアプロセッサの登場です!

3

Intel Single Chip Cloud Computer 48 cores (x86)

TILERA TILE-Gx100 100 cores (MIPS)

Page 4: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

何で評価するのか?  柔軟性 vs. 速度

 大きいベンチマークを高速に走らせたい・・・よね?

4

Difficulty to construct

Rea

lity

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

FPGA シミュレーション

実チップ 制作

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

ハードウェア制約のない理想的な構成を 手軽に実現

リアルだが高価

Page 5: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

多数のFPGAを用いた評価環境ScalableCoreシステム [坂口ら,RECONF2010-09] [高前田ら,IPSJ-ACS Vol.4 No.1]

  1つのコアを1つのFPGAにマウント→つなげる!!  各FPGAに独立した…

•  コンフィギュレーションROM •  クロックオシレータ •  SRAM

5

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

Simulation Display: シミュレーション情報を表示

Page 6: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

M-Core/SimMc 1.1 [植原ら, IEICEシステム開発論文特集号2010]   2Dメッシュネットワークにより接続されたNode

 計算ノードにはコア,ノードメモリ, INCC(ネットワークインターフェース),ルータ

6

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)

Page 7: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

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

•  MIPSコア,メモリ,ルータ,ネットワークインターフェース  スケーラブルなシミュレーション速度

•  64ノードシミュレーションで14.2倍高速

7

プログラムローダ

Page 8: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

仮想サイクルとローカルバリア同期  仮想サイクル

 ターゲットの1サイクルを複数のFPGAサイクルで模倣 •  回路エミュレーション・メモリアクセス・FPGA間同期

 ローカルバリア同期  コア境界の信号データを隣接FPGA間と共有

8

0

3 4

2

1

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

Core Network Input Network Output

Router SerDes/Sync Time

1仮想サイクル

・・・

Page 9: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

目標: シミュレーション高速化  どうすればシミュレーションをさらに高速化できるか? = どうすれば1仮想サイクルの長さを短くできるか?  メモリアクセスレイテンシ短縮   FPGA間通信のビットレート向上   FPGA間通信のデータサイズ削減

 提案: 同期データの削減によるFPGA間通信時間の短縮  同期データ = コア境界の信号状態 (例: NoCルータ出力)  コア境界には常に有意なデータが流れているとは限らない

•  有意ならデータの転送が必要 •  有意でないならデータ転送は不要

9

Page 10: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

同期データの削減  有意なデータの場合: すべてを転送

 有意でないデータの場合: 一部データを省略

 データ削減が果たしてどの程度の効果があるのか?   1仮想サイクルの長さは4方向すべての送受信データが削減されないと短くならない

10

Flit Rdy Valid

Flit Rdy Valid

1 + 1 + 38 = 40ビット

1 + 1 = 2ビット → 38ビット削減

Page 11: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

同期データ削減による仮想サイクルの短縮

11

送信 受信

短縮なし

一部を短縮 →効果 小

すべて短縮 →効果 大

一部を短縮 →効果なし

Page 12: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

評価環境   ScalableCoreシステムのタイミングモデルを Verilog HDLにて実装  シミュレータ: Icarus Verilog 0.9.3

 ノード数   4 (2x2), 9 (3x3), 16 (4x4), 64 (8x8)

 同期データの大きさ (= 1仮想サイクルの長さ)  無圧縮 (有効なデータ): 42 ビット (データ40ビット + ヘッダー2ビット)

 圧縮 (無効なデータ): 4ビット (データ2ビット + ヘッダー2ビット)

 圧縮可能データはランダムに出現  出現率: 25%, 50%, 80%, 90%, 95%

12

Page 13: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

評価: シミュレーション速度向上率  ノード数が増加すると速度向上率は低下

 少数の無圧縮通信がボトルネックに

 高い圧縮率が達成できれば効果大  実アプリではいくらか低い圧縮率でも効果大?

•  通信の多少はフェーズによって偏りがある

13

0

0.5

1

1.5

2

2.5

3

20 30 40 50 60 70 80 90 100

Rel

ativ

e Sp

eed

Rate of Null Flits [%]

4 Nodes (2x2)9 Nodes (3x3)

16 Nodes (4x4)64 Nodes (8x8)

Page 14: HWメニーコアシミュレータScalableCoreシステムの高速化 @IPSJ73

まとめ

 多数のFPGAで構成されるメニーコアシミュレータ ScalableCoreシステムの高速化手法を検討する   FPGA間で同期するデータの削減により シミュレーションの高速化を目指す

 少数ノードのシミュレーション時には大幅な速度向上の見込み

 今後の課題  実際のシステムへの適用  通信の高速化  メモリアクセスレイテンシの削減

•  システムキャッシュの採用 (RAMP Gold等でも採用)

14