SlideShare a Scribd company logo
1 of 30
Download to read offline
2012年 3月 27日
計算機アーキテクチャ研究会@長崎

高機能ルータを利用した
DMR実行メニーコアにおける
効率的なタスク配置手法の検討

       高前田 (山崎) 伸也†‡, 佐藤 真平†‡, 吉瀬 謙二†

          †東京工業大学   大学院情報理工学研究科
                  ‡日本学術振興会   特別研究員
概要

    n  NoCルータの支援によりDMR(二重冗長)実行をする
        メニーコアにおける良いタスク配置手法 (を考える)
         l  SmartCoreシステム: 2つのコアがペアを形成し
             同一スレッドを実行・実行結果をNoCルータで比較
         l  FPGAシステムにDMRプロセッサを実装
              •  多数のFPGAによるシミュレータ ScalableCoreシステム 3.4
              •  ちゃんと作ったFPGAシステムを使っているよ!!
         l  各種パターンを評価
              •  評価軸: アプリ性能 と 信頼性 ( DMRペア間距離)
              •  パターンによるシンプルな配置で性能と信頼性が両立できそう
              •  DMR実行のオーバーヘッドをタスク配置の良さでカバー



2012-03-27 ARC研@長崎        Shinya Takamaeda-Y. Tokyo Tech   2
2012-03-27 ARC研@長崎   Shinya Takamaeda-Y. Tokyo Tech   3
概要

    n  NoCルータの支援によりDMR(二重冗長)実行をする
        メニーコアにおける良いタスク配置手法 (を考える)
         l  SmartCoreシステム: 2つのコアがペアを形成し
             同一スレッドを実行・実行結果をNoCルータで比較
         l  FPGAシステムにDMRプロセッサを実装
              •  多数のFPGAによるシミュレータ ScalableCoreシステム 3.4
              •  ちゃんと作ったFPGAシステムを使っているよ!!
         l  各種パターンを評価
              •  評価軸: アプリ性能 と 信頼性 ( DMRペア間距離)
              •  パターンによるシンプルな配置で性能と信頼性が両立できそう
              •  DMR実行のオーバーヘッドをタスク配置の良さでカバー



2012-03-27 ARC研@長崎        Shinya Takamaeda-Y. Tokyo Tech   4
背景: メニーコア

                                           Intel Single Chip Cloud Computer
                                           48 cores (x86)




                 TILERA TILE-Gx100
                    100 cores (MIPS)



2012-03-27 ARC研@長崎            Shinya Takamaeda-Y. Tokyo Tech                  5
メニーコアの信頼性
    n  微細化により多くのトランジスタ


    n  それに伴う心配点
         l  ソフトエラー耐性
              •  宇宙線などがプロセッサをヒット


         l  タイミングエラーの増加
              •  トランジスタのばらつきの増加によるタイミング違反


        信頼性の高いプロセッサを作るには
          どうすればいいのだろう?

2012-03-27 ARC研@長崎      Shinya Takamaeda-Y. Tokyo Tech   6
SmartCoreシステム:
  高機能ルータ支援によるDMR実行機構
    n  高機能ルータ:                                       Normal Communication (VC0)

        (1) パケットのコピー                                  Merge Communication (VC1)

        (2) 待ち合わせ                                     Copy Communication (VC2)
        (3) 比較                                             Master A
        の機能を持つルータ                               PE             PE                PE

                                                       R               R              R
    n  2つのPEが同一スレッドを実行                                                     Slave A
        ルータでパケットの出力系列を                          PE             PE                PE
        比較し誤りを検出
                                                       R               R              R
         l  マスターノード:
                                            Master B                        Slave B
             本来スレッドを実行するノード
                                                PE             PE                PE
         l  スレーブノード:
             DMR用に割り当てられたノード
                                                       R               R              R


2012-03-27 ARC研@長崎   Shinya Takamaeda-Y. Tokyo Tech                                       7
(1)スレーブノードへのパケットのコピー

    n  マスターノードへのパケットをスレーブノードへコピー
         l  マスターとスレーブは同一の論理IDを共有
         l  すべてのパケットはまずマスターノードへ届く
         l  ペアで同一のパケット列を受信することにより
             同一の処理を継続する



              Master                      Slave
                       PE                                    PE

          P                  P
                             R                                    R




2012-03-27 ARC研@長崎          Shinya Takamaeda-Y. Tokyo Tech            8
パケットの(2)待ち合わせと(3)比較

    n  スレーブノードが出力するパケットはマスターノードへ
        フォワード
    n  マスターノード側で2つのパケット列を待ち合わせし,
        先頭フリットから順次比較
         l  内容に差異がある場合には,エラーとして通知し,適切に処理



             Master        P                Slave
                      PE                                    PE P


                                R                                  R



2012-03-27 ARC研@長崎             Shinya Takamaeda-Y. Tokyo Tech          9
DMR実行を支援する高機能ルータ
                                       Node Type        Pair ID          Arbiter



              N                                                                       N



              E                                                                       E



              S                                                                       S
                                                                         XBAR



             W                                                                        W

                                       (c) Comparator     CMP
                  (b) ID Translator
                          ID
             C          Trans                                                         C

                     (a) Copy Buffer

                                                           ID
                                                         Trans    (b) ID Translator

2012-03-27 ARC研@長崎                        Shinya Takamaeda-Y. Tokyo Tech                  10
DMR実行を支援する高機能ルータ
                                       Node Type        Pair ID          Arbiter



              N                                                                       N



              E                                                                       E



              S                                                                       S
                                                                         XBAR



             W                                                                        W

                                       (c) Comparator     CMP
                  (b) ID Translator
                          ID
             C          Trans                                                         C

                     (a) Copy Buffer

                                                           ID
                                                         Trans    (b) ID Translator

2012-03-27 ARC研@長崎                        Shinya Takamaeda-Y. Tokyo Tech                  11
ベースアーキテクチャ: M-Core [6]
    n  2Dメッシュネットワークを持つタイルアーキテクチャ
         l  キャッシュなし・各ノードがスクラッチパッドを持つ
         l  プログラミング: DMAベース (コア間・メモリ)


                                                                                Local
                                                                               Memory
                                                                        Core
                                                                               DMAC


                                                                                        R

                                                                               Node




                     DRAM Controller          DRAM Controller
              [6] 植原ら,メニーコアプロセッサの研究・教育を支援する実用的な基盤環境, IEICE Trans.D (2010)
2012-03-27 ARC研@長崎                     Shinya Takamaeda-Y. Tokyo Tech                       12
メニーコア上でのタスク配置
    n  タスクの置き方で性能は異なる: 数%∼十数%
         l  通信の衝突量・レイテンシが変化するため
    n  RMAP: 2Dメッシュ向けタスク配置手法[3]
         l  通信衝突を削減することで性能向上
         l  各タスクを互い違いに・Nルーク問題の解の重ね合わせに配置
             A A A A      B B B B                         A B C D A B C D
             A A A A      B B B B                         B C D A B C D A
             A A A A      B B B B                         C D A B C D A B
             A A A A B B B B                              D A B C D A B C
             C C C C D D D D                              A B C D A B C D
             C C C C D D D D                              B C D A B C D A
             C C C C D D D D                              C D A B C D A B
             C C C C D D D D                              D A B C D A B C
            Normal Allocation (4 Apps)                        RMAP X4 (4 Apps)
            [3]佐野ら:メニーコアプロセッサのための通信衝突に着目したタスク配置手法, IPSJ-ACS Vol.4 No.4 (2011)
