FPGAを用いたメニーコア・アーキテクチャSMYLErefの評

FPGAを用いたメニーコア・アーキテ
クチャSMYLErefの評価環境の構築
電気通信大学
グェン チュオン ソン、レイ ジャオ、近藤 正章
九州大学
平尾 智也、井上 弘士
発表の概要
• SMYLEプロジェクトの紹介
• SMYLErefアーキテクチャ
• FPGAにおけるSMYLEref評価環境の構築
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
2
メニーコアプロセッサの発展
• 現在のマイクロプロセッサは,数個から十数個
程度のコアを1チップに搭載している傾向
• 将来的には数十個から数百個の多数のコアを
搭載したメニーコアが有望視されている
• 高性能・低消費電力なメニーコアプロセッサの実
現と、メニーコアプロセッサの組み込みシステム
への応用展開が研究課題となっている
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
3
SMYLEプロジェクト
• NEDO 極低電力回路・システム技術開発(グリーンITプ
ロジェクト)
– 「低消費電力メニーコア用アーキテクチャとコンパイラ技術」
– 2011年1月~2013年2月
– 九州大学,立命館大学,電気通信大学,株式会社フィックス
ターズ,株式会社トプスシステムズ
• 本プロジェクトの目的:
「高性能・低消費電力なメニーコアシステムの実現」
– 組込みシステム応用を意識した高効率な超並列処理の実現
– 大幅な動作時消費電力の削減
– ソフトウェア生産性の向上
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
4
戦略
• 仮想アクセラレータVAMの概念を導入
– (VAM: Virtual Accelerator on Many-core)
– 小規模コアを多数用いてメニーコアを構成
– メニーコアを仮想アクセラレータ実現のためのハードウェア
プラットフォームとして活用
タスクA
汎用処
理部
タスクB
加速実行部
VAM
P
16-Core
汎用処
理部
ホストコア
2012/1/20
加速実行部
汎用処
理部
VAM
P
仮想アクセラレー
タ
タスクC
P
64-Core
P
c
c
c
c
c
c
c
c
c
c
c
c
P
c c c
c c c
c c c
c
c
c
c
c
c
c
c
c c
c c
c c
加速実行部
VAM
32-Core
様々な並列性を活用
• VAM内:データ/スレッド並列
• VAM間:タスク/アプリ並列
FPGAを用いたSMYLErefの評価環境の構築
5
仮想アクセラレータ(VAM)
• 目的
– マルチスレッド・マルチプログラム環境での効率的な実行
• 特徴
– 複数仮想アクセラレータを同時にマッピング
• タスクマッピング、最粒度タスク間通信のHW/SW支援
– 各コアは極低電圧でのプログラムを実行を想定
• 豊富なコア資源を利用したばらつきへの対処
• きめ細かな電圧/周波数制御
コア数にスケール可能な高性能化/低消費電力化
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
6
メニーコアアーキテクチャSMYLEref
• VAMの実装のリファレンスアーキテクチャ
– 数個のプロセッサコアをバスで結合したクラスタを構成する
– クラスタを2次元メッシュのオンチップネットワーク(NoC)で結合する
IL1
IL1
IL1
Scalar
Core
Scalar
Core
Scalar
Core
Scalar
Core
DL1
DL1
DL1
DL1
L2$
DL1
DL1
DL1
DL1
Scalar
Core
Scalar
Core
Scalar
Core
Scalar
Core
IL1
IL1
IL1
IL1
Proc.
Cluster
Router
Packet Cont.
IL1
Mem. Controller
I/O Controller
SDRAM
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
Peripherals
7
SMYLErefの構成(コア・クラスタ)
• プロセッサコア
– JST CRESTの研究プロジェクトで開発されたGeyserコアを利用
– 「革新的電源制御による次世代超低電力高性能システムLSI
の研究(代表:東大 中村宏教授)」
– MIPS R3000ベース、LSI実装の実績あり
• クラスタの構成
– Processor Cluster
• 複数個のコア、L2キャッシュ、ルータがCluster-Busを通して接続
– Peripheral Cluster
• DRAMコントローラなどのチップ外部とのインターフェースを持つ
• 主記憶やI/Oアクセスの際はProcessor/Peripheral Cluster間で通信
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
8
NoC構成
• スケーラビリティの確保と
拡張性を考慮して2次元
メッシュを採用する
Routing
Computation
Output VC
Access Control
Switch
Allocator
• ルータの構造
– 5本の入出力ポート、
2個のVC(仮想チャネル)
– ビット幅: 32-bit
– XYルーティング
– スイッチ割当ての確定をし
ながらVC割当てを行うこと
で各ルータで通信パケット
を1サイクルで転送
→ 通信レイテンシの削減
2012/1/20
Input N
(Input
S, E, W)
Output N
VCs
(Output
S, E, W)
Input L
VCs
Crossbar Switch
Output L
ルータアーキテクチャ
FPGAを用いたSMYLErefの評価環境の構築
9
VAM向けの拡張点
• 再構成可能L1キャッシュ
– コア毎にL1キャッシュをキャッシュ/もしくはSPMとして利用
– VAMの特性に応じてコンパイラにより決定
• 分散共有L2キャッシュの拡張
– 基本構成:L2キャッシュは全クラスタで共有
– 拡張構成:VAM毎にL2キャッシュグループを構成 → 各VAMで占有
• VAM間でのL2キャッシュ競合の回避
• 専用のアドレス変換機構によりL2キャッシュロケーションを決定
• アドレス変換テーブルはソフトウェアにより設定
• グループ・ハードウェアバリア
– 各VAMに割り当てられたコアグループを対象にしたハードウェア
バリアをサポート
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
10
FPGAにおける評価環境の構築
• FPGAを利用した評価環境の構築
– 大規模メニーコアも評価可能なスケーラビリティ
– HDL設計により正確・詳細な評価や検証が可能
– LSIチップ開発への継続性
• 数百コア規模のメニーコア評価のために…
– 複数FPGAチップを結合して実際に並列に実行
– 市販のFPGA評価ボードを利用
• 開発期間の短縮
• 評価環境の導入/利用の容易化
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
11
開発環境
• 評価ボード: Xilinx Virtex-6を搭載するML605評価ボード
• 回路設計: Verilog HDL
• 論理合成、マッピング、配置配線: Xilinx ISE
ML605ボード
FPGAデバイス
Virtex-6 XCVLX240T
SDRAM
DDR3 SO-DIMM
搭載I/Oポート
UART, USB, DVI出力、CF、SMA等
クロック入力
200MHz & 66 MHz オシレータ
Virtex-6 (XCVLX240T)
テクノロジ
65nm CMOS, 1.0V
Logic Cells
241,152
CLB Slices
37,680
Block RAM
14,975 Kbit
ユーザーI/O数
720
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
12
クラスタの実装
SMYLErefアーキテクチャ
FPGAを用いた評価環境
L2 cache
…
Proc. Cluster
ML605評価ボード
...
L2 cache
Geyser
SMAケーブル
…
Router
ボード間通信機構
2012/1/20
Peripherals
SDRAM
FPGAを用いたSMYLErefの評価環境の構築
Peripheral Cluster
13
評価環境の外観
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
14
クラスタ間通信の実装
• 今回のFPGAではGeyserコアを8個程度しか搭載できない
→ 複数のボードを結合し、ルータ間の通信をボード間に
跨がって行うことでメニーコアの評価環境を実現する
• ボード間通信の実装
– ルータモジュール内にボード間通信機構を実装
– Xilinx IPコアで提供されるシリアル通信プロトコル(aurora)を利用
• 最大5Gbpsでシリアルデータの送信が可能
• コアクロック(現在は10MHz)に対して十分な転送するバンド幅を確保
• 1flit (38-bit)を1コアクロックで転送可能
– 物理的なインタフェースはSMA規格
• 理論的には数百個以上のコアを持つメニーコアの評価環境
を構築することが可能となる
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
15
ハードウェアの回路規模
スライス数(%)
Flip-Flops (%)
LUTs (%)
コアクラスタ
Geyserコア(1コア)
2,897 (7.69%)
5,836 (1.94%)
9,641 (6.40%)
ルータ
1,170 (3.11%)
838 (0.28%)
3,400 (2.26%)
80 (0.21%)
79 (0.03%)
189 (0.13%)
220 (0.58%)
568 (0.19%)
407 (0.27%)
I/Oコントローラ
1,596 (4.24%)
6,007 (1.99%)
2,577 (1.71%)
ルータ
1,170 (3.11%)
838 (0.28%)
3,400 (2.26%)
112 (0.30%)
94 (0.03%)
230 (0.15%)
パケットコントローラ
ボード間通信機構
ペリフェラルクラスタ
パケットコントローラ
• 8コアのプロセッサクラスタを構成する場合、ルータ等の
リソースの消費量は小さい
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
16
評価の仮定
• ハードウェア
–
–
–
–
4コア x 2クラスタ + 1ペリフェラルクラスタ (1ボードのみで評価)
L2キャッシュなし
コア:10MHz、内部バス・ルータ:5MHz、DDR3‐SDRAM:100MHz
コヒーレンス制御(現在は未実装)
• 共有データ領域はuncacheableで実行
• ソフトウェア
– ベンチマーク: SPLASH2のFFT, LU, Cholesky
– コンパイラ: MIPS用のコードを生成するgcc 4.4.6
• 浮動小数点演算:ソフトウェアエミュレーション(Soft Float)
• 並列処理API
– SMYLEref評価環境向け簡易版pthreadライブラリ
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
17
評価結果
• 全プログラムともにコア数を増やすことで性能が向上する
• LUやCholeskyではスケーラビリティが得られていない
– 同期や排他制御の度にキャッシュをフラッシュするため
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
18
まとめと今後の課題
• 高性能・低消費電力メニーコアプロセッサの実現を
目指したSMYLErefアーキテクチャ
– VAMの概念を導入
• FPGAによる評価環境の紹介
– SPLASH2ベンチマークプログラムによる初期評価を実施
• 並列プログラムを正しく実行できることを確認
– 将来的にはできる限りオープンソース化する予定
• 今後の課題
– L2キャッシュやコヒーレンス機構の実装
– VAM向け拡張機能の実装と評価
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
19
ご静聴ありがとうございました。
2012/1/20
FPGAを用いたSMYLErefの評価環境の構築
20