電力と性能を行ったり来たり 〜 ラップトップCPUの活用

2024-02-24

コンピュータの処理能力は消費電力との関係が切っても切り離せないものである。

この話は前提としてChienomiの記事「(個人的な)新しいベンチマークメソッド」の情報を参照して欲しい。

現在のメインPCはRyzen9 5950XとRadeon RX7900XTXの構成で、アイドル時で70〜80W程度だが、ウェブブラウザを使っているだけで200W近くいく。 最近のウェブアプリケーションは節操なくCPUを食い尽くす傾向が強いため、ウェブブラウザがめちゃくちゃ重い。 ウェブブラウザ自体がレンダリングにかなりの負荷をかけるが、別にCPUをそんなに使ってまでリッチにする必要のないアプリケーションでも、流行りの手法で作られるとCPUをフル稼働させる。 なお、一番悪いのはYouTubeである。

そのため実用上の消費電力は、ウェブブラウザで負荷がかかった状態(先のページでAtt/Pfmと書かれているもの)に近い。 Powersave governorを用いることである程度抑制できるが、それでも100Wは基本的に超える。 (というか、Powersave governorだとウェブサイトの動作自体だいぶもっさりする。)

基本的な傾向はハードウェア構成や世代にあまり左右されず、だいたい「100W以下に抑えるのは難しく、200Wは越えにくい」あたりになる。 電力性能が良くなっているのにあまり変わらないのは、現在のウェブブラウザの負荷は現代最高峰のCPUを以てしても余裕がないためだ。 また、GPUに高い負荷がかかっているわけではないため、GPUグレードの差もせいぜい20W程度に収まっている。

対してモバイルだと大幅に話が違う。 比較すれば15Wプロセッサと28Wプロセッサは高負荷時の消費電力が全然違うが、それでもデスクトップとは雲泥の差である。

私はディスプレイをたくさん使っていることもあり、基本的にPCを使っている間200W以上、場合によっては500W程度を消費している。 なにか作業をしていて、その作業のために支払わなくてはいけないのであれば仕方がないが、別にそんなに電力ゴリゴリ使わなくても、PCがついていて触れる状態であれば良いということも多々ある。

今回の話の着地は、ラップトップをデスクトップ的に使いやすくする話だけども、話のメインは考察のほうだ。

プロセッサと消費電力の話

現代ではおおまかに「ラップトッププロセッサ」と「デスクトッププロセッサ」の2系統がある。 これは中身が異なるもので、特にIntelは大きな違いになっている。

ラップトッププロセッサはおおまかに

  • モバイルラップトップ向けの15W
  • ハイパフォーマンスラップトップ向けの28〜35W
  • ゲーミングラップトップ向けの35〜45W
  • ハイスペックゲーミングラップトップとミニPC向けの45〜75W

という感じになっている。 名前の付け方としては

Base TDP Intel gen 13 Intel Core ultra Ryzen 7040
15W U U U
28W P U, HS
45W H, HK H HS
45W+ HX H HX

という感じ。 Ryzen 8040シリーズはUが15〜30W、HSが35〜54Wと20〜30W(とても分かりにくい)。

システム消費電力がTDPに従うわけではないが、プロセッサの基本的な消費電力の基準値としてTDPで呼ぶことはできる。

そして、先のベンチマークでも28WプロセッサのRZは他の15Wプロセッサのモデルと比べ、明らかに高負荷のAtt/Pfmの消費電力が大きい。 ただし、Idle/PfmやAtt/Saveの値はあまり変わらない。

このため、前提として「高消費電力のプロセッサは、負荷が高くなったときにより多くの電力を消費して処理性能を高める余地がある」と解釈するのが正しい。

といっても、この解釈は「ラップトッププロセッサの中で」ということであり、デスクトッププロセッサのシステムとはアイドル時でも消費電力の差はかなり大きい。

今はgovernorで細かくコントロールするような時代ではないため、powersaveにすればとにかく電気を使わないことを優先させ、performanceでは必要なら電気を使って処理性能を高めるという使い分けができる。 ただし、performanceでどれくらい電気を使うかということに関しては、どのプロセッサを採用するかによって結構な違いが出るということだ。 powersaveの処理能力はかなり低いので、performanceがどれくらいのバランスかというのは、ニーズに合わせるという意味で重要な要素になっている。

特にIntelは明らかにモバイルプロセッサのほうが効率が良く、魅力的。 それと比べるとAMDはモバイルプロセッサはデスクトッププロセッサほど輝いていない。

ちなみに、Ryzen 8000Gシリーズはモバイルプロセッサベースである。

ミニPC

