これからのエネルギー技術

NEXT ENERGY TECHNOLOGY

グリーンコンピューティングのための
低消費電力マルチコア技術
早稲田大学 理工学術院 基幹理工学部 情報理工学科
IEEE Computer Society 理事
笠原 博徳

抄録
本稿では、グリーンコンピューティングのための低消費電力マルチコアプロセッサのアーキテク
チャ、ソフトウェア、応用について紹介する。マルチコアは、半導体の集積度向上と共に問題となる消費電力を低く抑えつつ、処理性能を向上させるための技術としてスマートフォン、ゲームから PC、ク
ラウドサーバ、スーパーコンピュータに至る多くの IT 機器で採用されている。このようなマルチコア
は、各プロセッサコアの動作周波数を低く抑えることにより消費電力を低く抑え、プロセッサを複数並列動作させることにより性能向上を目指そうとするものであり、複数のプロセッサを効率良く動作させることができる並列ソフトウェアの開発がキーとなる。ここではこの並列ソフトウェアを短期間・低コストで開発するための自動並列化コンパイラとその電力削減方式、生成した並列プログラムをマルチプ
ラットフォームで実行するための API とそれらの応用事例も紹介する。

1. はじめにと、リーク電力を抑えるため使用されていないプロセッサ
コアの電源遮断（パワーゲーティング）を行う自動電力削マルチコアプロセッサは、従来主流であった動作周波数

減機能も世界で初めて実現している。さらにこのコンパイの向上によるプロセッサの処理性能向上が、消費電力と冷ラにより並列化及び電力最適化されたプログラムを、異な却の面から困難になったため、消費電力を抑えつつ処理性るメーカで開発された種々のマルチコア、さらに集積度を能を向上させる方式として注目を集めている。現在、マル増やしたメニーコアプロセッサあるいは共有メモリ型サー

チコアは携帯電話、スマートフォン、ゲーム、カーナビかバ で 動 作 さ せ る こ と を 可 能 と す る API（Application

らパーソナルコンピュータ、クラウドサーバ、スーパーコ

Programming Interface）も、NEDO プロジェクトなどの支

ンピュータまでの多くの情報機器を構成する主要技術とな

援により国内企業と共に開発を行ったのでこれについてもりつつある。

紹介する。 また、 アーキテクチャとコンパイラの協調、

しかし、このマルチコアによる低消費電力化では、周波OSCAR コンパイラの自動並列化及び電力削減、API による数に比例し、動作電圧の二乗に比例して増大する消費電力

ソフトウェアポータビリティを確認するために、情報家電

を、周波数と電圧を低く抑えることにより下げようとするで要求されるマルチメディアアプリケーション、自動車にものであるため、1 プロセッサコア当たりの処理性能の低おけるエンジン制御、医療における重粒子線ガン治療装

下は避けられない。この性能低下を補いつつさらに性能を置、地震波動伝搬計算を始めとした多くの科学技術計算へ向上させるため、チップ上に複数のプロセッサを集積し、の適用とその評価が行われているため、そのうちのいくつ

その並列動作によりチップ全体の処理性能を向上させようかについて紹介する。

とするものである。マルチコア上で従来よりも高い性能を

2. グリーンコンピューティングシステム研究得るためには、ソフトウェアの並列化、すなわちプログラ
ムからの並列性の抽出と、並列に動作可能なプログラム部
分のプロセッサコアへの効果的な割り当てが必須となる。

早稲田大学では、図 1 に示すように、経済産業省「2009

しかしこのプログラムの並列化作業は難しく、熟練したプ

年度産業技術研究開発施設整備費補助金」先端イノベー

ログラマでも 1 アプリケーションの並列化に数週間からション拠点整備事業の補助を受け、東京メトロ東西線早稲

数ヶ月を要する場合がある。この問題を解決するために

田駅横に 2011 年 5 月に環境に優しい低消費電力マルチコ

は、逐次プログラムを自動的に並列化する自動並列化コン

ア／メニーコアプロセッサを研究開発するための研究所、パイラが必要となる。この目的のために筆者等は OSCAR

グリーンコンピューティングシステム研究開発センターを自動並列化コンパイラを開発しており、このコンパイラで開設した。ここでは、産官学連携で、太陽電池で駆動可能

は並列化と共に、各プロセッサの周波数及び電圧の制御

な冷却ファン不要の超低消費電力マルチコア／メニーコア

2012.5.14. no.265

31

tokugikon

経済産業省「2009 年度産業技術研究開発施設整備費補助金」
先端イノベーション拠点整備事業〈目標〉
太陽電池で駆動可能で冷却ファンが不要な超低消費電力・高性能マルチコア／メニーコアプロセッサ * のハード
ウェア , ソフトウェア , 応用技術の研究開発*1 チップ上に多数のプロセッサコアを集積する次世代マルチコアプ
ロセッサ〈産学連携〉
日立 , 富士通 , ルネサス , NEC, トヨタ , デンソー, オリンパ
ス , 三菱電機（重粒子線ガン治療）等〈波及効果〉
超低消費電力メニーコア
・CO2 排出量削減
・サーバ国際競争力強化
・我が国の産業利益を支える情報家電 , 自動車等の高付加価値化
2011 グッドデザイン賞受賞

図1

グリーン・コンピューティング・システム研究開発センター概要
2011 年 4 月 13 日竣工 , 2011 年 5 月 13 日開所（記念シンポジウム）

プロセッサのハードウェア、ソフトウェア、応用技術の研バ ー）と 商 用 サ ー バ 日 立 SR16000（8 コ ア マ ル チ コ ア

究開発を行っている。初年度は、NEC、オリンパス、デンPower7 ベース 128 コア SMP）と富士通 M9000（4 コア

ソー、トヨタ、日立、富士通、ルネサスエレクトロニクス

Sparc64 Ⅶベース 256 コア SMP）の消費電力（青バー）を（五十音順）が連携研究室をセンターに設置し、また三菱示す。太陽光サーバ給電装置は最大 40kWh の発電能力で電機は研究室を設置しない形で、密な共同研究を開始してあるが、新宿地区の 4 月 2 日は 32.5kWh がピークであり、いる。屋上にはサーバ給電用太陽光発電装置が設置されてサーバは常時 25kWh を消費していることが分かる。昨年

