週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

Meteor Lakeはフル稼働時の消費電力が大きい可能性あり インテル CPUロードマップ

2023年09月04日 12時00分更新

従来の省電力アルゴリズムはP-stateでの動作状況で判断

 そもそも従来の省電力アルゴリズムは、DVFS(Dynamic Voltage and Frequency Scaling)に基づいて、動作周波数に応じて電圧を変化させることで最適な消費電力に抑えるのが骨子であり、その際に動作周波数を上げる/下げるの判断基準になるのが、P-stateでの動作状況、という話であった。

Meteor Lakeはフル稼働時の消費電力が大きい可能性あり

動作周波数を上げる/下げるの判断基準。実はこのスライドは当初は公開されていたのだが、講演時間の関係で省いたのか、最終版ではなくなっていたりする。といってもなにか妙なことが書いてあるわけでなく、一度は正式に公開されていたもので、説明にも便利なのでそのまま掲載する

 要するに1998年のSpeed Stepがその大元であり、実装がより巧みになったなどの改良はあるものの、基本的にはCPUの負荷率に応じ、負荷が高まったら動作周波数を引き上げ(これに伴い電圧を上昇)、負荷が減ったら動作周波数を引き下げる(この際には電圧を下げる)仕組みである。

 理屈は簡単だが、この仕組みの欠点は「負荷が上がってから動作周波数(と電圧)が上がるまでの間にタイムラグがある」点だ。

Meteor Lakeはフル稼働時の消費電力が大きい可能性あり

オレンジが負荷、青が動作周波数(と電圧)を模していると考えてほしい

 つまり、あるコアが最初は待機状態であるが、急に負荷が上がるとまず稼働率が100%になる。ただこの時点では、「待機状態の低い動作周波数では100%負荷になるけど、動作周波数が上がるとそれほどの負荷ではない」のか「最高動作周波数でも100%負荷になる」のかの判断は付かない。あと、割り込み処理のように一時的に負荷が高いがすぐ終わる可能性もある。

 したがって、通常負荷が100%になってもわずかな時間はそのまま維持して負荷状況の変動を見る。この間も100%に張り付きっぱなしであれば、これは本当に負荷が高くなったと見なして動作周波数と電圧を引き上げるわけだ。

 余談ながら、上の画像ではいきなり動作周波数が引き上げられているが、実際はもう少しステージがある。というのは動作周波数の方はベースクロックに対する倍率を変化させるだけなので、上げるのはそう難しくない。

 実際にはいきなり動作周波数が大きく変わると、回路の誤動作が起きる場合があるので段階的に上げるのだが、それでもそれぞれの段階に要する時間はそれほど長くない。

 しかし、電圧の方は外部のVRMを操作する関係で、急に0.6Vから1Vまで引き上げるわけにはいかない。

 少し古い情報だが、インテルのVRM 11.1の仕様書によれば、電圧の変動は2.5マイクロ秒ごとに12.5mV刻みとされており、0.1V変化させるのには20マイクロ秒ほどを要する(最新のVRMはもう少し高速だと思うが)。

 この数字のままでは0.6Vから1Vに引き上げるのには80マイクロ秒ほど必要で、これはGHzオーダーで動作するCPUにはかなりの長期間になる。要するに、電圧を上げ始めた頃には負荷が軽くなり始めている可能性もあるわけだ。

Meteor Lakeでは動作周波数や電圧変更をAIが判断する

 では先行して少しでも負荷が上がったら、動作周波数や電圧をすぐに引き上げるか? というと、今度は無駄に動作周波数と電圧が上がってしまう可能性がある。早すぎると無駄が多く、遅すぎると性能の足かせになるわけだ。

 これは逆に動作周波数や電圧を落とす方も同じだ。少しでも負荷が下がったら落とすか、負荷が下がって一定時間たったら落とすかは、性能と消費電力の両方に影響を与える。

 結果、どの程度のタイミングで動作周波数や電圧を変化させるかは、性能と消費電力のトレードオフの関係にある。この判断にAIを使うようにしたのが、今回の発表の骨子である。

Meteor Lakeはフル稼働時の消費電力が大きい可能性あり

どの程度のタイミングで動作周波数や電圧を変化させるかをAIが判断する。AIだけで判断しているわけではなく、AIも使っている程度の話だろう

 具体的には、ワークロードタイプ、つまりどんなタイプの処理をしているのかを、Idle/Fixed QoS/Sustained/Burstyに分類し(この分類にAIを利用しているものと思われる)、それぞれのタイプに応じて動作周波数の変更や電圧制御をすることで、性能を犠牲にせずに消費電力を10~20%下げられたとしている。

Meteor Lakeはフル稼働時の消費電力が大きい可能性あり

赤がAIなしの従来方式の制御、オレンジがAIを利用した制御で、縦軸が消費電力となる

 Idleは無負荷状態、Sustainedは長時間のワークロードが発生している(例えばExcelで巨大なワークシートの再計算をしているなど)、Burstyは割り込み処理など、Fixed QoSはおそらくだがOSのサービスなど「一定時間内に一定の処理量を必要とする」ものと思われる。

 ちなみにこのグラフはThread Directorが絡まない、つまりE-Coreのみ(かP-Coreのみか)での話であり、実際にはP-CoreとE-Coreのどちらを使うかというThread Directorへの指示も実際には絡んでくるものと思われるのだが、そのあたりの詳細は今回は未公開だった。いずれMeteor Lakeが正式発表された後あたりには詳細が公開されるかもしれない。

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事