IntelのミニPCはTファミリーという、35Wプロセッサを積んでいるものが多い。 ただ、Tファミリーはデスクトッププロセッサの省電力版なので、モバイルプロセッサほどの輝きがあるかは分からない。 一部は45WのHプロセッサもある。 ごく稀に28WのPプロセッサ搭載モデルも存在はしている。

AMDは基本的にHSかHX。極めて稀にUプロセッサのものもある。

仮にIntelのTファミリーか、AMDのHSを採用すると仮定すると、ミニPCを使うと「デスクトップよりも省電力」「ラップトップよりハイパフォーマンス」というバランスが得られる。

なかなか魅力的に思えるが、そもそもラップトップの省電力性はデスクトップとは次元が違う。 が、ここらへんのミニPCの省電力性はそんなでもない。 HXに至っては、最大消費電力が100Wを越えてしまい、USB給電にした場合はPD EPRでないと動作しない。

だから、消費電力という意味でいうと「デスクトップより一回り低い」くらいに過ぎない。 その代わり、デスクトップに近い性能を持っているが。

高い性能を求めているが、消費電力がインフレしてしまうのは嫌、という一般ユーザー(特にPCを1台しか持たないタイプ)にはおすすめできそうだけど、メインデスクトップの消費電力の高さを補おうとすると、なんか微妙。

個人的には1360Pはめちゃくちゃ良い。 Antutu webはほぼRyzen 5950Xと同じ値が出ていて、シングルスレッド性能がやばいくらい高いことを感じる。 全コアをフル稼働させるffmpegのテストではそこまで高い値ではないけれど、基本的に全コア高負荷状態のときは消費電力が高いのは当たり前の話だし、そもそもラップトップだとこれを長時間やると熱で落ちてしまう。

1360Pだとウェブは(これだけスコア出てるのだから当たり前だけど)まるでストレスがない。 普段遣いでは5950Xと比べても遜色ない。 さらに、powersaveでもそこそこ性能が出ていて、割とストレスなく使える。

15Wの5700Uや10610Uは(どっちも若干古いコアだけど)、performanceのときはストレス少なめ。 powersaveだと、特に5700Uはもっさもさで厳しい。

こう見ると、デスクトップの消費電力が気になる、というレベルまで行っていると、ミニPCの省電力性では物足りない。 電気バカ食いするPCが嫌いで、省電力性も大事にしたいという人が選ぶには良いと思うけど。

ラップトップを転用

これを踏まえて、Ryzen7 7735Uを搭載するミニPC(例えば”4X4 BOX-7735U/D5”)や、1360Pや1370Pを載せるミニPC(例えば “NUC 13 Pro Mini PC”)が欲しいなーと思っていたのだけど、よく考えれば5700Uもまあまあ実用的なくらいの性能はあるわけだし、もうちょっと活用しても良い。

IdeaPadは、私は微妙に気に入っていない。 それは

  • すごいちゃちで、かつぼろぼろ (ネジが脱落したり…)
  • キーボードめっちゃ打ちにくい
  • タッチパッドが反応しないことが多々ある
  • 画面見づらい
  • 電源落としててもめっちゃバッテリー減るので、使いたいときに使えない
  • バッテリー持ちがめちゃくちゃ悪い (バッテリーが少ないせいもある)
  • 17インチの取り回しが、思った以上に困っている

あたり。

それでも、存在していることで助かっている面は大きいので、買ったことを後悔するほどではないんだけど、積極的に使いたいと思えないんだよなーと。

しかし、よく考えてみれば、だったら消耗して駄目になっても(例えばバッテリーが限界を迎えたとかで)そこまで悲しくないし、積極的に使う気にならないから別途ミニPCを買おう、と考えるくらいなら、ちょっと負担のかかる使い方をしてもいいはずだ。 それで駄目になってしまったらその時に考えればいいわけだし。

というわけで、IdeaPadをミニPCっぽく使うことにした。 こうなると過充電になってしまう機会が増えるが、それくらいの消耗は許容できるだろう。 一応、過充電にならないように注意はするし。

ついでに、ラップトップをミニPCのようにする場合、同じ環境でデスクトップ使いをしたり、ポータブルにしたり切り替えられるという余地もある。 ケーブルのつけ外しは面倒だけど、設定の同期はもっと面倒なので、これはこれで1台2役感はある。 私の場合は、皿洗いするときに動画を見ながらやることが多いし、メインPCでWindowsを使ってるときは調べものなどはWindowsでやりたくないのでサブとしてラップトップのLinuxを使ったりするため、先の「存在していることで助かる」状況があり、そのためにラップトップは結局のところ必要になる。 これをシチュエーションに応じてミニPC的な使い方とラップトップ的な使い方を切り替えられるのはなかなか良い。

