APGAS言語X10を用いたオンチップネットワークシミュレーションの並列化

  • 470 views
Uploaded on

Parallelized On-chip Network Simulator by X10

Parallelized On-chip Network Simulator by X10

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
470
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 2013年1月30日 10:45-12:15データストリーム処理特論APGAS言語X10を用いたネットワークオンチップシミュレーションの並列化 高前田(山崎) 伸也†‡ †計算工学専攻 吉瀬研究室 博士課程2年 ‡日本学術振興会 特別研究員 (DC1)
  • 2. マルチコアからメニーコアへ現在の主流: 1チップに2コア∼8コア (マルチコア) ARM Cortex-A15 (4-core, ARM) Intel Corei7 3770K (4-core, x86)将来: 1チップに多数(16∼)のコア (メニーコア) TILERA TILE-Gx100 Intel Xeon Phi (54-core, x86) (100-core, MIPS) Shinya Takamaeda-Y. Tokyo Tech 2
  • 3. ネットワーク・オン・チップ (NoC)メニーコアで高性能・低消費電力化を達成するには低レイテンシ・高スループットな要素間の接続が必要 Network on Chip (NoC)PE PE PE PE PE 計算コア R オンチップルータ R R R R オンチップルータがPE間のPE PE PE PE パケット(データの塊)を宛先へ 順々に転送 R R R R ü  通信の衝突の軽減PE PE PE PE →低レイテンシ R R R R →高スループットPE PE PE PE ü  高いスケーラビリティ →多くのコアを接続して高性能 R R R R Shinya Takamaeda-Y. Tokyo Tech 3
  • 4. オンチップルータの基本構成 n  主に入力FIFO・アービター・クロスバーで構成される l  総面積の60%程度をFIFOが占める Head Body Body Tail n  転送単位: フリット (Flit: Flow Control Unit) Packet T B B H l  いくつかのフリットでパケットを構成 (list of flits) FIFO ArbiterPE PE PE PE R R R R North NorthPE PE PE PE East East R R R R South SouthPE PE PE PE 5x5 XBAR R R R R West WestPE PE PE PE Core Core R R R R Shinya Takamaeda-Y. Tokyo Tech 4
  • 5. オンチップルータの基本パイプライン構成 n  以下の6段をベースに最適化(通常は3段程度) l  IB (Input Buffer): 隣接ルータからのフリットを入力FIFOに格納 l  RC (Routing Computation): 宛先情報を元に進行方向を計算 l  VA (Virtual Channel Allocation): 進行方向の仮想チャネルを確保 l  SA (Switch Allocation): 進行方向へのスイッチ経路を確保 l  ST (Switch Traversal): スイッチをフリットが通過 l  LT (Link Traversal): ルータ間のリンクをフリットが通過 n  例) 3つのルータをパケット(4フリット)が通過 Packet (list of flits) T B B H Router 1 Router 2 Router 3 Router 1 Router 2 Router 3HEAD IB RC VA SA ST LT IB RC VA SA ST LT IB RC VA SA ST LTBODY 0 IB SA ST LT IB SA ST LT IB SA ST LTBODY 1 IB SA ST LT IB SA ST LT IB SA ST LTTAIL IB SA ST LT IB SA ST LT IB SA ST LT t Shinya Takamaeda-Y. Tokyo Tech 5
  • 6. ネットワークオンチップのいろいろn  ネットワークトポロジ l  2Dメッシュ・2Dトーラス・3D積層TSV+メッシュ・・・n  ルーティング l  どの経路を辿って宛先に届けるのか?n  フロー制御 l  パケットをロスレスで届けるには どのようにして後続の転送を止めれば良いのか?n  仮想チャネル l  ひとつの物理レーンを複数の仮想的なレーンで共有し Head of Lineブロッキングを防止 l  入力バッファは仮想チャネルごとに持つn  調停方式(仮想チャネル・クロスバー) l  ラウンドロビン・iSlip・・・ Shinya Takamaeda-Y. Tokyo Tech 6
  • 7. 実装:パイプラインn  オブジェクト指向全開 l  PGASを意識せずに記述して どの程度の性能が出るか?n  各ステージを2段階に分割 l  drive() •  組み合わせ回路や 配線の状態の更新 l  update() •  フリップフロップなどの ラッチの更新 Shinya Takamaeda-Y. Tokyo Tech 7
  • 8. 実装:並列化n  ネットワーク空間をコア毎に領域分割 l  2Dステンシル計算のように分割・並列実行 l  袖領域のデータを通信し共有 •  隣接ルータの入出力信号(フリット・フロー制御) PE PE PE PE PE PE PE PE R R R R R R R R PE PE PE PE PE PE PE PE R R R R R R R R PE PE PE PE PE PE PE PE R R R R R R R R PE PE PE PE PE PE PE PE R R R R R R R R Shinya Takamaeda-Y. Tokyo Tech 8
  • 9. 評価:セットアップn  x86マルチコア計算機1台で評価 l  スケーラビリティが悪かったのでTSUBAMEでの評価はなしn  一般的な通信パターンでネットワークにパケットを注入n  NoCのノード数とX10プレース数を変化 Machine Simulation Target CPU Intel Corei7 2600 (4-core, 8thread) Topology 2D-mesh Memory 8GB (DDR3-1333) # Virtual channels 2 OS Ubuntu 12.04 Packet length 8 Compiler x10-2.3.0 # FIFO entries per VC 4   gcc 4.6.3 Arbitration iSlip (Option) -cxx-prearg -g -O Flow control Credit-base   -NO_CHECKS Transfer control Warmhole   -define NO_BOUNDS_CHECKS Routing XY-DOR # places 1~8 Traffic pattern Uniform Injectoin rate 0.1 # Cycles 500   256 (16x16) Network size 1024 (32x32)   4096 (64x64) Shinya Takamaeda-Y. Tokyo Tech 9
  • 10. 評価:並列化による速度向上 3.00 256 node 2.61 2.65 2.50 2.54 2.50 1024 node 2.36 2.25 4096 node 1.98 2.00 1.84 1.85 1.89 1.78Relative Speed 1.74 1.75 1.52 1.50 1.38 1.30 1.32 1.00 1.14 1.11 1.07 1.00 1.00 1.00 0.93 0.50 0.00 1 2 3 4 5 6 7 8 # places Shinya Takamaeda-Y. Tokyo Tech 10
  • 11. 考察n  性能向上率がイマイチな理由 l  8プレース・1スレッドで実行しているのがそもそも良くない? •  スレッドレベル並列性とプロセスレベル並列性をかき分ける記述が よくわからなかったので今回はこうなりました l  袖領域の同期時にオブジェクトのdeep copyが発生している? •  オブジェクト内の一部だけをコピーなしで参照する良い記述が不明 l  各アクティビティに割り当てられたノードの数が少ない? •  10000コア程度のシミュレーションであればうまくスケールする? •  アクティビティ間通信レイテンシと計算量のバランシングが重要 Shinya Takamaeda-Y. Tokyo Tech 11
  • 12. 今後の課題n  ボトルネック解析 l  gprofが使えるらしいので解析できそうn  2Dメッシュ以外のトポロジへの対応 l  トーラスや3D系,ランダムショートカットなどn  ルータの電力評価機構 l  各要素のドライブ回数の計測により実現可能n  トレースリーダとの連携 l  PARSECベンチマークの実行トレースを元にしたパケット生成 C++ライブラリのNetraceとの連携 l  アプリケーションの実行時間への影響が評価できるように Shinya Takamaeda-Y. Tokyo Tech 12
  • 13. まとめ n  X10を用いたネットワークオンチップの 並列シミュレータを実装 l  4コア/8スレッドのCPU上で 2Dメッシュ・4096ノードのNoCをシミュレーションした場合 1コアに対して2.65倍の速度向上を達成 FIFO ArbiterPE PE PE PE R R R R North NorthPE PE PE PE East East R R R R South SouthPE PE PE PE 5x5 XBAR R R R R West WestPE PE PE PE Core Core R R R R Shinya Takamaeda-Y. Tokyo Tech 13