2012-03-27 ARC研@長崎               Shinya Takamaeda-Y. Tokyo Tech                  13
DMR実行時の複数アプリの配置
    n  スレッド間の通信に加えてDMRペア内の通信が加わる
               l  冗長実行ペアの配置を考慮する必要あり
    n  DMRペアは近い方がいい?遠い方がいい?
               l  近い方が性能は良さそう
               l  遠い方が空間冗長性の観点では良さそう
       App1    App1     App1    App1     App1    App1     App1    App1        App1     App1     App1     App1    App1    App1    App1    App1
       (1,1)   (1,1)    (2,1)   (2,1)    (3,1)   (3,1)    (4,1)   (4,1)       (1,1)    (2,1)    (3,1)    (4,1)   (1,1)   (2,1)   (3,1)   (4,1)
      Master   Slave   Master   Slave   Master   Slave   Master   Slave      Master   Master   Master   Master   Slave   Slave   Slave   Slave


       App1    App1     App1    App1     App1    App1     App1    App1        App1     App1     App1     App1    App1    App1    App1    App1
       (1,2)   (1,2)    (2,2)   (2,2)    (3,2)   (3,2)    (4,2)   (4,2)       (1,2)    (2,2)    (3,2)    (4,2)   (1,2)   (2,2)   (3,2)   (4,2)
      Master   Slave   Master   Slave   Master   Slave   Master   Slave      Master   Master   Master   Master   Slave   Slave   Slave   Slave


       App1    App1     App1    App1     App1    App1     App1    App1        App1     App1     App1     App1    App1    App1    App1    App1
       (1,3)   (1,3)    (2,3)   (2,3)    (3,3)   (3,3)    (4,3)   (4,3)       (1,3)    (2,3)    (3,3)    (4,3)   (1,3)   (2,3)   (3,3)   (4,3)
      Master   Slave   Master   Slave   Master   Slave   Master   Slave      Master   Master   Master   Master   Slave   Slave   Slave   Slave


       App1    App1     App1    App1     App1    App1     App1    App1        App1     App1     App1     App1    App1    App1    App1    App1
       (1,4)   (1,4)    (2,4)   (2,4)    (3,4)   (3,4)    (4,4)   (4,4)       (1,4)    (2,4)    (3,4)    (4,4)   (1,4)   (2,4)   (3,4)   (4,4)
      Master   Slave   Master   Slave   Master   Slave   Master   Slave      Master   Master   Master   Master   Slave   Slave   Slave   Slave


       App2    App2     App2    App2     App2    App2     App2    App2       App2      App2     App2     App2    App2    App2    App2    App2
       (1,1)   (1,1)    (2,1)   (2,1)    (3,1)   (3,1)    (4,1)   (4,1)      (1,1)     (2,1)    (3,1)    (4,1)   (1,1)   (2,1)   (3,1)   (4,1)
      Master   Slave   Master   Slave   Master   Slave   Master   Slave     Master    Master   Master   Master   Slave   Slave   Slave   Slave


       App2    App2     App2    App2     App2    App2     App2    App2       App2      App2     App2     App2    App2    App2    App2    App2
       (1,2)   (1,2)    (2,2)   (2,2)    (3,2)   (3,2)    (4,2)   (4,2)      (1,2)     (2,2)    (3,2)    (4,2)   (1,2)   (2,2)   (3,2)   (4,2)
      Master   Slave   Master   Slave   Master   Slave   Master   Slave     Master    Master   Master   Master   Slave   Slave   Slave   Slave


       App2    App2     App2    App2     App2    App2     App2    App2       App2      App2     App2     App2    App2    App2    App2    App2
       (1,3)   (1,3)    (2,3)   (2,3)    (3,3)   (3,3)    (4,3)   (4,3)      (1,3)     (2,3)    (3,3)    (4,3)   (1,3)   (2,3)   (3,3)   (4,3)
      Master   Slave   Master   Slave   Master   Slave   Master   Slave     Master    Master   Master   Master   Slave   Slave   Slave   Slave


       App2    App2     App2    App2     App2    App2     App2    App2       App2      App2     App2     App2    App2    App2    App2    App2
       (1,4)   (1,4)    (2,4)   (2,4)    (3,4)   (3,4)    (4,4)   (4,4)      (1,4)     (2,4)    (3,4)    (4,4)   (1,4)   (2,4)   (3,4)   (4,4)
      Master   Slave   Master   Slave   Master   Slave   Master   Slave     Master    Master   Master   Master   Slave   Slave   Slave   Slave




      M1                                M2                                   M1                                  M2

2012-03-27 ARC研@長崎                                       Shinya Takamaeda-Y. Tokyo Tech                                                          14
本発表の目標
    n  いろいろなタスク配置を試してみて
        DMR実行に「良い」タスク配置手法を考える
    n  「良い」とは?
         l  高性能
              •  通信のコンテンションは少ない方がいい
              •  通信レイテンシ・通信ホップ数は短い方がいい
              •  特にDMRペア間は頻繁に通信する
                          近づけて配置したい
         l  高信頼
              •  DMR実行のペアノードを近くに置くと
                 同一原因で故障モードに入ったりしそう
                           離して配置したい

                     両立できるポイントを探る!
2012-03-27 ARC研@長崎      Shinya Takamaeda-Y. Tokyo Tech   15
今回の登場選手
    n  アプリケーション2種を同時に配置・実行
         l  Bitonic Sort: 通信 多,通信衝突 多
         l  Matrix Multiply: 通信 中,通信衝突 中
    n  7つのパターンで性能を測定
         l  “DMRペア間距離 = 1” の配置 3種
              •  Separate X
              •  Interleave
              •  RMAP
         l  “DMRペア間距離 > 1” の配置 4種
              •  Block
              •  Interleave ROT
              •  Interleave ROTx2
              •  RMAP ROT
2012-03-27 ARC研@長崎                Shinya Takamaeda-Y. Tokyo Tech   16
App1
 (1,1)
         App1
         (1,1)
                  App1
                  (2,1)
                          App1
                          (2,1)
                                   App1
                                   (3,1)
                                           App1
                                           (3,1)
                                                    App1
                                                    (4,1)
                                                            App1
                                                            (4,1)   Separate X
Master   Slave   Master   Slave   Master   Slave   Master   Slave


 App1    App1     App1    App1     App1    App1     App1    App1
 (1,2)   (1,2)    (2,2)   (2,2)    (3,2)   (3,2)    (4,2)   (4,2)
Master   Slave   Master   Slave   Master   Slave   Master   Slave


 App1    App1     App1    App1     App1    App1     App1    App1
 (1,3)   (1,3)    (2,3)   (2,3)    (3,3)   (3,3)    (4,3)   (4,3)
Master   Slave   Master   Slave   Master   Slave   Master   Slave


 App1    App1     App1    App1     App1    App1     App1    App1
 (1,4)   (1,4)    (2,4)   (2,4)    (3,4)   (3,4)    (4,4)   (4,4)
Master   Slave   Master   Slave   Master   Slave   Master   Slave


 App2    App2     App2    App2     App2    App2     App2    App2
 (1,1)   (1,1)    (2,1)   (2,1)    (3,1)   (3,1)    (4,1)   (4,1)
Master   Slave   Master   Slave   Master   Slave   Master   Slave


 App2    App2     App2    App2     App2    App2     App2    App2
 (1,2)   (1,2)    (2,2)   (2,2)    (3,2)   (3,2)    (4,2)   (4,2)
Master   Slave   Master   Slave   Master   Slave   Master   Slave


 App2    App2     App2    App2     App2    App2     App2    App2
 (1,3)   (1,3)    (2,3)   (2,3)    (3,3)   (3,3)    (4,3)   (4,3)
Master   Slave   Master   Slave   Master   Slave   Master   Slave


 App2    App2     App2    App2     App2    App2     App2    App2
 (1,4)   (1,4)    (2,4)   (2,4)    (3,4)   (3,4)    (4,4)   (4,4)
Master   Slave   Master   Slave   Master   Slave   Master   Slave

                                                                     ペア間距離 = 1
M1                                M2
                                                                                 17
App1
 (1,1)
         App1
         (1,1)
                  App1
                  (2,1)
                          App1
                          (2,1)
                                   App1
                                   (3,1)
                                           App1
                                           (3,1)
                                                    App1
                                                    (4,1)
                                                            App1
                                                            (4,1)   Interleave
Master   Slave   Master   Slave   Master   Slave   Master   Slave
                                                                    (1,1) (2,1) (3,1) (4,1)
 App2    App2     App2    App2     App2    App2     App2    App2
 (1,1)   (1,1)    (2,1)   (2,1)    (3,1)   (3,1)    (4,1)   (4,1)
Master   Slave   Master   Slave   Master   Slave   Master   Slave


 App1    App1     App1    App1     App1    App1     App1    App1
 (1,2)   (1,2)    (2,2)   (2,2)    (3,2)   (3,2)    (4,2)   (4,2)
