早稲田大学情報理工学科 木村啓二...2008/11/14 · マルチコア・...
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検討委員会