「ソフトウェアもおもしろいこれからのプロセッサアーキテクチャ」木村 啓二

続々と登場する
マルチコアプロセッサ
ソフトウェアもおもしろい
これからのプロセッサアーキテクチャ
„
増え続けるチップ上に集積可能なトランジスタ数
„
„
„
早稲田大学
コンピュータ・ネットワーク工学科
木村啓二
マルチコアの用途(例)
•サーバーアプリ
•webサーバ
•DBサーバ
•高性能計算
•流体シミュレーション
•たんぱく質解析
各メーカから発表・販売されるマルチコア
„
„
„
•組み込みアプリ
•メディア処理
•ゲーム
IBM Power5+, Sun Niagara
Intel Core 2 Duo, AMD Opteron
IBM・Sony・東芝 CELL, NEC・ARM MPCore,
NEC MP211, 富士通 FR1000, ...
many coreはうれしいのか?
„
„
ユーザはそんなに計算パワーを必要と
しているのか?
そもそもどうやってmany coreを
使いこなすプログラムを開発する?
„
•デスクトップアプリ
•web, mail
•ワープロ、表計算
期待されるスケーラブルな性能向上
要求される低消費電力化
„
„
並列化は?
チップ内外のメモリ管理は?
データ転送は?
計算パワーが
アプリケーションを変える
ニンテンドーDS
„
„
„
(マルチコアではないけれど)
携帯ゲーム機による音声認識
コンテンツの幅の拡大と新規ユーザの開拓
「多機能」から「さりげないインタフェース」と
「新しいユーザ体験」の時代へ
„
„
„
様々な入力装置・センサ・データベースからのデータを
取捨選択・加工
その変化を下支えするのはこれまで以上の計算パワー
マルチコア化・many core化は計算パワーの増大を実現できる
マルチコアの技術
•サーバアプリ
„
„
„
„
マルチグレイン並列化コンパイラ
OSCARマルチコアアーキテクチャ
STARC 並列化コンパイラ協調型
チップマルチプロセッサ技術
産官学連携・NEDO(経産省)
„
„
•コア性能・ホモジニアス構成・ヘテロジニアス構成
•メモリ構成
•共有キャッシュ・分散キャッシュ・ローカルメモリ
•ネットワーク構成
•消費電力・信頼性
もろもろ合わせて
ソフトウェア
考える必要がある
•webサーバ、DBサーバ
•高性能計算
•デスクトップアプリ
•web, mail, office
•メディアアプリ
•ゲーム
早稲田大学
笠原・木村研の取り組み
ソフトウェア・ハードウェア協調型マルチコア
•コア構成
ターゲット
でも、やっぱり誰がどうやってアプリケーションを開発する?
„
アーキテクチャ
統一的に
対応できないか?
•プログラミングモデル
•並列化・データローカリティ・データ転送
•コンパイラ
•ミドルウェア
•OS
•開発環境(デバッガ)
大問題!
マルチグレイン並列化コンパイラ
並列化可能
ループ
ループイタレーションレベル
並列処理
ミレニアムプロジェクトIT21
経済産業省/NEDO「アドバンスト並列化コンパイラ」
APCコンパイラの最新並列コンピュータIBM pSeries690(16プロセッサ)上での性能
12.0
(5.3倍)
(4.9倍)
逐次
ループ
IBM XL Fortran Ver.8.1
APC compiler
(10.7倍)
(7.0倍)
(3.4倍)
10.0
通常の並列化
もとの逐次プログラム コンパイラによる
並列処理
粗粒度・近細
粒度並列化
逐次処理に対する速度向上率
„
用途・規模などに応じ
様々なことが
考えられる
(3.0倍)
8.0
(5.1倍)
6.0
(4.4倍)
4.0
(3.0倍)
(1.8倍)
(1.8倍)
先進ヘテロジニアスマルチプロセッサ
リアルタイム情報家電用マルチコア
2.0
(1.0倍) (1.0倍) (1.0倍)
(1.0倍) (1.0倍)
0.0
プログラム名: tomcatv
swim
su2cor hydro2d mgrid
applu
SPEC CFP95
OSCARコンパイラによる
マルチグレイン並列処理
turb3d
apsi
fpppp
wave5 wupwise swim
mgrid
applu sixtrack
apsi
SPEC CFP2000
*各バーは、IBM社製最新コンパイラXL Fortran Ver. 8.1(青)とAPCが開発したコンパイラ(赤)による速度向上率(1プロセッサ使用時に対する速度向上率)を示す。
*グラフ中のカッコ内は、IBMコンパイラに比べAPCコンパイラが何倍処理速度を向上できたかを示している。
データローカライゼーション:
整合分割
„
複数のループをループ間のデータ依存を考慮しつつCARと LRに分割する
„
ローカルメモリあるいはキャッシュを介してLRのデータをループ間で
授受する
„
LR: Localizable Region, CAR: Commonly Accessed Region
C RB1(Doall)
DO I=1,101
A(I)=2*I
ENDDO
C RB2(Doseq)
DO I=1,100
B(I)=B(I-1)
+A(I)+A(I+1)
ENDDO
RB3(Doall)
DO I=2,100
C(I)=B(I)+B(I-1)
ENDDO
C
LR
DO I=1,33
CAR
DO I=34,35
LR
DO I=36,66
CAR
DO I=67,68
LR
DO I=69,101
DO I=1,33
DO I=34,34
DO I=35,66
DO I=67,67
¾
DO I=68,100
DO I=2,34
DO I=35,67
DO I=68,100
コンパイラによる低消費電力化
„
データ転送オーバーラップ:
プレロード・ポストストア
処理ユニット負荷不均衡時の電
源・周波数電圧制御
スケジューリング結果
FV制御
電源制御
¾
CPU処理と非同期に動作可能なDTU(データ転送ユニット)
を利用してデータ転送をオーバーラップ
データ転送オーバヘッドを隠蔽し速度向上を得る
OSCARマルチコア・アーキテクチャ
CMP 0
(マルチコアチップ0)
PC0
CPU
(プロセッ
サコア0)
LDM/
D-cache
(ローカルプロ
グラムメモリ/
命令キャッシュ)
FVR(電力
制御レジスタ)
デッドライン制約を考慮した電源・周波数電圧制御
スケジューリング結果
FV制御
CMP m
(プロセッサ)
LPM/
I-Cache
„
I/O
Devices
I/O
DTC
(データ
転送コン
トローラ)
(ローカルデータ
メモリ/L1データ
キャッシュ)
PC1
(プロ
セッサ
コア1)
PC n
(マルチ
コア・
チップ
m)
(入出力装置)
CSM j
I/O
CSP k
(プロセッサ
コアn)
DSM
(分散共有メモリ)
CSM
NI(ネットワークインターフェイス)
(集中
共有
メモリ)
(入出
力用
マルチ
コア・
チップ)
電源制御
IntraCCN (チップ内結合網:
複数バス、クロスバー等 )
CSM / L2 Cache
(集中共有メモリあるいはL2キャッシュ)
InterCCN (チップ間結合網:
FVR
FVR
FVR
FVR
複数バス、クロスバー、多段ネットワーク等 )
FVR
FVR
FVR
マルチコア上での性能評価の例:
MPEG2エンコーダ
逐次実行に対する速度向上率
14.0
1 1 .9 1 1 .9
12.0
10.0
多種類の計算エンジン(プロセッサ)を1チップに集積した
SoCアーキテクチャ
プログラムの並列性を抽出し、各プロセッサの特徴に適し
たタスクの分割と配置を行う並列化コンパイラ
8 .0 8 .0
8.0
汎用タスク
汎用タスク
汎用タスク
6.0
4.0
ヘテロジニアスマルチコア
5.4
4 .6 4 .6
逐次実行
2 .5 2 .5
2.0
1.0 1 .2 1 .3
4.4
CPU
プログラム
CPU
DSP
DSPタスク
DSPタスク
2.9
DRPタスク
DRPタスク
1.8
DRP
BMP
BMPタスク
BMPタスク
0.0
1PE
2PEs
4PEs
ループ並列処理版
8PEs
手動版
ヘテロジニアス・チップマルチプロセッサ
16PEs
並列化コンパイラ
自動版
今後の課題
まとめ
アプリケーション開発者
•並列化・最適化しやすいプログラミング?
•コンパイラに対する明示的な指示?
•キラーアプリケーションの提示?
三者の連携・役割分担を
どのようにするべきか?
ソフトウェア
•アプリ開発者に対する使いやすさの提示
•コンパイラの解析能力の拡充
•ソフトウェアの階層間の連携
•コンパイラ/ミドルウェア/OS
•オブジェクト指向?スクリプト言語?
CPU:汎用プロセッサ
DSP:信号処理プロセッサ
DRP:動的再構成可能プロセッサ
BMP:ビット処理プロセッサ
アーキテクチャ
•ソフトウェアに対する使いやすさの提示
•各モジュール間の連携
•コア構成/メモリ構成/ネットワーク
•低消費電力・フォールトトレラント
•投機?
„
„
„
マイクロプロセッサのマルチコア化の流れ
アーキテクチャ・ソフトウェアの協調が
ますます大事
早稲田大学の取り組みを紹介