2013-04-17

LLVMに電力効率を最適化するコンパイルオプションの議論

[Phoronix] Making A Code Compiler Energy-Aware

LLVMで、電力効率を最適化するコードを生成するコンパイルオプションの可否について議論されているようだ。

コードの最適化というのは、単に実行速度の最適化だけではない。、コードサイズや最適化もある。デバッグモードでのコンパイルも、デバッグに対する最適化と言える。その様々な目的に特化した最適化に、電力効率を加えようという提案だ。

電力効率最適化のコンパイルオプションを加えようという提案は、3年前に出されたが、当時は却下されている。

Bug 6210 – -O3, -Os, -Oe: optimize for running time, binary size, or energy

というのも、ほとんどの場合、電力効率が最大になるコードは、実行速度が最短となるコードである。処理を速く終えることができれば、それだけCPUがアイドル状態に落ちるのも速くできるからだ。したがって、電力効率最適化=実行速度最適化となる。

今回その議論が再燃しているというのは、一部の環境(特にARM SoC)では、メモリの利用の電力消費が相対的に大きく、そのような環境では、計算した値をメモリに記録しておくより、再計算したほうが電力効率が高くなるという状況があるからだという。

No comments: