HWメニーコアシミュレータScalableCoreシステムの高速化
◎高前田 伸也,吉瀬 謙二 東京工業大学 大学院情報理工学研究科
2011-03-02 情報処理学会 第73回全国大会 @東工大
はじめに 多数のFPGAで構成されるメニーコアシミュレータ ScalableCoreシステムの高速化手法を検討する FPGA間で同期するデータの削減により シミュレーションの高速化を目指す
少数ノードのシミュレーション時には大幅な速度向上の見込み
2
メニーコアプロセッサの登場です!
3
Intel Single Chip Cloud Computer 48 cores (x86)
TILERA TILE-Gx100 100 cores (MIPS)
何で評価するのか? 柔軟性 vs. 速度
大きいベンチマークを高速に走らせたい・・・よね?
4
Difficulty to construct
Rea
lity
ソフトウェア シミュレーション
FPGA シミュレーション
実チップ 制作
より実チップに近い構成を 高速にシミュレーション
ハードウェア制約のない理想的な構成を 手軽に実現
リアルだが高価
多数のFPGAを用いた評価環境ScalableCoreシステム [坂口ら,RECONF2010-09] [高前田ら,IPSJ-ACS Vol.4 No.1]
1つのコアを1つのFPGAにマウント→つなげる!! 各FPGAに独立した…
• コンフィギュレーションROM • クロックオシレータ • SRAM
5
ScalableCore Unit (FPGA) シミュレーション対象の構成要素
Simulation Display: シミュレーション情報を表示
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)
M-Core on ScalableCoreシステム M-Coreのサイクルアキューレートな シミュレーション環境 各UnitにM-Coreの計算ノードを1つ実装
• MIPSコア,メモリ,ルータ,ネットワークインターフェース スケーラブルなシミュレーション速度
• 64ノードシミュレーションで14.2倍高速
7
プログラムローダ
仮想サイクルとローカルバリア同期 仮想サイクル
ターゲットの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仮想サイクル
・・・
目標: シミュレーション高速化 どうすればシミュレーションをさらに高速化できるか? = どうすれば1仮想サイクルの長さを短くできるか? メモリアクセスレイテンシ短縮 FPGA間通信のビットレート向上 FPGA間通信のデータサイズ削減
提案: 同期データの削減によるFPGA間通信時間の短縮 同期データ = コア境界の信号状態 (例: NoCルータ出力) コア境界には常に有意なデータが流れているとは限らない
• 有意ならデータの転送が必要 • 有意でないならデータ転送は不要
9
同期データの削減 有意なデータの場合: すべてを転送
有意でないデータの場合: 一部データを省略
データ削減が果たしてどの程度の効果があるのか? 1仮想サイクルの長さは4方向すべての送受信データが削減されないと短くならない
10
Flit Rdy Valid
Flit Rdy Valid
1 + 1 + 38 = 40ビット
1 + 1 = 2ビット → 38ビット削減
同期データ削減による仮想サイクルの短縮
11
送信 受信
短縮なし
一部を短縮 →効果 小
すべて短縮 →効果 大
一部を短縮 →効果なし
評価環境 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
評価: シミュレーション速度向上率 ノード数が増加すると速度向上率は低下
少数の無圧縮通信がボトルネックに
高い圧縮率が達成できれば効果大 実アプリではいくらか低い圧縮率でも効果大?
• 通信の多少はフェーズによって偏りがある
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)
まとめ
多数のFPGAで構成されるメニーコアシミュレータ ScalableCoreシステムの高速化手法を検討する FPGA間で同期するデータの削減により シミュレーションの高速化を目指す
少数ノードのシミュレーション時には大幅な速度向上の見込み
今後の課題 実際のシステムへの適用 通信の高速化 メモリアクセスレイテンシの削減
• システムキャッシュの採用 (RAMP Gold等でも採用)
14
Top Related