おり、発生電力をサーバ室に直接給電できると共に見える

春からの集計では太陽光発電は平均して 7kWh 程度の発化を行い、太陽光電力でサーバを動作させるための種々の電量であったので、既存の上記サーバ 2 台を太陽光で動作

データの取得を行っている。サーバ室は、コンパイラ及びさせるためには消費電力を 1／4 以下に抑える必要がある

応用技術等のソフトウェア研究開発用に市販の共有メモリ

ことが分かる。本研究のチップ消費電力の目標は消費電力型マルチプロセッササーバを設置するスペースと、研究開

1／100 以下であるので、 このようなサーバができれば発するマルチコア／メニーコアとそれをベースとしたサー

200TFLOPS 以上の能力をもったサーバを総量的には太陽バを設置するスペースが用意されており、研究開発用ス

光電力で駆動できる可能性がある。

ペースには直流給電、電池なども設置されている。図 2 は、

また、研究開発するマルチコア／メニーコアチップの応見える化の一例で、2012 年 4 月 2 日の太陽光発電量（赤用としては、図 3 に示すような分野を想定している。図左
上から見てみると、次世代自動車のエンジン制御、カメラ
画像からの歩行者認識、他車認識などの情報系とエンジン、ブレーキ制御などの制御系を統合し、より安全、快適、
低燃費の自動車（電気自動車を含め）の開発、より解像度が高く操作性の良い次世代カメラ、充電が 1 週間に 1 度で良く太陽光充電も可能な低消費電力スマートフォン、冷却
ファンがなくホコリがたたず静音で手術室でも使用可能な医療サーバ、太陽光等再生可能電力で一部をまかなえるク
ラウドサーバ、地震計からの揺れを感知するとスーパーリ
アルタイムで各地域の津波の高さを推定し避難誘導を可能

図2とするスーパーリアルタイムスパコンなどを想定してい電力量の 1 日の変化

る。低消費電力コンピューティングにより環境負荷を軽減

グリーンコンピューティングシステム研究開発センター
2012.4.2（晴れ）太陽光電力とサーバ消費電力

tokugikon

し、低消費電力、高ソフトウェア生産性で付加価値の高い

32

2012.5.14. no.265

これからのエネルギー技術

NEXT ENERGY TECHNOLOGY
命を守る

環境を守る

車載（カーナビ・
統合制御・インフラ協調）

グリーンスパコン

スーパーリアルタイム災害シミュ
レーション（地殻変動 , 津波）
耐震性解析 , 火山噴火溶岩流

OSCAR メニーコアチップ
OSCAR
Many-core
Chip

情報家電
ネット TV/DVD
カメラ
カムコーダ

スマートフォン
携帯電話

OSCAR

早稲田大学：研究開発
超低消費電力・
メニーコアシステム技術

ロボット

グリーンクラウドサーバ

ネットブッククールデスクトップサーバ

OSCAR

放医研パンフレットより

太陽電池
駆動・充電

情報家電

医用画像処理等専用サーバ

産業界

産業競争力を守る
市場規模：情報家電・携帯電話系

数 10 兆円（医療：重粒子線照射計画 , 脳梗塞）
自動車・航空機設計サーバ

太陽電池駆動クールサーバ

スパコン・
サーバ

市場規模：スパコン・サーバ系

1 兆円

図 3 産官学連携研究開発・実用化（波及効果）

産業製品を創出し産業競争力を守り、低消費電力高性能で及び同期オーバーヘッドの最小化等が難しく、常に与えら

病気・災害から生命を守ることができればと考え当該分野れたハードウェアを高速で動作させるプログラムを短期間の産官学連携研究を推進している。

で開発できるとは限らない。このような経験から、筆者らのグループは 1980 年代中旬より、並列化コンパイラによ3. ソフトウェア協調型マルチコアプロセッサる階層的並列化、メモリ最適化、プロセッサ間データ転送［1］−［6］

及び同期オーバーヘッドを最小化しやすいマルチプロセッ
マルチコアプロセッサの開発においては、チップ上に集

サアーキテクチャ、すなわちソフトウェア・ハードウェア

積するプロセッサ数が、パーソナルコンピュータあるいは

協 調 型 の マ ル チ プ ロ セ ッ サ ア ー キ テ ク チ ャOSCAR

サーバ用のインテル、AMD、IBM、富士通のチップが 16（Optimally Scheduled Advanced Multiprocessor）アーキ

プロセッサ程度まで、また組込用の ARM、ルネサスエレ

テクチャ（図 4 参照）を開発している。

クトロニクスからの低消費電力マルチコアはホモジニアス

OSCAR マルチコアアーキテクチャでは、各プロセッサ

マルチコアで 8 コア程度と、集積コア数が多くないため、により共有されるオフチップ及びオンチップの集中型の共ほとんどが SMP（Symmetric Multi-Processor：主記憶共有

有メモリと、サーバ用 SMP のように各プロセッサ用プラ型マルチプロセッサ）方式のアーキテクチャとなっていイベートキャッシュを持たせることができると共に、我がる。また 32 コア以上集積したメニーコアでも、Tilela 社の国が得意とするハードリアルタイム制御にも対応できるよ

64 コアあるいは 100 コア集積のチップは L2 キャッシュ共

うに、自分しかアクセスしないデータを格納するローカル

有の SMP 方式となっており、Intel の 48 コア集積の SCC は

データメモリと他のプロセッサからも直接アクセスできる

分散メモリアーキテクチャで分散メモリ型アーキテクチャ

分散共有メモリ、またそれらのプロセッサ近接メモリにアも出始めている。ただし、SMP は自動並列化コンパイラ

クセスが必要となる以前に集中共有メモリからデータをが利用可能であり比較的並列化が容易な OpenMP を使用

ロードしたり、他プロセッサが必要とする共有データを当できるが、分散メモリの場合には MPI を用いた人手によ

該プロセッサ上の分散共有メモリにストアしたりするためるプログラム並列化が前提となる。

のデータ転送ユニット DTU（高機能 DMA コントローラ）

また、従来のマルチプロセッサの開発では、ハードウェを持たせている所に特徴がある。さらに OSCAR マルチコ

アの開発特にクロック周波数の高いプロセッサとそれを接アアーキテクチャでは、各プロセッサコア及びコア内のプ続したアーキテクチャ設計が主流で、ソフトウェアは後か