Master   Slave   Master   Slave   Master   Slave   Master   Slave
                                                                    (1,2) (2,2) (3,2) (4,2)
 App2    App2     App2    App2     App2    App2     App2    App2
 (1,2)   (1,2)    (2,2)   (2,2)    (3,2)   (3,2)    (4,2)   (4,2)
Master   Slave   Master   Slave   Master   Slave   Master   Slave


 App1    App1     App1    App1     App1    App1     App1    App1
 (1,3)   (1,3)    (2,3)   (2,3)    (3,3)   (3,3)    (4,3)   (4,3)
Master   Slave   Master   Slave   Master   Slave   Master   Slave
                                                                    (1,3) (2,3) (3,3) (4,3)
 App2    App2     App2    App2     App2    App2     App2    App2
 (1,3)   (1,3)    (2,3)   (2,3)    (3,3)   (3,3)    (4,3)   (4,3)
Master   Slave   Master   Slave   Master   Slave   Master   Slave


 App1    App1     App1    App1     App1    App1     App1    App1
 (1,4)   (1,4)    (2,4)   (2,4)    (3,4)   (3,4)    (4,4)   (4,4)
Master   Slave   Master   Slave   Master   Slave   Master   Slave
                                                                    (1,4) (2,4) (3,4) (4,4)
 App2    App2     App2    App2     App2    App2     App2    App2
 (1,4)   (1,4)    (2,4)   (2,4)    (3,4)   (3,4)    (4,4)   (4,4)
Master   Slave   Master   Slave   Master   Slave   Master   Slave

                                                                       ペア間距離 = 1
M1                                M2
                                                                                              18
(1,1) (2,1) (1,2) (2,2)                     (3,1) (4,1) (3,2) (4,2)

 App1        App2      App1         App2     App1        App2      App1         App2
                                                                                        RMAP
 (1,1)       (1,1)     (2,1)        (2,1)    (3,1)       (3,1)     (4,1)        (4,1)
Master       Slave     Slave       Master   Master       Slave     Slave       Master


App1         App2       App1       App2     App1         App2      App1        App2
(1,1)        (1,1)      (2,1)      (2,1)    (3,1)        (3,1)     (4,1)       (4,1)
Slave       Master     Master      Slave    Slave       Master    Master       Slave


 App2        App1      App2         App1     App2        App1      App2         App1
 (1,2)       (1,2)     (2,2)        (2,2)    (3,2)       (3,2)     (4,2)        (4,2)
Master       Slave     Slave       Master   Master       Slave     Slave       Master


App2         App1       App2       App1     App2         App1      App2        App1
(1,2)        (1,2)      (2,2)      (2,2)    (3,2)        (3,2)     (4,2)       (4,2)
Slave       Master     Master      Slave    Slave       Master    Master       Slave


 App1        App2      App1         App2     App1        App2      App1         App2
 (1,3)       (1,3)     (2,3)        (2,3)    (3,3)       (3,3)     (4,3)        (4,3)
Master       Slave     Slave       Master   Master       Slave     Slave       Master


App1         App2       App1       App2     App1         App2      App1        App2
(1,3)        (1,3)      (2,3)      (2,3)    (3,3)        (3,3)     (4,3)       (4,3)
Slave       Master     Master      Slave    Slave       Master    Master       Slave


 App2        App1      App2         App1     App2        App1      App2         App1
 (1,4)       (1,4)     (2,4)        (2,4)    (3,4)       (3,4)     (4,4)        (4,4)
Master       Slave     Slave       Master   Master       Slave     Slave       Master


App2         App1       App2       App1     App2         App1       App2       App1
(1,4)        (1,4)      (2,4)      (2,4)    (3,4)        (3,4)      (4,4)      (4,4)
Slave       Master     Master      Slave    Slave       Master     Master      Slave

             (1,3) (2,3) (1,4) (2,4)                     (3,3) (4,3) (3,4) (4,4)         ペア間距離 = 1
 M1                                         M2                                                       19
App1
 (1,1)
          App1
          (2,1)
                   App1
                   (3,1)
                            App1
                            (4,1)
                                    App1
                                    (1,1)
                                            App1
                                            (2,1)
                                                    App1
                                                    (3,1)
                                                            App1
                                                            (4,1)
                                                                    Block
Master   Master   Master   Master   Slave   Slave   Slave   Slave


 App1     App1     App1     App1    App1    App1    App1    App1
 (1,2)    (2,2)    (3,2)    (4,2)   (1,2)   (2,2)   (3,2)   (4,2)
Master   Master   Master   Master   Slave   Slave   Slave   Slave


 App1     App1     App1     App1    App1    App1    App1    App1
 (1,3)    (2,3)    (3,3)    (4,3)   (1,3)   (2,3)   (3,3)   (4,3)
Master   Master   Master   Master   Slave   Slave   Slave   Slave


 App1     App1     App1     App1    App1    App1    App1    App1
 (1,4)    (2,4)    (3,4)    (4,4)   (1,4)   (2,4)   (3,4)   (4,4)
Master   Master   Master   Master   Slave   Slave   Slave   Slave


 App2     App2     App2     App2    App2    App2    App2    App2
 (1,1)    (2,1)    (3,1)    (4,1)   (1,1)   (2,1)   (3,1)   (4,1)
Master   Master   Master   Master   Slave   Slave   Slave   Slave


 App2     App2     App2     App2    App2    App2    App2    App2
 (1,2)    (2,2)    (3,2)    (4,2)   (1,2)   (2,2)   (3,2)   (4,2)
Master   Master   Master   Master   Slave   Slave   Slave   Slave


 App2     App2     App2     App2    App2    App2    App2    App2
 (1,3)    (2,3)    (3,3)    (4,3)   (1,3)   (2,3)   (3,3)   (4,3)
Master   Master   Master   Master   Slave   Slave   Slave   Slave


 App2     App2     App2     App2    App2    App2    App2    App2
 (1,4)    (2,4)    (3,4)    (4,4)   (1,4)   (2,4)   (3,4)   (4,4)
Master   Master   Master   Master   Slave   Slave   Slave   Slave


                                                                     ペア間距離 = 4
M1                                  M2
                                                                                 20
App1
 (1,1)
         App1
         (1,3)
                  App1
                  (2,1)
                          App1
                          (2,3)
                                   App1
                                   (3,1)
                                           App1
                                           (3,3)
                                                    App1
                                                    (4,1)
                                                            App1
                                                            (4,3)   Interleave ROT
Master   Slave   Master   Slave   Master   Slave   Master   Slave
                                                                            Master
 App2    App2     App2    App2     App2    App2     App2    App2    (1,1) (2,1) (3,1) (4,1)
 (1,1)   (1,3)    (2,1)   (2,3)    (3,1)   (3,3)    (4,1)   (4,3)            Slave
Master   Slave   Master   Slave   Master   Slave   Master   Slave   (1,3) (2,3) (3,3) (4,3)

 App1    App1     App1    App1     App1    App1     App1    App1
 (1,2)   (1,4)    (2,2)   (2,4)    (3,2)   (3,4)    (4,2)   (4,4)
Master   Slave   Master   Slave   Master   Slave   Master   Slave
                                                                            Master
 App2    App2     App2    App2     App2    App2     App2    App2    (1,2) (2,2) (3,2) (4,2)
 (1,2)   (1,4)    (2,2)   (2,4)    (3,2)   (3,4)    (4,2)   (4,4)            Slave
Master   Slave   Master   Slave   Master   Slave   Master   Slave   (1,4) (2,4) (3,4) (4,4)

 App1    App1     App1    App1     App1    App1     App1    App1
 (1,3)   (1,1)    (2,3)   (2,1)    (3,3)   (3,1)    (4,3)   (4,1)
Master   Slave   Master   Slave   Master   Slave   Master   Slave
                                                                            Master
 App2    App2     App2    App2     App2    App2     App2    App2    (1,3) (2,3) (3,3) (4,3)
 (1,3)   (1,1)    (2,3)   (2,1)    (3,3)   (3,1)    (4,3)   (4,1)            Slave
