Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
早稲田大学 情報理工学科
木村啓二
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検討委員会