早稲田大学情報理工学科 木村啓二...2008/11/14  · マルチコア・...

24
早稲田大学 情報理工学科 木村啓二 08.11.14 1 早稲田大学 笠原・木村研

Upload: others

Post on 08-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

  • 早稲田大学 情報理工学科

    木村啓二

    08.11.14 1早稲田大学 笠原・木村研

  • 08.11.14早稲田大学 笠原・木村研 2

    マルチコアのソフトウェア開発•並列化•メモリ最適化•データ転送最適化•低消費電力化

    様々なマルチコア

    OSCAR API

    OSCARコンパイラ

  • プログラム全域にわたる最適化◦ ループイタレーションレベル並列化

    通常の並列化コンパイラ

    ◦ 粗粒度タスク並列化◦ 近細粒度並列化

    08.11.14 3

    もとの逐次プログラム通常の並列化コンパイラによる並列処理

    OSCARコンパイラによるマルチグレイン並列処理

    ループイタレーションレベル並列処理並列化可能

    ループ

    逐次ループ

    粗粒度・近細粒度並列化

    早稲田大学 笠原・木村研

  • 1

    2

    3 4 56

    7

    8 9 10

    11

    12 1314

    15

    08.11.14 4

    MTG 4分割後のMTG 2プロセッサへの割り当て

    1

    2

    3 4 56

    7

    8 9 10

    11

    12 1314

    15

    1

    23 45

    6 7 8910 1112

    1314 15 16

    1718 19 2021 22

    2324 25 26

    2728 29 3031 32

    33Data Localization Group

    dlg0dlg3dlg1 dlg2

    データを共有するループの

    解析

    キャッシュ・ローカルメモリのサイズを考慮して

    分割(整合分割)

    同一データ

    範囲を共有する小ループを

    連続実行

    3

    4

    2

    5

    6 7

    8

    9

    10

    11

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23 24

    25

    26

    27 28

    29

    30

    31

    32

    PE0 PE1

    12 1

    3

    4

    2

    5

    6 7

    8

    9

    10

    11

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23 24

    25

    26

    27 28

    29

    30

    31

    32

    PE0 PE1

    12 1

    早稲田大学 笠原・木村研

  • 08.11.14 5

    処理ユニット負荷不均衡時の電源・周波数電圧制御FV制御

    電源制御スケジューリング結果

    スケジューリング結果 FV制御 電源制御

    早稲田大学 笠原・木村研

  • 08.11.14早稲田大学 笠原・木村研 6

    Backend Compiler

    Backend Compiler

    Backend Compiler

    Exec.Object

    Proc0ScheduledTasksT1 off

    Proc1ScheduledTasks

    T2 T4

    Proc2ScheduledTasks

    T3 T6(slow)

    FR1000

    APIDecoder

    APIDecoder

    APIDecoder

    RP1/RP2

    Other

    Multicores

    Exec.Object

    Exec.Object

    NativeCompiler

    NativeCompiler

    NativeCompiler

    OSCARコンパイラ

    •マルチグレイン並列化•メモリ最適化•データ転送最適化•低消費電力化

    逐次プログラム

    OSCAR API入り並列化Cプログラム

    Parallelizable Cで記述

    Backend CompilerExec.ObjectOpenMPCompiler

  • 委託事業:マルチコア・アーキテクチャおよびコンパイラの研究

    助成事業:マルチコア技術の評価環境の試作

    委員会参加

    マルチコア・アーキテクチャ・API検討委員会

    委員長:早稲田大学

    笠原 博徳 教授

    アーキテクチャ・コンパイラ

    研究開発 Gr.グループリーダ:早稲田大学

    木村 啓二 准教授

    評価チップ試作 Gr.

    グループリーダ:(株)ルネサス テクノロジ

    長谷川 淳 統括部長

    評価システム試作 Gr.

    グループリーダ:(株)日立製作所

    水野 弘之 主任研究員

    独立行政法人新エネルギー・産業技術総合開発機構

    プロジェクトリーダ早稲田大学

    笠原 博徳 教授サブプロジェクトリーダ

    (株)日立製作所内山 邦男 技師長

    研究開発推進委員会

    実装アーキテクチャ検討委員会

    委員長: 笠原 博徳早稲田大学

    (株)日立製作所(株)ルネサス テクノロジ

    統合研究開発推進委員会

    (株)日立製作所、 (株)富士通研究所、(株)東芝、松下電器産業(株)、

    日本電気(株)、(株)ルネサス テクノロジ

    08.11.14 7早稲田大学 笠原・木村研

    マルチコア・アーキテクチャ・API検討委員会にてOSCAR-APIを策定

  • 主にリアルタイム情報家電機器が対象◦ 様々なメモリアーキテクチャ

    SMP, ローカルメモリ, 分散共有メモリ, ...産官学連携◦ 日立、ルネサス、富士通、東芝、パナソニック、NEC◦ 経済産業省・NEDOのサポートOpenMPのサブセットがベース◦ 共有メモリモデルの、サーバ機等で非常によく使われる並列化API◦ OpenMPコンパイラでコンパイル可能6つのカテゴリ◦ 並列実行◦ メモリ配置◦ データ転送◦ 電力制御◦ タイマ◦ 同期

    08.11.14早稲田大学 笠原・木村研 8

  • 08.11.14早稲田大学 笠原・木村研 9

  • 08.11.14早稲田大学 笠原・木村研 10

    マルチコア・

    チップm

    onchip CSM(オンチップ集中共有メモリ)

    PC0(プロセサコア0)

    DSM(分散共有メモリ)

    LDM(ローカルデータ

    メモリ)

    マルチコアチップ0

    CSM j

    offchipCSM(オフチップ集中共有メモリ)

    CPU

    DTC(データ転送コントローラ)FVR(電力

    制御レジスタ)

    FVRFVR

    FVR FVR

    (プロセサコアn)

    PC1(プロ

    セサコア1)

    PC nTIMER(タイマユニット)

    GROUPBAR(グループバリア同期機構)

  • 並列処理の開始◦ #pragma parallel sections (C)◦ !$omp parallel sections (Fortran)クリティカルセクションの指定◦ #pragma omp critical (C)◦ !$omp critical (Fortran)メモリ一貫性の維持◦ #pragma omp flush (C)◦ !$omp flush (Fortran)以上、OpenMPより

    08.11.14早稲田大学 笠原・木村研 11

  • 08.11.14早稲田大学 笠原・木村研 12

    #pragma omp parallel sections{

    #pragma omp sectionmain_vpc0();

    #pragma omp sectionmain_vpc1();

    #pragma omp sectionmain_vpc2();

    #pragma omp sectionmain_vpc3();

    }

    main_vpc0()

    main_vpc1()

    main_vpc2()

    main_vpc3()

    並列実行(スレッドとコアは1対1で

    結びつけられる)

    VPC: Virtual Processor Core

    OpenMPのparallel sections – sectionを使用(並列処理の指示をプログラム中のコメントで記述する)

  • ローカルデータメモリ(LDM)に変数を配置◦ #pragma omp threadprivate (C)◦ !$omp threadprivate (Fortran)◦ OpenMPの指示文に対する拡張分散共有メモリ(DSM)に変数を配置◦ #pragma oscar distributedshared (C)◦ !$oscar distributedshared (Fortran)オンチップ集中共有メモリ(onchipCSM)に変数を配置◦ #pragma oscar onchipshared (C)◦ !$oscar onchipshared (Fortran)

    08.11.14早稲田大学 笠原・木村研 13

    マルチコア・

    チップm

    onchip CSM(オンチップ集中共有メモリ)

    PC

    DSM(分散共有メモリ)

    LDM(ローカルデータメモリ)

    マルチコアチップ0

    CSM j

    offchipCSM(オフチップ集中共有メモリ)

    CPU

    DTC(データ転送コントローラ)

    (プロセサコアn)

    PC1(プロセサコア1)

    PC n

    TIMER

    GROUPBAR(グルー

  • データ転送コントローラによる転送リストの指定◦ #pragma oscar dmatransfer (C)◦ !$oscar dma_transfer (Fortran)連続領域のデータ転送◦ #pragma oscar dma_contiguous_parameter (C)◦ !$oscar dma_contiguous_parameter (Fortran)ストライド転送◦ #pragma oscar dma_stride_parameter◦ !$oscar dma_stride_parameter◦ scatter/gather転送も可能データ転送間の同期◦ #pragma oscar dma_flag_check◦ !$oscar dma_flag_check

    08.11.14早稲田大学 笠原・木村研 14

  • 08.11.14早稲田大学 笠原・木村研 15

    CPU DTU

    DSM

    データ転送リスト

    CPUDTU

    DSM

    データ転送リスト

    CSM

    (1) DSMからCSMへデータを書き出す

    (2) 別コアのDSMへフラグのセット

    (3) フラグのチェック(4)空いた領域に

    データを送信

    CPUとDTUは独立して動作

  • CPU等の各モジュールの電力状態(周波数、電圧、電源供給状態)の設定◦ #pragma oscar fvcontrol (C)◦ !$oscar fvcontrol (Fortran)◦ 電力状態の例

    100: 最大周波数50: 50%の周波数0: クロックオフ-1: 電源遮断

    電力状態の取得◦ #pragma oscar get_fvstatus (C)◦ !$oscar get_fvstatus (Fortran)

    08.11.14早稲田大学 笠原・木村研 16

    fvcontrol(100)

    fvcontrol(-1)

    fvcontrol(50)

    fvcontrol(100)

  • 経過時間の取得(マイクロ秒単位)◦ #pragma oscar get_current_time (C)◦ !$oscar get_current_time (Fortran)リアルタイム制御に使用

    08.11.14早稲田大学 笠原・木村研 17

  • 任意のCPUグループに対する階層的なグループバリア同期◦ #pragma oscar group_barrier (C) ◦ !$oscar group_barrier (Fortran)

    08.11.14早稲田大学 笠原・木村研 18

    8コア

    PG0(4コア) PG1(4コア)

    PG1-0(2コア) PG1-1(2コア)

    2nd layer →

    PG0-0 PG0-1 PG0-2 PG0-3

    1st layer →

    3rd layer →

  • 0123456789

    tom

    catv

    swim

    su2c

    or

    hydr

    o2d

    mgr

    id

    appl

    u

    turb

    3d apsi

    fppp

    p

    wav

    e5

    swim

    mgr

    id

    appl

    u

    apsi

    SPEC95 SPEC2000

    spee

    dup

    ratio

    Intel Ver.10.1OSCAR

    08.11.14早稲田大学 笠原・木村研 19

    • Intel Compiler Ver.10.1に対してOSCARコンパイラは平均2.09倍の性能

  • 08.11.14早稲田大学 笠原・木村研 20

    1.00

    1.94

    2.81

    3.76

    1.00

    1.80

    2.12

    2.54

    1.00

    1.98

    2.90

    3.75

    1.00

    1.98

    2.55

    3.47

    0.0

    0.5

    1.0

    1.5

    2.0

    2.5

    3.0

    3.5

    4.0

    1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

    MPEG2enc MPEG2dec MP3enc JPEG 2000enc

    逐次処理に対して平均3.38倍の速度向上

  • 08.11.14早稲田大学 笠原・木村研 21

    1.00

    1.78

    2.57

    3.35

    1.00

    1.86

    2.53

    3.24

    1.00

    1.88

    2.71

    3.50

    1.00

    1.83

    2.07

    3.17

    0.0

    0.5

    1.0

    1.5

    2.0

    2.5

    3.0

    3.5

    4.0

    1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

    MPEG2enc MPEG2dec MP3enc JPEG 2000enc

    逐次処理に対して平均3.31倍の速度向上

  • 08.11.14早稲田大学 笠原・木村研 22

    平均電力5.73 [W]

    平均電力1.52 [W]73.5%の電力削減

    0

    1

    2

    3

    4

    5

    6

    7

    0

    1

    2

    3

    4

    5

    6

    7電力制御なし(電圧:1.4V)

    電力制御あり(電圧:1.4V-1.0V、電源遮断モード使用)

    fvcontrol(25)

    fvcontrol(100)

    fvcontrol(-1)fvcontrol(12)

    fvcontrol(100)fvcontrol(-1)

  • OSCAR API◦ リアルタイム情報家電用並列化API◦ OSCARコンパイラと各種マルチコアのインタフェース◦ OpenMPのサブセットをベースとする◦ メモリ配置◦ データ配置◦ 電力制御◦ タイマ◦ 同期

    仕様書を以下で公開◦ http://www.kasahara.cs.waseda.ac.jp/

    08.11.14早稲田大学 笠原・木村研 23

  • 委員長 笠原 博徳(早稲田大学)内山 邦男(株式会社日立製作所)枝廣 正人(日本電気株式会社、オブザーバとして)木村 啓二(早稲田大学)佐藤 真琴(株式会社日立製作所)須賀 敦浩(株式会社富士通研究所)高橋 宏政(株式会社富士通研究所)十山 圭介(株式会社日立製作所)長谷川 淳(株式会社ルネサステクノロジ)前田 誠司(株式会社東芝)前田 昌樹(パナソニック株式会社)

    08.11.14早稲田大学 笠原・木村研 24

    リアルタイム情報家電マルチコア用OSCAR APIスライド番号 2マルチグレイン並列処理メモリ最適化技術�データローカライゼーション低消費電力化技術OSCAR APIと各マルチコアに対する�コード生成H.17-19�リアルタイム情報家電用マルチコア技術研究開発実施体制OSCAR API様々なマルチコアアーキテクチャOSCARメモリアーキテクチャ並列実行スレッドの実行モデルメモリ配置データ転送データ転送の同期の例電力制御タイマ同期Intel Quad-core Xeonでの並列化富士通FR1000マルチコアでの並列化RP1(SH4A 4コア)での並列化コンパイラによる動画像再生(MPEG2)の低消費電力化(8コア使用)まとめNEDO 「リアルタイム情報家電用マルチコア技術の研究開発」�マルチコア・アーキテクチャ・API検討委員会