Rabbit Note

技術的な事柄をメモしていきます.

ARM は本当に消費電力が小さいのか

最近,スマートフォンやタブレットでの躍進が著しい ARM.その要因の一つとしてよく取り上げられるのが低消費電力.

そこで気になるのが,どの程度電力効率が優れているのか.今回は,そのあたりを定量的に分析した論文をご紹介.

Power Struggles: Revisiting the RISC vs. CISC Debate on Contemporary ARM and x86 Architecturs [キャッシュ]
http://research.cs.wisc.edu/vertical/papers/2013/hpca13-isa-power-struggles.pdf

x86 vs ARM

特定のプロセッサではなく,x86 と ARM に対して総合的に電力比較をするのは難しいため,この論文では命令セットの優劣に対象を絞っています

実際のプロセッサ性能に大きな影響を与えるマイクロアーキテクチャにも触れられていますが,深入りせず,意図的に比較対象外となっていること注意.


なお,最初にお断りしておきますと,論文タイトルはカッコイイですが,分析が浅いので正直興味深い内容はでてきません.あしからず.

比較の対象

比較に使われたプロセッサは,次の 4 つ.

  • Sandybridge Core 2700
  • Atom N450
  • Cortex-A9 OMAP4430
  • Cortex-A8 OMAP3530

それぞれの仕様概要を下図に示します.

比較対象

この時点で違和感をもった方もいるかと思います.これらのプロセッサは仕様に大きなばらつきがあります.例えば,周波数についていうと,下は 0.6 GHz,上は 3.4Hz と 6 倍近くの差があるし,マイクロアーキテクチャも異なります.そのため,そのまま比較することができません.

この論文では,これらの差を順々に取り除いていって,命令セットの比較にフォーカスしています.個人的には,荒削りながらもこれらのステップがこの論文のハイライトだと思っています.

マイクロアーキテクチャの影響

本題に入る前に,まずマイクロアーキテクチャが処理速度におよぼす影響について検証します.

普通,速度は時間で比較しますが,プロセッサ毎の周波数の違いを取り除くため,処理にかかったサイクル数を比較します.それが下図です.

サイクルカウントの比較

A9 と i7 を比較すると,全てのベンチマークで A9 の方が 2 倍以上クロックを消費しています.この要因はどこにあるのでしょうか?

A9 と i7 のマイクロアーキテクチャを比較すると,A9 は同時に 2 命令を実行可能なのに対し,i7 は倍の 4 命令実行することができます.命令レベルの並列性が十分引き出せるとすると,この差がそのままクロック数に現れていると考えられます.

ベンチマークによって 2 倍以上の差がでているものもありますが,これらについては,下図のように説明できるようです.いずれもマイクロアーキテクチャの差がその要因です.

サイクル数差の要因

なお,A9 と i7 のマイクロアーキテクチャには下図のような差があります.

マイクロアーキテクチャ比較

読んでいて面白かったのが,処理した命令数の比較.同じベンチマークを実行したときの比較は下図のようになります.

命令数の比較

CISC である x86 と RISC である ARM でほとんど差がありません.どうやら,最近のコンパイラは x86 であっても RISC ライクな命令を好んではいているようです.

消費電力比較の準備

続いて本題の消費電力比較に入っていきます.比較にあたり,プロセスおよび周波数のスケーリングを行っています.

プロセスのスケーリング
45nm プロセスに換算しています.具体的には,2007 ITRS の記述に基づき,65nm のプロセッサに対しては 0.8 を掛け,32nm のプロセッサに対しては 1.3 を掛けています.
周波数のスケーリング
1GHz に換算しています.換算にあたり.i7 については 20% を周波数に依存しない電力だと仮定し,それ以外のプロセッサの電力はすべて周波数に比例すると見なしています.そして,A8 には 1.2 を,Atom には 0.8 と,i7 には 0.6 を掛けています.

また,CPU コア電力の算出は,次の 2 つの測定の差分で行っています.

  • ベンチマーク実行中の基板全体の消費電力.
  • 低消費電力モードでの基板全体の消費電力.

これだと,DRAM とかの消費電力も含まれてしまうような気がしますが.その辺の扱いをどうしているのかはよく分かりません.

消費電力比較

さて,お待ちかねの消費電力比較.まず,ベンチマークソフト実行中の消費した電力をそのまま比較すると下図のようになります.

消費電力比較

i7 が圧倒的に大きな電力を消費しています.

これに対して,前述のスケーリングを適用すると,下図のようになります.

消費電力比較(スケーリング有)

差がすこし縮まりましたが,i7 が圧倒的に大きい状況は同じままです.

さらに,ベンチマーク実行中の消費電力ではなく,ベンチマークを実行するのに消費した電力の総和を比較すると,下図のようになります.

消費電力比較(総和)

傾向ががらりと変わりました.i7 は他のプロセッサと大差がありません.i7 は消費電力の総和で考えれば,電力効率で他のプロセッサに劣っているわけではないのです.

評価対象を,単位時間あたりの消費電力から消費電力の総和に切り替えてるのがポイントです.

別の見方をすると,単位時間当たりのパフォーマンスと消費電力は単にトレードオフの関係にあるだけなんですね.パフォーマンスを上げると消費電力も増えますが,他方で処理は早く終わるので,結局電力の総和は一定になると.

論文では両者のバランスをとることが電力効率の向上につながると述べています.

感想

結論は平凡ですが当たり前の内容を定量的にわかりやすく説明している点で価値があります.

現状では「RISC である ARM は消費電力が小さい」というような誤った主張に触れる機会は少なくありません.その上,最近は ARM プロセッサのマイクロアーキテクチャが多様化してきています.これらを踏まえると,いいタイミングで発表されたと思います.

LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です