ロセッサ、DTU、各種メモリとメモリ内バンクなどを別々

らそのハードウェアをうまく使いこなすように開発して欲に周波数制御及びクロック停止（クロックゲーティング）、

しいというスタイルが一般的であった。しかしマルチプロ

電源遮断（パワーゲーティング）するための周波数電圧制

セッサでは、メモリ階層利用の最適化、プロセッサ間通信

御レジスタ FVR も用意されている［6］。2005 年から 20072012.5.14. no.265

33

tokugikon

年度にかけて筆者がプロジェクトリー

・ローカルメモリ・分散共有メモリ・集中共有メモリ（チップ内・外）・DTC（高機能 DMAC）
・電力制御用 FVR

ダとして行った NEDO” リアルタイム情報家電用マルチコア “プロジェクトでは、委員会参加の IT／半導体企業 6 社、D-cache（ローカル （データ
データメモリ/ L1
転送コン
データ キャッシュ） トローラ）

FVR（電力制御 NI（ネットワークインターフェイス）
レジスタ）

め、API の開発を行った。さらに、こCSM)Interface）の標準アーキテクチャと定DSM（分散共有メモリ）

CSMj

集( 中共有メモリ（ローカルプロ
グラムメモリ/命令キャッシュ)並 列 API（Application ProgrammingPCn( 集中共有メモリあるいは L2 キャッシュ )テクノロジーで 9ミリ角のチップ上に

FVR)

CSM / L2 Cache

図 6 に示すように、SH4A コアを 90nm)

IntraCCN（チップ内結合網：複数バス,クロスバー等） FVRの標準アーキテクチャに基づき、図 5、

FVR

FVR

InterCCN（チップ間結合網：複数バス , クロスバー , 多段ネットワーク等）

8 コア集積した RP2 を 2008 年に開発

I/O
CSPk
入( 出力用 マルチコア・チップ

OSCAR アーキテクチャをマルチコア用

PC1

DTC

︵プロセッサコアｎ ︶LDM/
D-cacheLPM/
I-Cache︵プロセッサコア１︶

ソニック、NEC（順不同）と共に、このI/O（入出力装置）

CMPm

CPU
（プロセッ
サコア 0) （プロセッサ）