Master   Slave   Master   Slave   Master   Slave   Master   Slave   (1,1) (2,1) (3,1) (4,1)

 App1    App1     App1    App1     App1    App1     App1    App1
 (1,4)   (1,2)    (2,4)   (2,2)    (3,4)   (3,2)    (4,4)   (4,2)
Master   Slave   Master   Slave   Master   Slave   Master   Slave
                                                                            Master
 App2             App2             App2             App2
                                                                    (1,4) (2,4) (3,4) (4,4)
         App2             App2             App2             App2
 (1,4)   (1,2)    (2,4)   (2,2)    (3,4)   (3,2)    (4,4)   (4,2)            Slave
Master   Slave   Master   Slave   Master   Slave   Master   Slave   (1,2) (2,2) (3,2) (4,2)

                                                                       ペア間距離 = 5
M1                                 M2
                                                                                              21
App1
 (1,1)
         App1
         (3,3)
                  App1
                  (2,1)
                          App1
                          (4,3)
                                   App1
                                   (3,1)
                                           App1
                                           (1,3)
                                                    App1
                                                    (4,1)
                                                            App1
                                                            (2,3)   Interleave ROTx2
Master   Slave   Master   Slave   Master   Slave   Master   Slave
                                                                            Master
                                                                    (1,1) (2,1) (3,1) (4,1)
 App2    App2     App2    App2     App2    App2     App2    App2
 (1,1)   (3,3)    (2,1)   (4,3)    (3,1)   (1,3)    (4,1)   (2,3)            Slave
Master   Slave   Master   Slave   Master   Slave   Master   Slave   (3,3) (4,3) (1,3) (2,3)

 App1    App1     App1    App1     App1    App1     App1    App1
 (1,2)   (3,4)    (2,2)   (4,4)    (3,2)   (1,4)    (4,2)   (2,4)
Master   Slave   Master   Slave   Master   Slave   Master   Slave
                                                                            Master
                                                                    (1,2) (2,2) (3,2) (4,2)
 App2    App2     App2    App2     App2    App2     App2    App2
 (1,2)   (3,4)    (2,2)   (4,4)    (3,2)   (1,4)    (4,2)   (2,4)            Slave
Master   Slave   Master   Slave   Master   Slave   Master   Slave   (3,4) (4,4) (1,4) (2,4)

 App1    App1     App1    App1     App1    App1     App1    App1
 (1,3)   (3,1)    (2,3)   (4,1)    (3,3)   (1,1)    (4,3)   (2,1)
Master   Slave   Master   Slave   Master   Slave   Master   Slave
                                                                            Master
                                                                    (1,3) (2,3) (3,3) (4,3)
 App2    App2     App2    App2     App2    App2     App2    App2
 (1,3)   (3,1)    (2,3)   (4,1)    (3,3)   (1,1)    (4,3)   (2,1)            Slave
Master   Slave   Master   Slave   Master   Slave   Master   Slave   (3,1) (4,1) (1,1) (2,1)

 App1    App1     App1    App1     App1    App1     App1    App1
 (1,4)   (3,2)    (2,4)   (4,2)    (3,4)   (1,2)    (4,4)   (2,2)
Master   Slave   Master   Slave   Master   Slave   Master   Slave
                                                                            Master
 App2    App2     App2    App2     App2    App2     App2    App2
                                                                    (1,4) (2,4) (3,4) (4,4)
 (1,4)   (3,2)    (2,4)   (4,2)    (3,4)   (1,2)    (4,4)   (2,2)            Slave
Master   Slave   Master   Slave   Master   Slave   Master   Slave   (4,2) (3,2) (1,2) (2,2)

                                                                       ペア間距離 = 8
M1                                M1
                                                                                              22
Master (1,1) (2,1) (1,2) (2,2)         Master (3,1) (4,1) (3,2) (4,2)
  Slave (3,3) (4,3) (4,3) (4,4)          Slave (1,3) (2,3) (1,4) (2,4)       RMAP ROT
 App1     App2      App1      App2     App1     App2      App1       App2
 (1,1)    (3,3)     (4,3)     (2,1)    (3,1)    (1,3)     (2,3)      (4,1)
Master    Slave     Slave    Master   Master    Slave     Slave     Master

App1      App2      App1      App2    App1       App2      App1      App2
(3,3)     (1,1)     (2,1)     (4,3)   (1,3)      (3,1)     (4,1)     (2,3)
Slave    Master    Master     Slave   Slave     Master    Master     Slave

 App2     App1      App2      App1     App2     App1      App2       App1
 (1,2)    (3,4)     (4,4)     (2,2)    (3,2)    (1,4)     (2,4)      (4,2)
Master    Slave     Slave    Master   Master    Slave     Slave     Master

App2      App1      App2      App1    App2       App1      App2      App1
(3,4)     (1,2)     (2,2)     (4,4)   (1,4)      (3,2)     (4,2)     (2,4)
Slave    Master    Master     Slave   Slave     Master    Master     Slave

 App1     App2      App1      App2     App1      App2     App1       App2
 (1,3)    (3,1)     (4,1)     (2,3)    (3,3)     (1,1)    (2,1)      (4,3)
Master    Slave     Slave    Master   Master     Slave    Slave     Master

App1      App2      App1     App2     App1       App2      App1      App2
(3,1)     (1,3)     (2,3)    (4,1)    (1,1)      (3,3)     (4,3)     (2,1)
Slave    Master    Master    Slave    Slave     Master    Master     Slave

 App2     App1      App2      App1     App2     App1       App2      App1
 (1,4)    (3,2)     (4,2)     (2,4)    (3,4)    (1,2)      (2,2)     (4,4)
Master    Slave     Slave    Master   Master    Slave      Slave    Master

App2      App1      App2      App1    App2       App1      App2      App1
(3,2)     (1,4)     (2,4)     (4,2)   (1,2)      (3,4)     (4,4)     (2,2)
Slave    Master    Master     Slave   Slave     Master    Master     Slave

                  Master                                 Master
          (1,3) (2,3) (1,4) (2,4)                (3,3) (4,3) (3,4) (4,4)
M1                                    M2                  Slave              ペア間距離 = 8
                   Slave
          (3,1) (4,1) (3,2) (4,2)                (1,1) (2,1) (1,2) (2,2)                 23
評価
                                                                          Target Core
    n  各種タスク配置パターンの性能を評価
         l  ペア間距離と性能の関係を調査                                                    Local
                                                                              Memory
              •  本稿では ペア間距離   ディペンダビリティ                              Core
                                                                              DMAC
    n  セットアップ
                                                                                        R
         l  M-Coreプロセッサ・64ノード (8x8)
              •  Core: MIPS32 ISA, Single-issue, 5-stage, In-order
              •  DMR Router: 4-stage (NRC/VA, SA, ST, LT), 32-bit Width
                 3-VC (Normal, Copy, Merge), 4-FIFO Depth
                 Credit-base Flow Control, XY-DOR
         l  アプリケーション2種を同時に実行
              •  Bitonic Sort: 通信トラフィック多・通信コンテンション多
              •  Matrix Multiply: 通信トラフィック中・通信コンテンション中
              •  おおよそ350Mサイクル中にBSを3回・MMを4回ずつ繰り返し実行


2012-03-27 ARC研@長崎               Shinya Takamaeda-Y. Tokyo Tech                         24
Target Core

  評価環境: ScalableCoreシステム[8,9]                                                                                 Core
                                                                                                                          Local
                                                                                                                         Memory

                                                                                                                         DMAC


     n  複数FPGAを用いたメニーコアシミュレータ                                                                                                     R



            l  Verilog HDLでDMRプロセッサを記述・実装                                                                     System Functions




          DRAM Controller            DRAM Controller




