※この記事はASCII.jpからの転載です(文中リンクはASCII.jpの記事に飛ぶことがあります)
消費電力、特にコア数とのベストマッチを考える
締めくくりは消費電力だが、まずはシンプルにシステム全体の消費電力を見ておこう。ラトックシステム「REX-BTWATTCH1」を用い、システム起動10分後の安定値を“アイドル時”、「Prime95」のSmallFFT実行中の最大値を“SmallFFT時”として記録した。
第10世代Coreプロセッサーのうち上位2モデルについては高負荷時の値が2つあるが、高い方はPower Limitのギリギリまでブーストをかけるインテル製CPU特有の仕様によるもので、SmallFFT開始直後から1分程度しか持続しない。それを超えると“SmallFFT時(安定)”の値へと遷移する。こうしてみるとRyzen 5 3600XTと5600Xを除けば、高負荷時はおおよそ200~220Wあたりに収束している。
ここで興味深いのがコア数の多いRyzen 9 5950Xよりも、コア数の少ないRyzen 7 5800Xの方が消費電力が大きいことだが、さらにコア数の少ないRyzen 5 5600Xになると消費電力が一気に減る。これはなぜだろうか?
そこでRyzen 9 5950Xに対して、Prime95のSmallFFTをスレッド数指定で動かした時にRyzenのクロックや内部の電力関係のパラメーターがどう変化するかを試してみた。SmallFFT実行時に「2」と指定すれば2スレッドの負荷がかかるが、今のRyzen環境の場合、2スレッドがちゃんと別個の物理コアに振り分けられる。アクティブコアの数や稼働状況で絞り出されるパワーが違うならば、これで十分観測できるというわけだ。
負荷のかかり具合については「Ryzen Master」を使い、PPTやCPU Core Powerの値については「HWiNFO」を利用した。
SmallFFT中は刻々と数値が変わるため、目測でおおよその安定値を拾ったのが上のグラフだ。まずアクティブコア数が1コアから8コアまでは、コア数を増やすごとに消費電力が増えていく。だが8コア→10コアは消費電力は横ばい、12コア以降はむしろ下がる。パワーリミット(PPTおよびCPU Core Power)は8コアでほぼ天井になるのは良いとして、なぜアクティブコア数が12を超えるとパワーリミットが逆に減るのだろうか?
その答えはRyzenのTDC(Thermal Design Current)とEDC(Electrical Design Current)の“余裕”にある。次のグラフは、先のPPTやCPU Core Powerと同様に、アクティブコア数に対するTDCやEDCの“利用率”を示したものだ。Ryzen 9 5950XのTDCは95A、EDCは140Aとスケールが微妙に違うため、実測値ではなくパーセンテージで比較する。
これで分かる通り、TDCはアクティブコア数が増えるに従い徐々に増えていくが、TDCは8コアアクティブでほぼ目一杯まで枠を使い切る。10コアで完全に熱的な余力がなくなるが、これ以上アクティブコア数を増やすには各コアの仕事量(=クロック)を下げて余力を作るしかない。アクティブコア数が10コアより増えるとPPTが下がるのはこのためだ。CINEBENCH R20でRyzen 9 5950Xの伸びが悪いのも、こうしたTDC/EDCの制約に引っかかって強制的にクロックを下げられてしまうためだ。