マ( ルチコア・チップｍ

日立、富士通、ルネサス、東芝、パナ

CMP0（マルチコアチップ 0）

PC0

FVR

FVR

FVR

図 4 OSCAR API 標準的マルチコア OSCAR メモリアーキテクチャ(Optically Scheduled Advanced Multiprocessor)

した。OSCAR アーキテクチャはシンプ
ルな作りやすい構成のため、ルネサス
が、最初の 4 コアチップ RP1（2007 年
開発）、2 個目の上記 RP2 チップとも、設計からチップの完成まで 9ヶ月程度

Core#2

されて動作しているという短期間でのハードウェア・ソフトウェア開発を実現した。特に RP2 では図 6 に示すように、オフチップ集中共有メモリDDR2、分散共有メモリURAM、ローカルデー

DBG0

Core#3

電源電圧

1.0V-1.4V（コア）, 1.8/3.3V
（I/O）

動作周波数

600MHzCPU 性能8640 MIPS（Dhrystone 2.1）

FPU 性能33.6 GFLOPS

低電力制御

・CPU 毎に独立した周波数変更
・CPU コアのクロックを停止する
スリープモード・CPU コアの一部のクロックを停止するがキャッシュコヒーレンシ
維持可能なライトスリープモード
・CPU コアの電源供給を停止する
フル電源遮断モード
・URAM 以外の CPU コアの電源供給を停止するレジューム電源
遮断モード

SHWY

Core#6

DBG1

Core#4

CSM

チメディアアプリケーションが並列化

GDBG

ションで発表すると共に、チップ発表
時には OSCAR コンパイラによりマル

D-cache

DBSC

90nm CMOS, 8 層メタル , 3 種 Vth

チップサイズ 104.8mm2（10.61mm x 9.88mm）

Core#1SNC0URAM DLRAMのチップとも ISSCC のプロセッサセッ

プロセス

I-cache

SNC1

LBSC

で一発完動の状態で完成させた。両方

ILRAM

Core#0

Core#7
VSWC

Core#5CPGM

DDRPAD

8 コア集積マルチコア LSI チップ写真

ISSCC08 発表 : ISSCC08 論文番号 4.5, M.ITO, et al., “An 8640 MIPS SoC with Independent Power-oﬀ Control of
8 CPUs and 8 RAMs by an Automatic Parallelizing Compiler”

タメモリDLRAM、データキャッシュ

図 5 早稲田 OSCAR コンパイラ協調型アーキテクチャ
ホモジニアスマルチコア RP2 SH4A8 コア搭載

D-cache、オンチップ集中共有メモリ
CSM、各コア毎のデータ転送ユニット、
階層並列をサポートするための任意グ
ル ー プ で の バ リ ア 同 期 機 構［5］CCN
BAR、4 コアまでのハードウェアキャッ

Process
90nm, 8-layer,
Technology triple-Vth, CMOS

シュコヒーレンス機構 2 セット、各コ
ア毎の周波数制御及びパワーゲーティ

Chip Size

104.8mm2(10.61mm x 9.88mm)

ング制御とチップ全体での電圧制御がCPU Core
Size

6.6mm2(3.36mm x 1.96mm)

SupplyVoltage

1.0V‒1.4V (internal),
1.8/3.3V (I/O)

［6］

Clock
frequency

600MHz, 300MHz,
150MHz, 75MHz

2）、150MHz（1／4）
、75MHz
（1／8）
、

Power
Domains

17 (8 CPUs, 8 URAMs,
common)ロジック系とメモリ系独立に制御できる電力制御用レジスタを実装した［1］−。周波数は 600MHz、300MHz（1／0MHz（クロックゲーティング）の 5 段
階を 1クロックで変えられ、 電 圧は1.4V、1.2V、1.0V の 3 段階で変えられ、
5μs で電源遮断を 30μs で復帰できるソフトウェア制御可能な構成とした。
このチップはグリーン IT の代表的"An 8640 MIPS SoC with Independent Power-oﬀ Control of 8 CPU and 8 RAMS
by an Automatic Parallelizing Compiler”, IEEE ISSCC2008, Masayuki Ito, Toshihiro Hattori, Yutaka Yoshida, Kiyoshi Hayase,Tomoichi Hayashi, Osamu Nishii, Yoshihiko Yasu, Atsushi Hasegawa, Masashi Takada, Masaki Ito, Hiroyuki Mizuno,
Kunio Uchiyama, Toshihiko Odaka, Jun Shirako, Masayoshi Mase, Keiji Kimura, Hironori Kasahara

低コスト化のため 5 コア以上ハード・コヒーレンシ制御機能無し→ソフト・コヒーレンシ制御必要

図 6 8 コアホモジニアスマルチコア RP2 のアーキテクチャ

tokugikon

34

2012.5.14. no.265

これからのエネルギー技術

NEXT ENERGY TECHNOLOGY

SH-4A

SH-4A
-

SHwy#0
DDR3
#0

Media
IP

MX2

FPU

DTU

I$

MMU

D$

ILRAM

LDM

DSM

シーケンスマネージャ

割込 /DMA要求

SHwy#1
FE -GACPU

入出力ポート

DDR3
#1

LS セル

ALU/MLT セルアレイ(24/8 セル)ローカルメモリ

LS

CRAM

ALU

MLT

ALU

ALU

LS

CRAM

ALU

MLT

ALU

ALU

LS

CRAM

ALU

MLT

ALU

ALU

LS

CRAM

ALU

MLT

ALU

ALU

LS

CRAM

ALU

MLT

ALU

ALU

LS

CRAM

ALU

MLT

ALU

ALU

LS

CRAM

ALU

MLT

ALU

ALU

LS

CRAM

ALU

MLT

ALU

ALU

LS

クロスバネットワーク

サブCPU へ

バス
I/F

CRAM

LS

CRAM

(10セル)(10バンク)コンフィギュレーションマネージャ
ALU ALU セル

MLT 乗算セル

LS

ロードストアセル CRAM

コンパイルド RAM(4 〜 16KB, 2-port)

・8 Renesas SH-4As as CPUs, 4 Hitachi FE-GAs dynamically reconﬁgurable processor as accelerators
・I$:32KB/core, D$:32KB/core
・Frequency/Voltage State: 648MHz@1.3V, 324MHz@1.16V, 162MHz@1.0V“A 45nm 37.3GOPS/W heterogeneous multi-core SoC”, IEEE ISSCC2010
Y. Yuyama, M. Ito, Y. Kiyoshige, Y. Nitta, S. Matsui, O.Nishii, A. Hasegawa, M. Ishikawa, T. Yamada, J. Miyakoshi, K. Terada, T. Nojiri, M. Satoh, H. Mizuno, K. Uchiyama,
Y. Wada, K. Kimura, H.Kasahara, H. Maejima,

図7

15 コアヘテロジニアスマルチコアプロセッサ RP-X（45nm ローパワーテクノロジー使用）

4. OSCAR自動並列化及び電力削減コンパイラ［7］−［10］技術として 2008 年 4 月 10 日の第 74 回総合科学技術会議
で当時の福田総理を含め関係閣僚に紹介された。
また、 引き続き 2006 年度から 2009 年度まで行った

OSCAR 自動並列化コンパイラプロジェクトは 1983 年にNEDO “情報家電用ヘテロジニアスマルチコア” プロジェク

開始し、30 年近い長期に渡り開発を続け、現在、科学技

トでは、上記 SH4A プロセッサコア 8 個と 3 種類のアクセ

術計算用の Fortran 及び組込用の C の自動並列化を行うこラ レ ー タ 7 個（4 つ の DRP（Dynamic Reconfigurableとができると共に、世界で唯一自動電力制御が行えるコン

Processor）FEGA コア、2 つの画像認識エンジン MX2、1

パイラとなっている。OSCAR コンパイラの並列処理方式

つのコーデックエンジン VPU5）、計 15 コアを 45nm の低の特徴は、1980 年代後半に実現したマルチグレイン並列

電力プロセスで集積したヘテロジニアスマルチコア RPX化と 1990 年後半にローカルメモリ最適利用のために開発（図 7）を 2010 年に開発し ISSCC にて発表した。このチッし、2000 年より開始した NEDO アドバンスト並列化コン

プではリーク電力がほとんどないプロセスを利用できたた

パイラでキャッシュ最適化用に改良して実用レベルに高め

め 648MHz、324MHz、162MHz、81MHz、0MHz の コ

たデータローカライゼーション技術である。

ア別周波数制御、1.3V、1.16V、1.0V のチップ一括電圧

マルチグレイン並列化は図 8 に示すように、市販並列化

制御のみを実装した。

コンパイラが利用しているループ並列化技術（ループ内のプロセッサ高速化における３大技術課題の解消
1.半導体集積度向上（使用可能トランジス
タ数増大）に対する速度向上率の鈍化
粗粒度タスク並列化 , ループ並列化 , 近細
粒度並列化によりプログラム全域の並列性を利用するマルチグレイン並列化機能
により , 従来の命令レベル並列性より大きな並列性を抽出し , 複数マルチコアで
速度向上

図8

2. メモリウオール問題

3. 消費電力増大による速度向上の鈍化

 ンパイラによるローカルメモリへのコ
データ分割配置 ,DMA コントローラによるタスク実行とオーバーラップしたデー
タ転送によりメモリアクセス・データ転送オーバーヘッド最小化

 ンパイラによる低消費電力制御機能をコ用いたアプリケーション内でのきめ細かい周波数・電圧制御・電源遮断により消費電力低減

OSCAR マルチコア用コンパイラの特徴的技術

2012.5.14. no.265

35

tokugikon従来のループ並列化
並列化可能ループ
実行時間の 95％
逐次ループ
実行時間の 5％

エッジで結ばれたタスクグラフのように、ループ間にデー

粗粒度タスク並列化

タ依存があることが分かると、OSCAR コンパイラでは依並列化可能ループ
実行時間の 95％

逐次ループ
実行時間の 5％19 プロセッサ

1 プロセッサ

存があるループ間でのキャッシュのグローバル最適化を試みる［7］。具体的には、各ループでアクセスされる配列を調査し、図中の緑、赤、青、黄に色分けされたループに分割し、同一の色を持つ分割ループは同一の配列部分にアクセ

20 プロセッサで並列処理スするように調整することにより、同一色の分割ループを

速度向上率 =100/(95/20+5) 速度向上率 =100/max(95/19,5)= 100/(4.75+5) = 10.26 倍=100/5 =20 倍

同一プロセッサに割り当てると同一色の 6 つのループ間で

図9 粗粒度タスク並列：ループ並列の限界を越えるためになる。またこのローカライズ技術は、現在さらに進み、任は全ての配列データがキャッシュ上で再利用されるように意のサイズのローカルメモリあるいは分散共有メモリが与［4］えられた時に、DMA（DTU）
を用いアクセスされる前に繰り返し、たとえば i=1、100 の 100 回の繰り返しをプロ

前記プロセッサ近接のローカルあるいは分散共有メモリにセッサ間で並列実行する）に加え、ループ、関数（あるい事前ロードし、プログラム全域で再利用したり、送付先のはサブルーティン）、基本ブロック（代入文及び条件分岐

メモリがいっぱいの場合には送付先プロセッサの DTU が文からなるブロック）を粗粒度タスクと定義しそれらの間メモリからの掃き出し優先順位にしたがってデータを共有の制御依存（条件分岐に伴って生じる依存関係）及びデー

メモリ等へ掃き出したことを同期フラグで知らされたら、タ依存（データの定義及び使用によって生じる依存関係）

自動的に空いたメモリにデータを転送したり、将来再利用を解析し条件分岐を越えた並列性を利用する粗粒度タスク

されるデータであるがしばらくの間使用されずメモリの領並列性と、基本ブロック内の文単位の近細粒度並列性の、域を開ける必要がある場合には、CPU によるタスク実行のプログラムの複数粒度の並列性を利用する独自の方式であ裏側で DTU が当該データを集中共有メモリに待避し、使る。この粗粒度並列化を行うことにより、アムダールの法用時までに再ロードするようなローカルメモリ管理、デー則で知られる逐次部分があるとプロセッサ数の増加と共にタ転送技術へと進化している［9］。

スケーラブルな速度向上が得られないという状況を改善す

さらにコンパイラは、 タスクのプロセッサへのスケることができる。たとえば図 9 の左のように、95％の処

ジュール結果を解析し、自動的に各コアの周波数電圧制

理コストを持つ並列化ループと 5％のコストを持つ逐次

御、パワーゲーティング制御により電力を削減することがループがあるとすると、 従来のループ並列化では 95％

できるようになっている。図 10 を用いて基本的な概念を

ループを全プロセッサ（図では 20 プロセッサ）で処理し、説明すると、最速実行モードの際にはタスクグラフのクリ

その後逐次ループを 1 プロセッサで処理することにより、ティカルパス上のタスク集合はフルスピード（100% の周

20 プロセッサで最高 10.26 倍の速度向上を得ることがで波数）で実行される必要があり、図 10 上図ではプロセッ

きる。これに対し粗粒度タスク並列化では、並列ループとサ 0 に割り当てられた MT1 とプロセッサ 1 に割り当てら

逐次ループ間の並列性を検出し、 並列ループを 19 プロ

れた MT3 が最大周波数で実行される。 しかし、MT3 はセッサで並列処理し、逐次ループを残りの 1 プロセッサでMT1 の計算結果を必要とするので、MT2 の実行後プロ同時処理することにより最高 20 倍の速度向上を得ることができる。図 8 の右上の SPEC95 の Su2cor プ ロ グ ラ ム 中 の 9
重ネスト目のループボディ部の粗粒度タ・最速実行モードにおける電源・周波数電圧制御
スケジューリング結果

FV 制御

電源制御

スクグラフ（タスク間の並列性を表すグラフ）を見ると分かるように、青色のブロックで示す並列ループと赤ブロックで示す逐次の基本ブロック及びピンクで示
す逐次ループが同時実行することができると解析されており、従来のループ並列・リアルタイム実行モードにおける電源・周波数電圧制御
スケジューリング結果

FV 制御

電源制御

に比べ、非常に大きな並列性を抽出できることが分かる。
また、ループ間などの並列性を解析した後、図 8 右中央の左の網掛けされた 6つのタスクが、 実線で示すデータ依存

図 10

tokugikon

周波数電圧（FV）制御と電源制御による低消費電力化

36

2012.5.14. no.265

これからのエネルギー技術

NEXT ENERGY TECHNOLOGY
セッサ 1 は同期のためのビジーウエイト状態となり、プロ

ハードリアルタイム処理（デッドラインを確実に守らなけ

セッサ 0 が MT1 の出力データをプロセッサ 1 上の分散共ればならない処理）が必要となり、この場合、ミスヒット

有メモリにストアし、MT1 の終了を通知する同期フラグ

するとメモリアクセス時間が長くなりデッドラインを守れを分散共有メモリ上にセットするのを待つ。この際、ビない可能性のあるキャッシュメモリは使用できない。そこ

ジーウエイトは電力を消費してしまうので、OSCAR コン

で、データの転送をソフトウェアで明示的に行い動作を厳

パイラは MT2 を低周波数・低電力で実行するか、もしく密に制御できるローカルメモリ、分散共有メモリ及びそのは電源遮断するのに十分な待ち時間があればプロセッサ 1

データ転送のための DMA（前述の DTU）の利用が必要となの電源を一時遮断する。また図 10 下に示すリアルタイム

る。OpenMP では、分散共有メモリ、DMA、また電力制御、実行モードでは、処理終了後デッドラインまでの待ち時間

グループバリア、時間管理、アクセラレータの利用などのに電力を消費するのを避けるため、下中央のように MT1

機能が無いため、これらの機能を用意した OSCAR

を 1／4 の周波数、MT2 を 1／2 の周波数及びそれらに合っ（図 11）を NEDO プロジェクトの支援も受けつつ、IT／半た電圧で実行することにより電力を下げるか、右図のよう導体企業と共に早稲田大学 OSCAR API 委員会にて作成しにクロックゲーティングあるいはパワーゲーティングによた。第一期委員会 早大、日立、NEC、富士通研、ルネサス、

りプロセッサを停止させる。この時、コンパイラは電源状

東芝、パナソニック（2005 − 2008）によりホモジニアス

態遷移オーバーヘッドも考慮してヒューリスティック的にマルチコア用 OSCAR API V1.0 を策定し、 第二期委員会

適切な電力モードを自動選択する 。

（2009 − 2010）により早大、日立、NEC、富士通、ルネ

［6］

API

サス、東芝のメンバーで、アクセラレータも集積したヘテ

5. OSCAR API とコンパイルフロー

ロジニアスマルチコアのサポート及びメニーコアにおけるキャッシュメモリのソフトウェアコヒーレント制御のため4. で述べた OSCAR コンパイラによりマルチグレイン並の拡張を検討し、 第三期委員会（2011 −）早大、 名大、列化、メモリ最適化、電力最小化された並列プログラムは、

東邦大、日立、ガイオ・テクノロジー、三菱スペース・ソ

通常のコンパイラと同様 SPARC 等用の並列バイナリープ

フトウェア、NEC、イーソル、ルネサスソリューションズ、

ログラムを生成できるほか、OpenMP を用いた C あるいは

東芝、三菱電機、オリンパス、富士通研、ルネサスエレク

Fortran 並列プログラムとして生成され、OpenMP コンパ

トロニクス、キャッツ、東芝、セミコンダクター、デンソー

イラを持つ任意のマルチプロセッササーバ上で実行するこで、 上 記 拡 張 を 含 め た OSCAR API V 2.0 を 策 定 し た。

とができる。しかし、我が国が得意とする組込製品では、2012 年春公開予定の OSCAR API V 2.0（図 12）では、逐API：Application Programming Interface

逐次 C or Fortran
アプリケーションプログラム（情報家電 , 自動車 , 医療 , 科学技術計算）

アクセレータ用コンパイラ
あるいはユーザ指示

・アクセラレータあるいはユーザが ,アクセラレータで実行可能プログラ
ム部分あるいはライブラリとその実
行時間等ヒント指示文として逐次プ
ログラム中に追加

早稲田大学 OSCAR
自動並列化コンパイラ・プログラム全域からマルチグレイン並列性を抽出（粗粒度タスク並列含む）
・データ配置の最適化（分散共有・ローカル
メモリ利用の自動最適化）
・DMA を用いたデータ転送・周波数 / 電圧 / 電源制御低消費電力化

タスク生成・変数のメモリ割当て・キャッシュ一貫性制御・
データ転送・同期・電力制御を指示する指示文（コメント文）集
並列化 API
C or F プログラム
Proc0

指示文
用プログラムProc1

指示文
用プログラム

ホモジニアス用低電力
並列マシンコード生成
API
解釈系

既存逐次
コンパイラ

ヘテロジニアス用低電力
並列マシンコード生成
API
解釈系（早稲田大学より無料配布）

ホモジニアス
マルチコア /
メニーコアチップ（共有メモリサーバ）

既存逐次
コンパイラ
アクセラレー
タ用コンパイラ / ライブラリ

ヘテロジニアスマルチ
コアチップ

アクセラレータ A
用プログラムアクセラレータ B
用プログラム

サーバ用コード生成
市販 OpenMP
コンパイラ
共有メモリマルチプロセッササーバ

図 11 （ホモジニアス / ヘテロジニアス）マルチコア・メニーコア用プログラム開発

2012.5.14. no.265

37

tokugikon

逐次コンパイラで各社チップ用並列コード作成可能

ヘテロ

ホモジニアス

ユーザによる
手動並列化

ホモジニアス / ヘテロジニアス
マルチコア及びメニーコア用 OSCAR API□ Parallel Execution API・parallel sections *・flush *・critical *・execution□ Data transfer API
・dma_transfer
・dma_contiguous_parameter・dma_stide_parameter・dma_flag_check・dma_flag_send

Scheduled Result
by OSCAR Compiler
VC0

Sleep

□ Heterogeneous API・accelerator_task_entry□ Timer API
・get_current_time□ Cache control API・cache_writeback
・cache_selfinvalidate
・complete_memop

voidmain̲VC1() {
MT2

MT1

MT1

□ Synchronization API・groupbarrier

図 12

VC1
MT2

□ Memory Mapping API □ Power control API
・fvcontrol
・threadprivate *・get_fvstatus
・distributedshared・onchipshared* Directives from OpenMP

Generate Code Image by OSCAR Compiler
voidmain̲VC0() {#pragma oscar fvcontrol ¥((OSCAR̲CPU(),0))Sleep#pragma oscar fvcontrol ¥(1,(OSCAR̲CPU(),100))◆ Hint Directive・accelerator_task
・oscar_comment

MT3

MT4
MT3
}

OSCAR ヘテロジニアス API

図 13

MT4
}

OSCAR API を用いた低電力制御

http://www.kasahara.cs.waseda.ac.jp/api/regist_en.html

次 C あるいは Fortran プログラムをコンパイラが自動並列で行え、またユーザにとっても覚えやすく、分かりやすい

化・電力最小化し、各社の命令セットが異なるホモジニアという特徴がある。たとえば図 13 に示す例のように、C

スマルチコア及びヘテロジニアスマルチコア、さらにはプログラムにおいて、プロセッサ 1 がスリープする時にはキャッシュコヒーレンス用ハードウェアを持たないメニー

自 CPU を 0％の周波数とすることを指定し、プロセッサ 0

コア上でも動作させることを可能としている。

がプロセッサ 1 を起こす場合には、図中の（1, CPU, 100）

OSCAR API の特徴は、各プロセッサ毎に別々のスレッのようにプロセッサ１の CPU を 100% で動かすと指定すれドを用意し、各スレッドに埋め込まれたディレクティブはば簡単に電力制御ができる。電源を遮断したいときには早大が無料配布する API 解釈系により各プロセッサ用のラ（CPU, − 1）と指定すれば遮断することができる。 このイブラリコール（プロセッサ企業側で DMA、電力制御な

API 仕様は http://www.kasahara.cs.waseda.ac.jp/ で無料公どのライブラリを用意することが前提）に変換されるの開されている。

で、プロセッサメーカ側は通常の逐次 C あるいは Fortran

6. OSCAR コンパイラと API の応用事例

コンパイラのみを用意すれば、並列バイナリが簡単に手に入る。これにより OpenMP コンパイラや並列化コンパイ
ラの開発が不要になると共に、非常に短期間でコンパイラ

図 14 は、Fortran プログラムを自動並列化してインテルを 用 い た 並 列 実 行 が 可 能 と な る。 こ の 機 能 に よ り、

4 コアマルチコア及び IBM

OpenMP コ ン パ イ ラ が 用 意 さ れ て い る サ ー バ で も、

コア SMP サーバ上で SPEC CFP ベンチマークに対する性能

OpenMP 機能を使わず逐次コンパイラのみを用いて並列を評価した例を示している。図中、青のバーは、インテル実行を行うことができる。また、共有メモリをもつマルチ及び IBM コンパイラで、それぞれ各アプリケーションを 4

プロセッサであれば、他のプロセッサへの移行も簡単に行

コア、32 コア用自動並列化して動作させた時、1 コアよえ、 ルネサスの SuperH プロセッサ・V850 プロセッサ、

り何倍スピードアップできたかを示している。インテルコ

ARM MPCore、富士通 FRV・Sparc、Intel、AMD、IBM のンパイラでは、4 コアの利用で、2 アプリケーションに対任意のプロセッサで簡単に動作させることができる。まして 2 倍程度の速度向上ができているが他のアプリケー

た、ヘテロジニアスマルチコアでは、アクセレータ用のコ

ションではあまり高速化ができていないことが分かる。まンパイラが開発メーカ等から提供されていれば、それらのた IBM コンパイラでも、32 コアの利用で、10 倍強の速度

コンパイラと協調して自動並列化が可能であるのと、C 等向上ができているのが 1 アプリケーション、5 倍強が 1 アのソースコードがなくアクセレータ用のライブラリが用

プリケーションで他は大きな速度向上が得られていないこ

意されている場合にはユーザがライブラリでの実行にかとが分かる。 それに対し OSCAR コンパイラで OSCAR

かる時間と入出力データの情報をコメント文として逐次 C

API で並列化した Fortran プログラムを生成し、各社のコあるいは Fortran プログラムに追加すれば、OSCAR コンパ

ンパイラでバイナリに落とすと、同一プログラムが赤のイラがアクセレータと汎用プロセッサ間での負荷分散とバーのように、インテルプロセッサで平均 2 倍、IBM プロ

それらの間の DMA 等も用いた通信コードを自動生成する

セッサで平均 3 倍程度高速化できることが分かる。また、。また、他の特徴としては、図 12 に示すようにディレ

NEC／ARM の 4 コア MPcore プロセッサ上で Fortran と C

クティブ数を非常に少なく抑えたシンプルな構成のため、（マルチメディアコード）を OSCAR コンパイラで自動並列

各マルチコア上で最初に動作させるのが簡単かつ短時間化した所、ARM 用には市販の並列化コンパイラがないた［10］

tokugikon

38

2012.5.14. no.265

Power6 マルチコアベース 32

これからのエネルギー技術

NEXT ENERGY TECHNOLOGY
インテル・IBM マルチコアサーバ上でそれぞれ 2 倍・3 倍以上の高速化
インテルクアッドコア Xeon プロセッサ上での早稲田大学 OSCAR コンパイラの性能
インテル・マルチコア上でインテルコンパイラに比べIBM p6 595 Power6 (4.2GHz) ベース 32 コア SMP
サーバ上での早稲田大学 OSCAR コンパイラの性能
IBM 最新サーバ上でIBM コンパイラに比べ2.1 倍速度向上

9Intel Ver.10.1

8

OSCAR

3.3 倍速度向上

speedup ratio

7
6
5
4
3
2

SPEC95

apsi

applu

swim

mgrid

wave5

apsi

fpppp

applu

turb3dhydro2dswim

su2cortomcatv

0

mgrid

1

SPEC2000

図 14 現状：世界最高性能の OSCAR コンパイラの性能

4.5
4

g77
OSCAR

3.5
speedup ratio

3
2.5
2
1.5
1
0.5
0

1PE

2PE

4PE

1PE

mgrid

2PE
su2corSPEC95Compile Opiion : -O3

4PE

1PE

2PE

4PE

hydro2d

OSCAR compiler gave us 3.43 times speedup against 1 core for Fortran and 3.13 for C on ARM/NEC MPCore with 4 ARM 400MHz cores

図 15

NEC ナビエンジン（ARM-NEC MPcore）上での OSCAR コンパイラの性能め比較できないが、1 コアに比べ Fortran コードで 3.4 倍、用いて、動画像の変化部分を検出するオプティカルフロー

C で 3.1 倍の速度向上が得られた。

計算を並列化すると、SH4A 1 コアと比べ、ホモジニアス

また、RP2 上での電力削減例を図 16 に示す。図ではデな 8 コア部分で 5.4 倍の速度向上が得られ、さらに FEGA

ジタルテレビで使用される MPEG2 デコードの 8 コア上でアクセレータを 4 コア同時動作させると 32.7 倍高速化でのリアルタイム並列実行において、電力制御をしないときることを示している。またこのオプティカルフローのリ

5.7W 消費する計算が、コンパイラによる電力制御を行う

アルタイム処理時の電力削減を行うと、図 18 に示すようと 1.5W で行え、電力を 1／4 程度にまで削減できているに電力制御しない場合に 1.76W を要した計算が 0.54W でことが分かる。

実行できることが分かる。

ま た 図 17 は、 ヘ テ ロ ジ ニ ア ス マ ル チ コ ア RPX 上 でまた、この RPX を用いて Linux ベース Web サーバを試SH4A プロセッサと FEGA（前述の DRP）アクセラレータを作した所、図 19 に示すように 628MHz 8 コア動作時でほ2012.5.14. no.265

39

tokugikon

NEDO プロジェクトで開発した低消費電力
マルチコア（8 コア）上でのマルチメディア処理（W）

電力制御無し平均電力
5.73 [W]76

電力制御無し54太陽電池で駆動可省電力分

73.5% の
電力削減

3
2
1
0

周波数 / 電圧・電源遮断制御

図 16

電力制御有
平均電力
1.52 [W]

現状：世界唯一コンパイラによる消費電力削減に成功- 画像動作追従のためのオプティカルフロー演算のコンパイラ自動並列化（世界初）-

図 17

ヘテロジニアスマルチコア RP-X 上での処理性能

NEDO 情報家電用ヘテロジニアスマルチコアプロジェクト（2006-09）

コンパイラ制御なし
平均 1.76［W］

およそ 70［%］の電力削減

コンパイラ制御適用
平均 0.54［W］

1 周期 : 33[ms]→30[fps]

図 18 オプティカルフロー（ライブラリ利用）に対するリアルタイム処理時の消費電力制御

tokugikon

40

2012.5.14. no.265

これからのエネルギー技術

NEXT ENERGY TECHNOLOGY
ぼ 1W で 動 作 す る こ と が 分 か る。 現 在 http://www.

の計算は C で記述され、従来 OpenMP を用い手動並列化しkasahara.cs.waseda.ac.jp/ のサービスはこのサーバで行わた場合、16 コア使用しても 1 コアの 2.5 倍の速度向上しかれておりリアルタイムの消費電力が表示できるようになっ得られていなかった計算であるが、OSCAR コンパイラをている。これにより 24 時間動作する Web サーバの電力を用いることによりインテルプロセッサベース 12 コア SMP

通常のサーバと比べ数十分の 1 に削減できることが確かめ

で約 9 倍の速度向上、IBM Power7 ベース 64 コアサーバでられた。

55 倍の速度向上が得られ、1 日当たりに治療できる患者

最後に、重粒子線ガン治療計算の OSCAR コンパイラと数の増大、それに伴う治療費の軽減が可能となることが確

API を用いた時の並列処理性能について図 20 に示す。こかめられた。

8 コア動作時１W

図 19 組込マルチコア RPX 利用低消費電力 Web サーバ

8.9times speedup by 12 processors
Intel Xeon X5670 2.93GHz 12 core SMP(Hitachi HA8000)

55 times speedup by 64 processors
IBM Power 7 64 core SMP(Hitachi SR16000)

National Institute ofRadiological Sciences(NIRS)

図 20 重粒子線ガン治療装置 線量計算自動並列化性能（従来手動で 16 コアで 2.5 倍）

2012.5.14. no.265

41

tokugikon

7. まとめ
本稿では、グリーンコンピューティングのために重要な
低消費電力のマルチコアプロセッサのアーキテクチャ及びコンパイラ・API 等のソフトウェア技術、これらをマルチ
メデイア処理、科学技術計算、医療などへ応用した時の、速度向上、電力削減の例を示した。低消費電力のマルチコ
アは今後、スマートフォン等の情報家電、自動車、医療、
サーバ、エクサフロップススパコンなど多くの情報機器で使用されていくと考えられる。低消費電力化でクラウド
サーバ、スパコンによる環境負荷を軽減し、1 週間に一度の充電かつ災害時には太陽光電力などで動作できるスマー
トフォンのような高付加価値製品を開発したり、病気・災害から人命を守れるスパコンなどその重要性は益々高まっていくものと考えられる。
参考文献［1］「マルチプロセッサ」
、日本国特許 第 4304347 号、May.
15. 2009.
［2］「
 マ ル チ プ ロ セ ッ サ 」、 日 本 国 特 許第 4784792 号、Jul.22.2011.
［3］「マルチプロセッサ及びマルチプロセッサシステム」

、日
本国特許

第 4784842 号、Jul. 22. 2011.

［4］「プロセッサ及びデータ転送ユニット」
、日本国特許第4476267 号、Mar.19.2010

profile［5］" MULTIPROCESSOR SYSTEM AND METHOD OFSYNCHRONIZATION FOR MULTIPROCESSOR

笠原 博徳（かさはら ひろのり）

SYSTEM"、8108660（US Patent）、Jan. 31. 2012.
［6］「マルチプロセッサシステム及びマルチグレイン並列化コ1985 年

早稲田大学博士課程了 工学博士
カリフォルニア大学バークレー客員研究員
1986 年 早大理工専任講師
1988 年 助教授
1997 年 教授、現在 理工学術院情報理工学科
1989 年〜 1990 年 イリノイ大学 Center for Supercomputing
R&D 客員研究員
2009 年より IEEE Computer Society 理事。
IFAC World Congress Young Author Prize, 情報処理学会坂井記念特別賞 , STARC（半導体理工学研究センター共同研究
賞 , LSI・オブ・ザ・イヤー 2008 準グランプリ , Intel Asia
Academic Forum Best Research Award, IEEE Computer
Society Golden Core Member Award 受賞。査読付論文 189
件 , 招待講演 104 件 , シンポジウム論文 29 件 , 研究会論文
134 件 , 全国大会論文 154 件 , 特許 32 件（内 16 件既取得）,
新聞・Web 記事・TV 等メディア掲載 443 件等。 経済産業
省・NEDO：情報家電用マルチコア及びアドバンスト並列化
コンパイラ・グリーンコンピューティングシステム等プロ
ジェクトリーダ、NEDO コンピュータ戦略（ロードマップ）
委員長 ,「グリーンネットワーク・システムプロジェクト（グリーン IT プロジェクト）」技術委員長、内閣府：スーパーコ
ンピュータ戦略委員会 , 政府調達苦情検討委員等、文部科
学省：地球シミュレータ（ES）評価委員、 情報科学技術委
員 ,HPCI 計画推進委員 , 次世代スパコン（京）概念設計評価委員・中間評価委員 , ES2 導入技術アドバイザイリー委員長 ,IEEE, 情報処理学会 , ACM 等の国際会議プログラム委員、
高校生科学技術チャレンジ審査委員等歴任。

ンパイラ」、日本国特許第 4082706 号、Feb. 22. 2008.
［7］「コンパイル方法、コンパイラ、およびコンパイル装置」
、
日本国特許第 4177681 号、Aug. 29. 2008［8］"LOCAL MEMORY MANAGEMENT、INFORMATIONPROCESSING DEVICE、PROGRAM CREATIONMETHOD AND PROGRAM"、2459802（GB Patent）、Jan. 04. 2012.
［9］"LOCAL MEMORY MANAGEMENT、INFORMATIONPROCESSING

DEVICE、PROGRAM

CREATIONMETHOD AND PROGRAM"、2478874（GBPatent）、Dec. 28. 2011.
［10］「ヘテロジニアスマルチプロセッサ向けグローバルコンパ
イラ」、日本国特許 第 4784827 号、Jul.22.2011.

tokugikon

42

2012.5.14. no.265