[8] Shinya Takamaeda-Yamazaki, et al. ScalableCore System: A Scalable Many-core Simulator by Employing over 100 FPGAs, IS-ARC 2012
[9] 高前田ら,メニーコアアーキテクチャのHW評価環境ScalableCoreシステム, IPSJ-ACS Vol.4 No.1 (2011)
2012-03-27 ARC研@長崎                                Shinya Takamaeda-Y. Tokyo Tech                                                       25
評価: DMRなし場合の性能
                            n  アプリ特徴が現れた結果
                                    l  Bitonic Sort
                                        •  通信衝突が回避できるRMAPで性能向上
                                    l  Matrix Multiply
                                        •  ノード間距離大きいRMAPでは通信レイテンシが増加し性能低下

                                      Bitonic Sort (衝突 多)                                                        Matrix Multiply (衝突 中)
                           1.20%                                                                        0.00%
                                                   1.02%                                                           Interleave   RMAP       Block
 Performance Improvement




                                                                              Performance Improvement
                           1.00%                                                                        -0.20%                            -0.03%
                           0.80%
                                                                                                        -0.40%
                           0.60%                                                                                    -0.44%
                                                                                                        -0.60%
                           0.40%
                                                                                                        -0.80%
                           0.20%

                           0.00%                              0.00%                                     -1.00%                  -0.96%
                                      Interleave   RMAP       Block
                           -0.20%       -0.10%                                                          -1.20%

2012-03-27 ARC研@長崎                                          Shinya Takamaeda-Y. Tokyo Tech                                                         26
評価: Bitonic Sort (DMRあり)
    n  ペア間距離が大きい配置でも少ない性能低下
         l  ペア間距離が大きいRMAP ROTが健闘
              •  衝突を削減することにより性能低下を抑制
              •  ペア間距離が大きいのでディペンダブル

                                          Separate            Interleave          RMAP              Block
                                          Interleave ROT      Interleave ROTx2    RMAP ROT
                                         1.00%

                                         0.00%
               Performance Improvement




                                                       RMAP
                                                  0      1        2        3     4       5      6     7         8        9
                                         -1.00%             Interleave
                                                      Separate
                                         -2.00%
                                                                                                            RMAP ROT
                                         -3.00%

                                         -4.00%
                                                                                  Interleave ROT
                                         -5.00%                                Block
                                                                                                            Interleave
                                         -6.00%                                                               ROTx2
                                                                               Pair Distance

2012-03-27 ARC研@長崎                                             Shinya Takamaeda-Y. Tokyo Tech                                27
評価: Matrix Multiply (DMRあり)
    n  ペア間距離が大きくなる配置は性能低下
         l  RMAP ROTのように衝突を削減する配置でも
             レイテンシ増加により性能低下
         l  Blockが健闘: 衝突が少ないマスターをまとめて配置しても平気
                                          Separate         Interleave          RMAP                Block
                                          Interleave ROT   Interleave ROTx2    RMAP ROT
                                         0.00%
                                                  0    1 Separate
                                                         RMAP  2        3     4       5        6      7     8       9
                                         -0.50%
                                                         Interleave
               Performance Improvement




                                                                                  Block
                                         -1.00%
                                         -1.50%
                                         -2.00%
                                         -2.50%
                                         -3.00%                                           Interleave ROT

                                         -3.50%
                                                                                                           RMAP ROT
                                         -4.00%
                                                                                                             Interleave
                                         -4.50%                                                                ROTx2
                                                                            Pair Distance

2012-03-27 ARC研@長崎                                           Shinya Takamaeda-Y. Tokyo Tech                               28
考察



    n  通信衝突の多いアプリと通信衝突の少ないアプリでは
        適した配置方法が異なる
         l  衝突が多いアプリ: バンド幅重視の配置が有利 (RMAP ROT)
         l  衝突が少ないアプリ: マスター間のレイテンシ重視の配置が有利
             (Block)


    n  単一の配置ポリシーでは信頼性と性能の両立はできない
         l  アプリ特性に応じて混ぜ方を変える必要がありそう




2012-03-27 ARC研@長崎   Shinya Takamaeda-Y. Tokyo Tech   29
まとめ

    n  NoCルータの支援によりDMR(二重冗長)実行をする
        メニーコアにおける良いタスク配置手法 (を考える)
         l  SmartCoreシステム: 2つのコアがペアを形成し
             同一スレッドを実行・実行結果をNoCルータで比較
         l  FPGAシステムにDMRプロセッサを実装
              •  多数のFPGAによるシミュレータ ScalableCoreシステム 3.4
              •  ちゃんと作ったFPGAシステムを使っているよ!!
         l  各種パターンを評価
              •  評価軸: アプリ性能 と 信頼性 ( DMRペア間距離)
              •  パターンによるシンプルな配置で性能と信頼性が両立できそう
              •  DMR実行のオーバーヘッドをタスク配置の良さでカバー
         l  今後の課題: アプリ特性に応じた配置方法を切り替え

2012-03-27 ARC研@長崎        Shinya Takamaeda-Y. Tokyo Tech   30

More Related Content

More from Shinya Takamaeda-Y

オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムShinya Takamaeda-Y
 
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモDNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモShinya Takamaeda-Y
 
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発Shinya Takamaeda-Y
 
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)Shinya Takamaeda-Y
 
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...Shinya Takamaeda-Y
 
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Shinya Takamaeda-Y
 
ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)Shinya Takamaeda-Y
 
PythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミングPythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミングShinya Takamaeda-Y
 
マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討Shinya Takamaeda-Y
 
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)Shinya Takamaeda-Y
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようShinya Takamaeda-Y
 
A CGRA-based Approach for Accelerating Convolutional Neural Networks
A CGRA-based Approachfor Accelerating Convolutional Neural NetworksA CGRA-based Approachfor Accelerating Convolutional Neural Networks
A CGRA-based Approach for Accelerating Convolutional Neural NetworksShinya Takamaeda-Y
 
Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討Shinya Takamaeda-Y
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようShinya Takamaeda-Y
 
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)Shinya Takamaeda-Y
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向Shinya Takamaeda-Y
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)Shinya Takamaeda-Y
 
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)Shinya Takamaeda-Y
 
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...Shinya Takamaeda-Y
 

More from Shinya Takamaeda-Y (20)

オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステムオープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
オープンソースコンパイラNNgenでつくるエッジ・ディープラーニングシステム
 
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモDNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
DNNのモデル特化ハードウェアを生成するオープンソースコンパイラNNgenのデモ
 
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
ディープニューラルネットワーク向け拡張可能な高位合成コンパイラの開発
 
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
Veriloggen.Stream: データフローからハードウェアを作る(2018年3月3日 高位合成友の会 第5回 @東京工業大学)
 
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
Veriloggen.Thread & Stream: 最高性能FPGAコンピューティングを 目指したミックスドパラダイム型高位合成 (FPGAX 201...
 
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
Pythonによるカスタム可能な高位設計技術 (Design Solution Forum 2016@新横浜)
 
ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)ゆるふわコンピュータ (IPSJ-ONE2017)
ゆるふわコンピュータ (IPSJ-ONE2017)
 
PythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミングPythonとVeriloggenを用いたRTL設計メタプログラミング
PythonとVeriloggenを用いたRTL設計メタプログラミング
 
マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討
 
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
 
