続々と登場する マルチコアプロセッサ ソフトウェアもおもしろい これからのプロセッサアーキテクチャ 増え続けるチップ上に集積可能なトランジスタ数 早稲田大学 コンピュータ・ネットワーク工学科 木村啓二 マルチコアの用途(例) •サーバーアプリ •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:ビット処理プロセッサ アーキテクチャ •ソフトウェアに対する使いやすさの提示 •各モジュール間の連携 •コア構成/メモリ構成/ネットワーク •低消費電力・フォールトトレラント •投機? マイクロプロセッサのマルチコア化の流れ アーキテクチャ・ソフトウェアの協調が ますます大事 早稲田大学の取り組みを紹介
© Copyright 2024 Paperzz