ラップトップをCinnamonでミニPC化

前提

ミニPC的に使うための基本的な話は、ディスプレイ、キーボード、マウスなどを繋げば良い。 単純な話だ。

が、そうすると17インチのラップトップがやたら場所を取るという問題が発生する。 これは家ではこうした機器を接続して使っていて、そのまま外に持ち出すというスタイルの人でもあるあるの話だろう。

この解決方法としては、まずリッドクローズでスリープに入らないようにすれば、ラップトップを閉じた状態で使えるようになり、設置場所の問題が解消できる。

が、単にそれだけだとラップトップのディスプレイにアクセスできなくなるため、外部ディスプレイをつないだらラップトップのディスプレイは切るようにする必要がある。

ついでに、IdeaPadやDynabookのように、リッドがゆるゆるのラップトップは、閉じた状態で運用するようにするとスリープからいつの間にか復帰してしまっていることが多いため、リッドオープンで復帰しないようにしたい。

スリープに入らないようにする

Cinnamonでは「電源設定」「電源」のところに「ふたを閉じたとき」という項目があり、ここが「サスペンド」になっているとスリープに入る。

これを「何もしない」にしておけば良い。

ディスプレイの切り替え

Windowsだと外部ディスプレイ接続時にラップトップのディスプレイを切るという設定は簡単にできるけれど、Cinnamonはちょっと違う。

Cinnamonの場合、ディスプレイの状態は接続されているディスプレイ構成ごとに記憶している。

なので、使いたいディスプレイを接続してから、ディスプレイ設定で本体ディスプレイをオフにして適用すればOK。 次に同じディスプレイを接続したときには、自動的に本体ディスプレイは切られるし、外したらもとに戻る。

ただし、スリープから戻ったときはうまくいかないこともある。 この場合はリッドを開いてディスプレイケーブルを挿し直すと良いだろう。

スリープから復帰しないようにする

これは2種類方法がある。

もっとも良いのは、そもそもリッドオープンのスイッチを無効にすること。 リッドオープンのハンドリングは異常なバッテリー消耗につながる場合があり、一方で無効にした場合の影響は単にボタンひとつ押すだけなので、無効にすれば話が楽になる。

これはUEFIの設定画面から変更できる場合もあるが、できない場合もある。 機種次第だ。

もうひとつの方法は、Linux側でリッドオープンのイベントを受け取ってもwakeしないようにすること。 これはsysfsで設定可能で、対象となるバスはdmesgで確認できる。

# dmesg | grep -i lid
...
[0.884956] input: LidSwitch as /device/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input1
...

この場合は/device/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/power/wakeupがソレ。 これをcatするとenabledという値が得られる。

そして、disabledを書き込むと無効になる。

# echo disabled > /sys/device/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/power/wakeup

が、IdeaPadは無理。 そもそも/proc/acpi/wakeupLIDがなく、wakeupを(電源ボタンを含めて)全部無効にしても、カーネルオプションとしてacpi.no_ec_wakeup=1を渡しても機能しない。

IdeaPadが電源を切っててもバッテリーを消耗するのと関係があるのかもしれない。

問題点

USBポートの数がちょっと問題だ。

IdeaPadはUSB 2.0 Type-A, USB 3.1g1 Type-A, USB3.1g2 Type-Cの3ポートがあるが、これでも多いほう。 設置の向きによってはポートが隠れてしまう。

ハブを使えばいいと思うかもしれないのだけれど、USBハブはキーボードやマウスがうまく動かなくなるということが結構あって、難しい。

また、イーサネットポートやHDMIポートを自前で持っていないケースも結構ある。

ミニPCはかなりインターフェイス数はかなり確保されている場合が多いため、ここはミニPCと差を感じるところではある。

電源に接続したり外したりというのもちょっと面倒。

結論

ミニPCは多くのデスクトップユースにおいて必要とされる性能を満たしつつ、控えめな消費電力を実現する。 AMDの場合はデスクトッププロセッサ(非APUの7000シリーズのこと)よりもグラフィック性能が高いという点も評価できる。

ただし、高性能なミニPC用のシステムは「わずかな電力」とは言えない電力を消費する。 ブラウザを中心とした利用であれば28Wプロセッサのほうが魅力的。

28WのミニPCは希少なので、高効率なデスクトップとしてラップトップを使うというのは現在において現実的かつ有力な選択肢。

ただし、ラップトップを利用するとインターフェイスの少なさから利便性が下がる。 特に、イーサネットポートやHDMIポートを持たないモデルの場合は影響が大きい。

ラップトップをデスクトップとして使う場合は、シェルを閉じたときにスリープにならないようにして、シェルを閉じて使うのが使いやすい。