A CGRA-based Approach for Accelerating Convolutional Neural Networks
A CGRA-based Approachfor Accelerating Convolutional Neural NetworksA CGRA-based Approachfor Accelerating Convolutional Neural Networks
A CGRA-based Approach for Accelerating Convolutional Neural Networks
 
Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討Pythonを用いた高水準ハードウェア設計環境の検討
Pythonを用いた高水準ハードウェア設計環境の検討
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
 
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
コンピュータアーキテクチャ研究の最新動向〜ISCA2015参加報告〜 @FPGAエクストリーム・コンピューティング 第7回 (#fpgax #7)
 
Zynq+PyCoRAM(+Debian)入門
Zynq+PyCoRAM(+Debian)入門Zynq+PyCoRAM(+Debian)入門
Zynq+PyCoRAM(+Debian)入門
 
FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向FPGA・リコンフィギャラブルシステム研究の最新動向
FPGA・リコンフィギャラブルシステム研究の最新動向
 
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
PyCoRAMによるPythonを用いたポータブルなFPGAアクセラレータ開発 (チュートリアル@ESS2014)
 
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
PyCoRAM (高位合成友の会@ドワンゴ, 2015年1月16日)
 
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
A Framework for Efficient Rapid Prototyping by Virtually Enlarging FPGA Resou...
 

Recently uploaded

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 

Recently uploaded (11)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 

高機能ルータを利用したDMR実行メニーコアにおける効率的なタスク配置手法の検討 (IPSJ SIG-ARC 2012-03-27)

  • 1. 2012年 3月 27日 計算機アーキテクチャ研究会@長崎 高機能ルータを利用した DMR実行メニーコアにおける 効率的なタスク配置手法の検討 高前田 (山崎) 伸也†‡, 佐藤 真平†‡, 吉瀬 謙二† †東京工業大学 大学院情報理工学研究科 ‡日本学術振興会 特別研究員
  • 2. 概要 n  NoCルータの支援によりDMR(二重冗長)実行をする メニーコアにおける良いタスク配置手法 (を考える) l  SmartCoreシステム: 2つのコアがペアを形成し 同一スレッドを実行・実行結果をNoCルータで比較 l  FPGAシステムにDMRプロセッサを実装 •  多数のFPGAによるシミュレータ ScalableCoreシステム 3.4 •  ちゃんと作ったFPGAシステムを使っているよ!! l  各種パターンを評価 •  評価軸: アプリ性能 と 信頼性 ( DMRペア間距離) •  パターンによるシンプルな配置で性能と信頼性が両立できそう •  DMR実行のオーバーヘッドをタスク配置の良さでカバー 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 2
  • 3. 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 3
  • 4. 概要 n  NoCルータの支援によりDMR(二重冗長)実行をする メニーコアにおける良いタスク配置手法 (を考える) l  SmartCoreシステム: 2つのコアがペアを形成し 同一スレッドを実行・実行結果をNoCルータで比較 l  FPGAシステムにDMRプロセッサを実装 •  多数のFPGAによるシミュレータ ScalableCoreシステム 3.4 •  ちゃんと作ったFPGAシステムを使っているよ!! l  各種パターンを評価 •  評価軸: アプリ性能 と 信頼性 ( DMRペア間距離) •  パターンによるシンプルな配置で性能と信頼性が両立できそう •  DMR実行のオーバーヘッドをタスク配置の良さでカバー 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 4
  • 5. 背景: メニーコア Intel Single Chip Cloud Computer 48 cores (x86) TILERA TILE-Gx100 100 cores (MIPS) 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 5
  • 6. メニーコアの信頼性 n  微細化により多くのトランジスタ n  それに伴う心配点 l  ソフトエラー耐性 •  宇宙線などがプロセッサをヒット l  タイミングエラーの増加 •  トランジスタのばらつきの増加によるタイミング違反 信頼性の高いプロセッサを作るには どうすればいいのだろう? 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 6
  • 7. SmartCoreシステム: 高機能ルータ支援によるDMR実行機構 n  高機能ルータ: Normal Communication (VC0) (1) パケットのコピー Merge Communication (VC1) (2) 待ち合わせ Copy Communication (VC2) (3) 比較 Master A の機能を持つルータ PE PE PE R R R n  2つのPEが同一スレッドを実行 Slave A ルータでパケットの出力系列を PE PE PE 比較し誤りを検出 R R R l  マスターノード: Master B Slave B 本来スレッドを実行するノード PE PE PE l  スレーブノード: DMR用に割り当てられたノード R R R 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 7
  • 8. (1)スレーブノードへのパケットのコピー n  マスターノードへのパケットをスレーブノードへコピー l  マスターとスレーブは同一の論理IDを共有 l  すべてのパケットはまずマスターノードへ届く l  ペアで同一のパケット列を受信することにより 同一の処理を継続する Master Slave PE PE P P R R 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 8
  • 9. パケットの(2)待ち合わせと(3)比較 n  スレーブノードが出力するパケットはマスターノードへ フォワード n  マスターノード側で2つのパケット列を待ち合わせし, 先頭フリットから順次比較 l  内容に差異がある場合には,エラーとして通知し,適切に処理 Master P Slave PE PE P R R 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 9
  • 10. DMR実行を支援する高機能ルータ Node Type Pair ID Arbiter N N E E S S XBAR W W (c) Comparator CMP (b) ID Translator ID C Trans C (a) Copy Buffer ID Trans (b) ID Translator 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 10
  • 11. DMR実行を支援する高機能ルータ Node Type Pair ID Arbiter N N E E S S XBAR W W (c) Comparator CMP (b) ID Translator ID C Trans C (a) Copy Buffer ID Trans (b) ID Translator 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 11
  • 12. ベースアーキテクチャ: M-Core [6] n  2Dメッシュネットワークを持つタイルアーキテクチャ l  キャッシュなし・各ノードがスクラッチパッドを持つ l  プログラミング: DMAベース (コア間・メモリ) Local Memory Core DMAC R Node DRAM Controller DRAM Controller [6] 植原ら,メニーコアプロセッサの研究・教育を支援する実用的な基盤環境, IEICE Trans.D (2010) 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 12
  • 13. メニーコア上でのタスク配置 n  タスクの置き方で性能は異なる: 数%∼十数% l  通信の衝突量・レイテンシが変化するため n  RMAP: 2Dメッシュ向けタスク配置手法[3] l  通信衝突を削減することで性能向上 l  各タスクを互い違いに・Nルーク問題の解の重ね合わせに配置 A A A A B B B B A B C D A B C D A A A A B B B B B C D A B C D A A A A A B B B B C D A B C D A B A A A A B B B B D A B C D A B C C C C C D D D D A B C D A B C D C C C C D D D D B C D A B C D A C C C C D D D D C D A B C D A B C C C C D D D D D A B C D A B C Normal Allocation (4 Apps) RMAP X4 (4 Apps) [3]佐野ら:メニーコアプロセッサのための通信衝突に着目したタスク配置手法, IPSJ-ACS Vol.4 No.4 (2011) 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 13
  • 14. DMR実行時の複数アプリの配置 n  スレッド間の通信に加えてDMRペア内の通信が加わる l  冗長実行ペアの配置を考慮する必要あり n  DMRペアは近い方がいい?遠い方がいい? l  近い方が性能は良さそう l  遠い方が空間冗長性の観点では良さそう App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 (1,1) (1,1) (2,1) (2,1) (3,1) (3,1) (4,1) (4,1) (1,1) (2,1) (3,1) (4,1) (1,1) (2,1) (3,1) (4,1) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2) (1,2) (2,2) (3,2) (4,2) (1,2) (2,2) (3,2) (4,2) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3) (1,3) (2,3) (3,3) (4,3) (1,3) (2,3) (3,3) (4,3) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 App1 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4) (1,4) (2,4) (3,4) (4,4) (1,4) (2,4) (3,4) (4,4) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 (1,1) (1,1) (2,1) (2,1) (3,1) (3,1) (4,1) (4,1) (1,1) (2,1) (3,1) (4,1) (1,1) (2,1) (3,1) (4,1) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2) (1,2) (2,2) (3,2) (4,2) (1,2) (2,2) (3,2) (4,2) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3) (1,3) (2,3) (3,3) (4,3) (1,3) (2,3) (3,3) (4,3) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 App2 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4) (1,4) (2,4) (3,4) (4,4) (1,4) (2,4) (3,4) (4,4) Master Slave Master Slave Master Slave Master Slave Master Master Master Master Slave Slave Slave Slave M1 M2 M1 M2 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 14
  • 15. 本発表の目標 n  いろいろなタスク配置を試してみて DMR実行に「良い」タスク配置手法を考える n  「良い」とは? l  高性能 •  通信のコンテンションは少ない方がいい •  通信レイテンシ・通信ホップ数は短い方がいい •  特にDMRペア間は頻繁に通信する 近づけて配置したい l  高信頼 •  DMR実行のペアノードを近くに置くと 同一原因で故障モードに入ったりしそう 離して配置したい 両立できるポイントを探る! 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 15
  • 16. 今回の登場選手 n  アプリケーション2種を同時に配置・実行 l  Bitonic Sort: 通信 多,通信衝突 多 l  Matrix Multiply: 通信 中,通信衝突 中 n  7つのパターンで性能を測定 l  “DMRペア間距離 = 1” の配置 3種 •  Separate X •  Interleave •  RMAP l  “DMRペア間距離 > 1” の配置 4種 •  Block •  Interleave ROT •  Interleave ROTx2 •  RMAP ROT 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 16
  • 17. App1 (1,1) App1 (1,1) App1 (2,1) App1 (2,1) App1 (3,1) App1 (3,1) App1 (4,1) App1 (4,1) Separate X Master Slave Master Slave Master Slave Master Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2) Master Slave Master Slave Master Slave Master Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3) Master Slave Master Slave Master Slave Master Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4) Master Slave Master Slave Master Slave Master Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,1) (1,1) (2,1) (2,1) (3,1) (3,1) (4,1) (4,1) Master Slave Master Slave Master Slave Master Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2) Master Slave Master Slave Master Slave Master Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3) Master Slave Master Slave Master Slave Master Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4) Master Slave Master Slave Master Slave Master Slave ペア間距離 = 1 M1 M2 17
  • 18. App1 (1,1) App1 (1,1) App1 (2,1) App1 (2,1) App1 (3,1) App1 (3,1) App1 (4,1) App1 (4,1) Interleave Master Slave Master Slave Master Slave Master Slave (1,1) (2,1) (3,1) (4,1) App2 App2 App2 App2 App2 App2 App2 App2 (1,1) (1,1) (2,1) (2,1) (3,1) (3,1) (4,1) (4,1) Master Slave Master Slave Master Slave Master Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2) Master Slave Master Slave Master Slave Master Slave (1,2) (2,2) (3,2) (4,2) App2 App2 App2 App2 App2 App2 App2 App2 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2) Master Slave Master Slave Master Slave Master Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3) Master Slave Master Slave Master Slave Master Slave (1,3) (2,3) (3,3) (4,3) App2 App2 App2 App2 App2 App2 App2 App2 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3) Master Slave Master Slave Master Slave Master Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4) Master Slave Master Slave Master Slave Master Slave (1,4) (2,4) (3,4) (4,4) App2 App2 App2 App2 App2 App2 App2 App2 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4) Master Slave Master Slave Master Slave Master Slave ペア間距離 = 1 M1 M2 18
  • 19. (1,1) (2,1) (1,2) (2,2) (3,1) (4,1) (3,2) (4,2) App1 App2 App1 App2 App1 App2 App1 App2 RMAP (1,1) (1,1) (2,1) (2,1) (3,1) (3,1) (4,1) (4,1) Master Slave Slave Master Master Slave Slave Master App1 App2 App1 App2 App1 App2 App1 App2 (1,1) (1,1) (2,1) (2,1) (3,1) (3,1) (4,1) (4,1) Slave Master Master Slave Slave Master Master Slave App2 App1 App2 App1 App2 App1 App2 App1 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2) Master Slave Slave Master Master Slave Slave Master App2 App1 App2 App1 App2 App1 App2 App1 (1,2) (1,2) (2,2) (2,2) (3,2) (3,2) (4,2) (4,2) Slave Master Master Slave Slave Master Master Slave App1 App2 App1 App2 App1 App2 App1 App2 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3) Master Slave Slave Master Master Slave Slave Master App1 App2 App1 App2 App1 App2 App1 App2 (1,3) (1,3) (2,3) (2,3) (3,3) (3,3) (4,3) (4,3) Slave Master Master Slave Slave Master Master Slave App2 App1 App2 App1 App2 App1 App2 App1 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4) Master Slave Slave Master Master Slave Slave Master App2 App1 App2 App1 App2 App1 App2 App1 (1,4) (1,4) (2,4) (2,4) (3,4) (3,4) (4,4) (4,4) Slave Master Master Slave Slave Master Master Slave (1,3) (2,3) (1,4) (2,4) (3,3) (4,3) (3,4) (4,4) ペア間距離 = 1 M1 M2 19
  • 20. App1 (1,1) App1 (2,1) App1 (3,1) App1 (4,1) App1 (1,1) App1 (2,1) App1 (3,1) App1 (4,1) Block Master Master Master Master Slave Slave Slave Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,2) (2,2) (3,2) (4,2) (1,2) (2,2) (3,2) (4,2) Master Master Master Master Slave Slave Slave Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,3) (2,3) (3,3) (4,3) (1,3) (2,3) (3,3) (4,3) Master Master Master Master Slave Slave Slave Slave App1 App1 App1 App1 App1 App1 App1 App1 (1,4) (2,4) (3,4) (4,4) (1,4) (2,4) (3,4) (4,4) Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,1) (2,1) (3,1) (4,1) (1,1) (2,1) (3,1) (4,1) Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,2) (2,2) (3,2) (4,2) (1,2) (2,2) (3,2) (4,2) Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,3) (2,3) (3,3) (4,3) (1,3) (2,3) (3,3) (4,3) Master Master Master Master Slave Slave Slave Slave App2 App2 App2 App2 App2 App2 App2 App2 (1,4) (2,4) (3,4) (4,4) (1,4) (2,4) (3,4) (4,4) Master Master Master Master Slave Slave Slave Slave ペア間距離 = 4 M1 M2 20
  • 21. App1 (1,1) App1 (1,3) App1 (2,1) App1 (2,3) App1 (3,1) App1 (3,3) App1 (4,1) App1 (4,3) Interleave ROT Master Slave Master Slave Master Slave Master Slave Master App2 App2 App2 App2 App2 App2 App2 App2 (1,1) (2,1) (3,1) (4,1) (1,1) (1,3) (2,1) (2,3) (3,1) (3,3) (4,1) (4,3) Slave Master Slave Master Slave Master Slave Master Slave (1,3) (2,3) (3,3) (4,3) App1 App1 App1 App1 App1 App1 App1 App1 (1,2) (1,4) (2,2) (2,4) (3,2) (3,4) (4,2) (4,4) Master Slave Master Slave Master Slave Master Slave Master App2 App2 App2 App2 App2 App2 App2 App2 (1,2) (2,2) (3,2) (4,2) (1,2) (1,4) (2,2) (2,4) (3,2) (3,4) (4,2) (4,4) Slave Master Slave Master Slave Master Slave Master Slave (1,4) (2,4) (3,4) (4,4) App1 App1 App1 App1 App1 App1 App1 App1 (1,3) (1,1) (2,3) (2,1) (3,3) (3,1) (4,3) (4,1) Master Slave Master Slave Master Slave Master Slave Master App2 App2 App2 App2 App2 App2 App2 App2 (1,3) (2,3) (3,3) (4,3) (1,3) (1,1) (2,3) (2,1) (3,3) (3,1) (4,3) (4,1) Slave Master Slave Master Slave Master Slave Master Slave (1,1) (2,1) (3,1) (4,1) App1 App1 App1 App1 App1 App1 App1 App1 (1,4) (1,2) (2,4) (2,2) (3,4) (3,2) (4,4) (4,2) Master Slave Master Slave Master Slave Master Slave Master App2 App2 App2 App2 (1,4) (2,4) (3,4) (4,4) App2 App2 App2 App2 (1,4) (1,2) (2,4) (2,2) (3,4) (3,2) (4,4) (4,2) Slave Master Slave Master Slave Master Slave Master Slave (1,2) (2,2) (3,2) (4,2) ペア間距離 = 5 M1 M2 21
  • 22. App1 (1,1) App1 (3,3) App1 (2,1) App1 (4,3) App1 (3,1) App1 (1,3) App1 (4,1) App1 (2,3) Interleave ROTx2 Master Slave Master Slave Master Slave Master Slave Master (1,1) (2,1) (3,1) (4,1) App2 App2 App2 App2 App2 App2 App2 App2 (1,1) (3,3) (2,1) (4,3) (3,1) (1,3) (4,1) (2,3) Slave Master Slave Master Slave Master Slave Master Slave (3,3) (4,3) (1,3) (2,3) App1 App1 App1 App1 App1 App1 App1 App1 (1,2) (3,4) (2,2) (4,4) (3,2) (1,4) (4,2) (2,4) Master Slave Master Slave Master Slave Master Slave Master (1,2) (2,2) (3,2) (4,2) App2 App2 App2 App2 App2 App2 App2 App2 (1,2) (3,4) (2,2) (4,4) (3,2) (1,4) (4,2) (2,4) Slave Master Slave Master Slave Master Slave Master Slave (3,4) (4,4) (1,4) (2,4) App1 App1 App1 App1 App1 App1 App1 App1 (1,3) (3,1) (2,3) (4,1) (3,3) (1,1) (4,3) (2,1) Master Slave Master Slave Master Slave Master Slave Master (1,3) (2,3) (3,3) (4,3) App2 App2 App2 App2 App2 App2 App2 App2 (1,3) (3,1) (2,3) (4,1) (3,3) (1,1) (4,3) (2,1) Slave Master Slave Master Slave Master Slave Master Slave (3,1) (4,1) (1,1) (2,1) App1 App1 App1 App1 App1 App1 App1 App1 (1,4) (3,2) (2,4) (4,2) (3,4) (1,2) (4,4) (2,2) Master Slave Master Slave Master Slave Master Slave Master App2 App2 App2 App2 App2 App2 App2 App2 (1,4) (2,4) (3,4) (4,4) (1,4) (3,2) (2,4) (4,2) (3,4) (1,2) (4,4) (2,2) Slave Master Slave Master Slave Master Slave Master Slave (4,2) (3,2) (1,2) (2,2) ペア間距離 = 8 M1 M1 22
  • 23. Master (1,1) (2,1) (1,2) (2,2) Master (3,1) (4,1) (3,2) (4,2) Slave (3,3) (4,3) (4,3) (4,4) Slave (1,3) (2,3) (1,4) (2,4) RMAP ROT App1 App2 App1 App2 App1 App2 App1 App2 (1,1) (3,3) (4,3) (2,1) (3,1) (1,3) (2,3) (4,1) Master Slave Slave Master Master Slave Slave Master App1 App2 App1 App2 App1 App2 App1 App2 (3,3) (1,1) (2,1) (4,3) (1,3) (3,1) (4,1) (2,3) Slave Master Master Slave Slave Master Master Slave App2 App1 App2 App1 App2 App1 App2 App1 (1,2) (3,4) (4,4) (2,2) (3,2) (1,4) (2,4) (4,2) Master Slave Slave Master Master Slave Slave Master App2 App1 App2 App1 App2 App1 App2 App1 (3,4) (1,2) (2,2) (4,4) (1,4) (3,2) (4,2) (2,4) Slave Master Master Slave Slave Master Master Slave App1 App2 App1 App2 App1 App2 App1 App2 (1,3) (3,1) (4,1) (2,3) (3,3) (1,1) (2,1) (4,3) Master Slave Slave Master Master Slave Slave Master App1 App2 App1 App2 App1 App2 App1 App2 (3,1) (1,3) (2,3) (4,1) (1,1) (3,3) (4,3) (2,1) Slave Master Master Slave Slave Master Master Slave App2 App1 App2 App1 App2 App1 App2 App1 (1,4) (3,2) (4,2) (2,4) (3,4) (1,2) (2,2) (4,4) Master Slave Slave Master Master Slave Slave Master App2 App1 App2 App1 App2 App1 App2 App1 (3,2) (1,4) (2,4) (4,2) (1,2) (3,4) (4,4) (2,2) Slave Master Master Slave Slave Master Master Slave Master Master (1,3) (2,3) (1,4) (2,4) (3,3) (4,3) (3,4) (4,4) M1 M2 Slave ペア間距離 = 8 Slave (3,1) (4,1) (3,2) (4,2) (1,1) (2,1) (1,2) (2,2) 23
  • 24. 評価 Target Core n  各種タスク配置パターンの性能を評価 l  ペア間距離と性能の関係を調査 Local Memory •  本稿では ペア間距離   ディペンダビリティ Core DMAC n  セットアップ R l  M-Coreプロセッサ・64ノード (8x8) •  Core: MIPS32 ISA, Single-issue, 5-stage, In-order •  DMR Router: 4-stage (NRC/VA, SA, ST, LT), 32-bit Width 3-VC (Normal, Copy, Merge), 4-FIFO Depth Credit-base Flow Control, XY-DOR l  アプリケーション2種を同時に実行 •  Bitonic Sort: 通信トラフィック多・通信コンテンション多 •  Matrix Multiply: 通信トラフィック中・通信コンテンション中 •  おおよそ350Mサイクル中にBSを3回・MMを4回ずつ繰り返し実行 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 24
  • 25. Target Core 評価環境: ScalableCoreシステム[8,9] Core Local Memory DMAC n  複数FPGAを用いたメニーコアシミュレータ R l  Verilog HDLでDMRプロセッサを記述・実装 System Functions DRAM Controller DRAM Controller [8] Shinya Takamaeda-Yamazaki, et al. ScalableCore System: A Scalable Many-core Simulator by Employing over 100 FPGAs, IS-ARC 2012 [9] 高前田ら,メニーコアアーキテクチャのHW評価環境ScalableCoreシステム, IPSJ-ACS Vol.4 No.1 (2011) 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 25
  • 26. 評価: DMRなし場合の性能 n  アプリ特徴が現れた結果 l  Bitonic Sort •  通信衝突が回避できるRMAPで性能向上 l  Matrix Multiply •  ノード間距離大きいRMAPでは通信レイテンシが増加し性能低下 Bitonic Sort (衝突 多) Matrix Multiply (衝突 中) 1.20% 0.00% 1.02% Interleave RMAP Block Performance Improvement Performance Improvement 1.00% -0.20% -0.03% 0.80% -0.40% 0.60% -0.44% -0.60% 0.40% -0.80% 0.20% 0.00% 0.00% -1.00% -0.96% Interleave RMAP Block -0.20% -0.10% -1.20% 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 26
  • 27. 評価: Bitonic Sort (DMRあり) n  ペア間距離が大きい配置でも少ない性能低下 l  ペア間距離が大きいRMAP ROTが健闘 •  衝突を削減することにより性能低下を抑制 •  ペア間距離が大きいのでディペンダブル Separate Interleave RMAP Block Interleave ROT Interleave ROTx2 RMAP ROT 1.00% 0.00% Performance Improvement RMAP 0 1 2 3 4 5 6 7 8 9 -1.00% Interleave Separate -2.00% RMAP ROT -3.00% -4.00% Interleave ROT -5.00% Block Interleave -6.00% ROTx2 Pair Distance 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 27
  • 28. 評価: Matrix Multiply (DMRあり) n  ペア間距離が大きくなる配置は性能低下 l  RMAP ROTのように衝突を削減する配置でも レイテンシ増加により性能低下 l  Blockが健闘: 衝突が少ないマスターをまとめて配置しても平気 Separate Interleave RMAP Block Interleave ROT Interleave ROTx2 RMAP ROT 0.00% 0 1 Separate RMAP 2 3 4 5 6 7 8 9 -0.50% Interleave Performance Improvement Block -1.00% -1.50% -2.00% -2.50% -3.00% Interleave ROT -3.50% RMAP ROT -4.00% Interleave -4.50% ROTx2 Pair Distance 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 28
  • 29. 考察 n  通信衝突の多いアプリと通信衝突の少ないアプリでは 適した配置方法が異なる l  衝突が多いアプリ: バンド幅重視の配置が有利 (RMAP ROT) l  衝突が少ないアプリ: マスター間のレイテンシ重視の配置が有利 (Block) n  単一の配置ポリシーでは信頼性と性能の両立はできない l  アプリ特性に応じて混ぜ方を変える必要がありそう 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 29
  • 30. まとめ n  NoCルータの支援によりDMR(二重冗長)実行をする メニーコアにおける良いタスク配置手法 (を考える) l  SmartCoreシステム: 2つのコアがペアを形成し 同一スレッドを実行・実行結果をNoCルータで比較 l  FPGAシステムにDMRプロセッサを実装 •  多数のFPGAによるシミュレータ ScalableCoreシステム 3.4 •  ちゃんと作ったFPGAシステムを使っているよ!! l  各種パターンを評価 •  評価軸: アプリ性能 と 信頼性 ( DMRペア間距離) •  パターンによるシンプルな配置で性能と信頼性が両立できそう •  DMR実行のオーバーヘッドをタスク配置の良さでカバー l  今後の課題: アプリ特性に応じた配置方法を切り替え 2012-03-27 ARC研@長崎 Shinya Takamaeda-Y. Tokyo Tech 30