世界を動かす技術を、日本語で。

HNに聞く: なぜx86はAppleのMシリーズに追いついていないのか?

273日前

概要

  • M1 Proの高効率・静音性への満足感
  • Framework 13 (Ryzen AI 340)でのバッテリー・発熱に対する失望
  • TSMC N4Pプロセスの理論的な効率向上
  • x86アーキテクチャとARMアーキテクチャの効率差への疑問
  • 今後x86がARMに追いつく可能性についての考察

M1 ProとFramework 13の実使用感の違い

  • M1 Pro は2020年発売にも関わらず、 AndroidエミュレータiOSシミュレータ複数のDockerコンテナ 同時稼働でも静音・高効率
  • バッテリー寿命 は若干低下したが、今なお十分な持続力
  • 新たに選択した Framework 13 (Ryzen AI 340) では、 バッテリー持ち・発熱 に明確な不満
  • Chromeでタブを多く開くと底面が 高温 になり、YouTube動画再生で ファンが頻繁に作動
  • 使用感としては「古いIntel MacBookに戻ったような印象」

技術的背景:TSMCプロセスと期待値

  • Ryzen AI 340は TSMC N4Pプロセス (M1のN5より新しい)
    • N4PはN5比で 性能+11% または 消費電力-22%トランジスタ密度+6% (TSMC発表)
  • しかし、実際の バッテリー持ち・発熱 は期待値に届かない現状

x86アーキテクチャとARMアーキテクチャの効率差

  • ARM(Apple Silicon) はSoC設計の最適化、効率重視のカスタム設計
    • CPU・GPU・メモリ・I/Oを一体化した 統合チップ設計
    • macOSの ソフトウェア最適化 も効率向上に寄与
  • x86(AMD/Intel) はレガシー互換性や複雑な命令セットによる 消費電力増加
    • 汎用性は高いが、 効率面ではARMに劣後
  • Linux環境 は特に省電力・ファン制御最適化が難しく、 Windowsの方がハードウェア制御が進んでいる場合も多い

x86がARMに追いつく可能性と今後の展望

  • x86の高効率化 には限界があり、今後もARMとの差はしばらく継続見込み
    • Intel Lunar LakeAMD Strix Point など次世代チップでの改善期待
    • ただし SoC全体の設計思想OS・ソフトウェア最適化 も重要要素
  • Windows on ARMLinux on ARM の普及・最適化進展も今後の鍵
  • バッテリー持ち・静音性重視 なら現時点では Apple Silicon搭載MacBook が依然優位

Linux環境の最適化に関する補足

  • Linuxディストリビューションカーネルバージョン による省電力・ファン制御最適化状況の違い
  • tlppowertop などの電源管理ツール導入検討
  • Windows環境 での比較テストもおすすめ

まとめ

  • 現時点でのx86ノートPC は、バッテリー効率・静音性で Apple Silicon搭載MacBook に及ばず
  • 今後の技術革新 に期待しつつ、用途や環境に応じた選択が重要
  • Linuxの電源管理最適化Windowsでの検証 も一案

Hackerたちの意見

彼らは大きくて高価なチップで、電力効率に重点を置いてるんだ。AMDやIntelの高価なチップは、パワー範囲を最適化する傾向があるから、効率ではあまり競争力がないんだよね。一方、より電力効率の良いチップはサイズやコストに最適化されてる。もし多くのダイ面積(これが直接コストに影響する)を使うことを厭わなければ、パワー・パフォーマンス・エリアの三角形の他の二つの要素で良い数字が得られる。問題は、Appleの競合他社の市場ポジションが、そんな大きくて高価なチップ(特にCPUコア)をモバイル向けの電力範囲で作るのがあまり意味がないってことなんだ。

コアごとに見れば、AppleのパフォーマンスコアはAMDのZenコアと同じくらいの大きさなんだ。だから、彼らが速くて効率的なのは大きいからだけっていうのは神話だよ。Appleのシリコンチップが大きいのは、速いGPUを取り付けてるからなんだ。もしx86チップにディスクリートGPUのダイを加えたら、Mシリーズと同じかそれ以上の大きさになるよ。IntelのLunar Lakeを例に挙げると、M4より物理的には大きいけど、CPU、GPU、NPUは遅くて、効率もかなり悪い。もう一つの比較はAMDのStrix Halo。M4 Proより約1.5倍大きいけど、効率もSTパフォーマンスもGPUパフォーマンスも悪い。MTパフォーマンスは少しだけ良いけどね。

一つの要因を指摘するのは難しいけど、全体的にAppleのハードウェアとソフトウェアは非常に最適化されていて、密接に結びついてるし、各コンポーネントは業界で最高のものが揃ってる。量を売ることで利益を上げて、最適化されたサプライチェーンで安く販売してるんだ。Frameworkは量がないから、モジュラリティに最適化されてるし、ソフトウェアはハードウェアに対してあまり最適化されてない。一般的なコンピュータとしては、Appleに勝つのは不可能で、それを変えるにはパラダイムシフトが必要だね(スマートフォンの導入のように全く新しいプラットフォーム)。Frameworkは、柔軟なハードウェアやカスタムオペレーティングシステムを楽しむ人向けの専門デバイスとしての役割がある。

「量を売ることで利益を上げて、最適化されたサプライチェーンで安く販売してるんだ。」競合他社の製品との統合を拒否して、自社のエコシステムを買わせるような悪質な手法で得ているお金はどうなるの?アプリを動かすために電話をかけることや、Mac OSでも高いアプリストアの手数料、大規模な修理妨害行為については?

OSや配信チェーンの大部分をコントロールしていると、数十億ドルを投じて自分のニーズにぴったり合ったチップを作ることも考えられなくはないよね。実際、Appleはまさにそうしたわけで、これにはかなりの時間がかかったと言える。面白いのは、誰もがx86がARMチップに取って代わるとは思ってなかったこと。これって、Intelのマーケティングから来る企業バイアスだったのかもしれないね。彼らはその辺りが得意だから。

バッテリー効率は、技術スタック内の小さな最適化の積み重ねから来ていて、そのほとんどはCPUをできるだけ使わないことに集約されるんだ。だから、命令セットアーキテクチャやプロセスノードは、バッテリー寿命に関してはあまり重要じゃない。CPUをフルロードして、AI340が固定のワークロードを処理するのにどれだけエネルギーが必要かを計算してM1と比較すると、似たような結果が出ると思うけど、それはブレンダーのレンダリングや大規模なコンパイル、ゲームをする時にしか関係ない。例えば、M1 Airのバッテリー寿命のゲームベンチマークを見てみて:https://www.youtube.com/watch?v=jYSMfRKsmOU。2.5時間はx86ノートパソコンから期待されるくらいで、ここで比較しているfw13よりも悪いかもしれない。でも、設定を下げてM1のCPUとGPUがほとんどアイドル状態になると、10時間以上持つんだ。もう一つの例は、約5年前のモバイルQualcommチップ。AMDのAI340よりも劣るプロセスノードで、ずっと遅くて、ワットあたりのパフォーマンスもかなり悪いけど、ほとんど熱くならず、電力をほとんど消費しない。要するに、M1はかなり速いけど、バッテリー寿命が良い理由はCPUコア以外のすべてに関係してるんだ。それがAMDとIntelが見落としているところ。 > 「Chromeでタブを開きすぎると、ノートパソコンの底が熱くなるのを感じるし、YouTube動画を開くとファンが回り始めることが多い。Linuxではハードウェアアクセラレーションが欠けていることが結構多いから、特に動画デコードで問題になることがある。fw16でGPU動画デコードを有効にしなきゃいけなかったけど、YouTubeではファンに気付かなかった。」

「要するに、M1はかなり速いけど、バッテリー寿命が良い理由はCPUコア以外のすべてに関係してるんだ。それがAMDとIntelが見落としているところ。」良い例がAndroidカーネルだね。これと標準のLinuxカーネルとの最大の違いは電力管理なんだ。プロセススケジューラに至るまで、多くのサブシステムがバッテリー寿命を改善するために修正されて調整されてる。

「ほとんどはCPUをできるだけ使わないことに集約されるんだ。」モバイルプラットフォームでは、Appleは逆にレース・トゥ・スリープを推奨してるよ。強力なコアで計算をできるだけ早く終わらせて、全体のチップが早く、頻繁にスリープに戻れるようにしてるんだ。

Linuxではハードウェアアクセラレーションが欠けていることが結構ある、特に動画デコードに関して。正直言うと、Linux自体にはハードウェアアクセラレーションがあることが多いけど、ブラウザのベンダーはOS/ハードウェア/ドライバーの完璧に動作する組み合わせ以外ではGPUレンダリングを無効にしがちで、Linuxでのテストはあまり行われていない。ほとんどの場合、about:configでGPUレンダリングを強制的に有効にして、自分で試してみることができるし、繰り返しクラッシュしない限りそのままでいいよ。

x86アーキテクチャにとっては、(2^10)-24のカットで死ぬような感じだね。

LinuxではCPUのターボブーストを無効にしてる。ノートパソコンのファンはほとんど回らないし、システムは一般的に涼しい。開発やコンパイル作業をしても、追加のパフォーマンスはほとんど必要ない。10年物のノートパソコンだから、ファンが常に回らないように最大クロックを95%に制限してる。人それぞれだろうけど。

要するに、M1はかなり速いけど、バッテリー寿命が良い理由はCPUコア以外のすべてに関係してる。AMDとIntelが欠けてる部分だね。これは本当じゃない。確かに、アンコアの消費電力はすごく重要だけど、CPUの負荷効率も同じくらい重要だよ。CPUがタスクを早く終わらせられれば、その分早くスリープに戻れる、つまり「スリープ競争」だね。Appleシリコンは、負荷時にAMDやIntelのCPUよりも2〜4倍効率が良くて、最高速度も高い。Appleのノートパソコンがもっと効率的に感じる理由の一つは、真のbig.Littleデザインを採用しているからで、AMDやIntelの小さいコアは実際には電力効率ではなく面積効率のために設計されてる。Intelの場合は、MTベンチマークで勝つためにできるだけ多くの小さいコアを詰め込んでるけど、実際のアプリケーションでは、小さいコアはほとんど役に立たない。ほとんどのアプリは多くの遅いコアよりも少数の速いコアを好むからね。

低消費電力の大きな理由はiPhoneだよ。Appleは何年もかけて、電話用のチップの効率とパフォーマンスを徐々に改善してきた。IntelやAMDはデスクトップ中心だったから、電力効率が目標じゃなかった。Appleのチップがノートパソコンに移行できるくらい良くなったとき、x86は同じレベルにはいなかった。また、iPhoneは史上最も利益の出る製品だと思うけど、そのお金を研究開発にたくさん注ぎ込んで、Intel、AMD、ARMからトップエンジニアを引き抜いて、最高のシリコンチームを作ったんだ。

なんと、AppleのCPUはAppleソフトウェアのGC呼び出し(Retain/Releaseオブジェクト)に最適化されてる。最適なパフォーマンスと電力効率を求めるなら、ハードウェアとソフトウェアの両方を所有する必要があるみたい。汎用CPUは負けてる感じだね。Intelはデスクトップとモバイル用のOSを発明して、それに特化したチップを設計すべきかも。

設定を下げると、特に「ほとんどアイドル」状態にすると、体験が悪くなるよ。比較にならない。

それはつまり、M1マシンをLinuxで使うと、IntelやAMDのような体験になるってことだね。macOSのM1の体験とは違う。

それはChromeの問題だね、特にStrix Haloのような強力なプロセッサでは。AppleはSafariの開発において電力消費に非常に厳しいけど、Chromeは未割り当てのリソースをすべて使うように設計されてる。デスクトップコンピュータではこれがうまく機能して、Safariより速くなるけど、モバイルプラットフォームではそれほど大きな差はなく、かなりの電力を消費する結果になる。多くのシンプルなウェブサイトは、フォーカスしていなくてもCPUコアをフルに使ってしまうし、タブを複数開くとそれが積もっていく。Strix Haloプラットフォームでは、パフォーマンス優先設計だから、Chromeが利用できるリソースが多くなる分、さらに悪化する。LinuxでSafariに最も近いブラウザはFalkonだね。互換性はSafariよりもさらに劣るから、使えないサイトも多いけど、使えるサイトではバッテリー使用量が桁違いに少なくなることがある。Chromeの代わりにThoriumを使うことをお勧めするよ;こっちの方が良いけど、結局はChromiumだから、あまり電力は節約できない。Chromium以外では動かないページで使ってる。Chromeはタブをサスペンドできないし、調べた限りではそのためのプラグインも見当たらなかった。リソースが足りないとプロセスを終了させて、戻った時にページを再読み込みするだけなんだ。Linuxにはプロセスをサスペンドする機能があって、使っていない時にChromeをサスペンドすれば、かなりのバッテリー寿命を節約できるよ。GUIは知らないけど、ほとんどのウィンドウマネージャーはコマンドにキーボードショートカットを割り当てるのが簡単だよ。Chromeを使っていない時に閉じたり再オープンしたりしたくないなら、次のコマンドを実行してみて(名前は無視して、プロセスを終了させるわけじゃないよ):killall -STOP google-chrome。使いたくなったら、次のコマンドを実行して:killall -CONT google-chrome。これはどのアプリケーションにも使えるし、サスペンド中はRAMの使用量は変わらないけど、RAMの読み書きで電力を消費しなくなるし、CPU使用率もゼロになる。ウィンドウはそのまま開いていて、ウィンドウマネージャーが通常通り処理するけど、中身は更新されなくて、クリックしても何も反応しないよ。

自分が見た限り、Safariとの比較はもう当てはまらないね。https://birchtree.me/blog/everyone-says-chrome-devastates-ma... 他のプラットフォームでは違うかもしれないけど。

俺も2020年のMacBook Air M1(16GB RAM、512GB SSD)を使ってるけど、同じ経験をしたよ。3年後にM3 ProのMacBook Proにアップグレードしたんだ。こっちはメインマシンとして使ってて、TB4ドック経由で2つのディスプレイを接続してる。IT業界で働いてるから、会社の新しいマシンがデスクに届くんだけど、OPと全く同じことを観察したよ。新しいマシンは、速くてうるさくて熱くてバッテリー持ちが悪いか、遅くて「温かい」けどバッテリー持ちが普通かのどっちか。M1 Airと競えるビジネス用のラップトップは、ARM、AMD、Intel問わずまだ見たことがないし、M3 Proなんて言うまでもない!それに、クソみたいなLenovoのドックの問題もあるし。LinuxをインストールしてもWindowsをインストールしても関係ない。面白いのは、同僚の何人かがMacBook AirやProを注文して、WindowsやLinuxを使ってParallels経由で仮想マシンを動かしてること。考えてみて:Windows 11やLinuxをVMで動かす方が、LenovoやHP、Dellのビジネスマシンでネイティブに動かすよりも速くて、サクサク動いて、静かで、バッテリー持ちもいいんだよね。まあ、個人差はあるけど、今の時代、LinuxやWindowsを使いたいとしてもMacに代わるものはないと思うよ。

俺のLinux設定が非効率的かもしれない そうだね、動画がクーラーを回すから、LinuxのGPU設定に問題があると思うよ。それを修正できれば改善するはず。もう一つ、LinuxのChromeはバックグラウンドプロセスや非効率なレンダリング、ディスクIOで異常に電力を消費するから、最新バージョンにアップデートして「メモリ節約」を有効にするとかなり助けになるかも。別のスケジューラに切り替えたり、割り込み率を下げたりするのも効果があると思う。俺の現在のノートパソコンのLinuxは、Windowsに比べてバッテリー持ちが12分の1になったけど、いくつかの最適化で6分の1くらいには改善したよ。まだまだ悪いけどね。 > x86はARMアーキテクチャに追いつけないの? うん、そうとも言えるし、そうでもないとも言える。x86は本質的に非効率的で、過去20年間の進歩は、計算をより進んだ効率的なコプロセッサにオフロードすることに関するものだった。これがGPUやM.2のDMA、Ethernetコントローラーを生んだんだ。とはいえ、特にx86がバッテリーを無駄にしているとは考えにくい。むしろLinuxのせいだと思うし、一部のCPUでCPUの周波数や電力ドライバーが正常に動作していないんじゃないかと疑ってるけど、どう修正すればいいのかは全くわからない。

x12やx6はちょっと信じられないな。何かが非常におかしい。

電力プロファイルの設定はどうなってる?バランスかパフォーマンスか?powertopをインストールして、何が起こっているのか見てみて。どのディストリビューションを使ってるの?新しいAMDチップ用のLinuxドライバーは、チップが新しすぎてダメかもしれない。一般的に、ノートパソコン用のLinuxドライバーはWindowsに比べてひどいからね。俺の11世代のWiFiも、最新のカーネルで電力節約を無効にしてもまだ正常に動作してないんだ。

まず、Appleはハードウェアに合わせてソフトウェアスタックを最適化するのがすごく上手だよね。これは、幅広いハードウェアをターゲットにしている他の企業にはできないことだと思う。Appleのハードウェアのスケールを考えると、さらに印象的だよ。同じカーネルがWatchとMac Studioで動いてるんだから。次に、x86プラットフォームには多くのレガシーがあって、x86の各操作はx86命令からRISCのようなマイクロオペレーションに翻訳される。これはAppleが支払う必要のない本質的なペナルティで、これがRosetta 2が「ほぼネイティブ」のx86パフォーマンスを実現できる理由でもある。両プラットフォームはx86命令を翻訳してるからね。三つ目に、命令デコーディングのステップを除外しても、アーキテクチャの違いがいくつかある。Apple Siliconは巨大なアウトオブオーダーバッファを持っていて、8幅対4幅のx86なんだ。そこから実際のロジックや設計、パッケージングが異なる。AMDのRyzen AI Max 300シリーズは、統一メモリや全てをパッケージに載せる技術を使ってAppleに近づいているけど、他の違いのせいで負けてるんだよね。結局、もし人々がクレイジーな効率を求めるなら、Appleは素晴らしい答えで、しっかりしたパフォーマンスを提供してくれる。もし人々が絶対的な最高パフォーマンスを求めるなら、Ryzen ThreadripperやEPYC、あるいはハイエンドのAMDチップが素晴らしい選択肢だと思う。

AppleのCPUは命令をマイクロオペレーションにデコードするよ。 https://dougallj.github.io/applecpu/firestorm.html

まあ、Mシリーズが「そんなに速い」と見えるのには大きなアーキテクチャ的理由があって、それが統一メモリなんだ。これによって、非統一メモリアーキテクチャのチップが常に行っているバッファ間のデータコピーを完全に排除できる。Mシリーズのチップはデータコピーを完全に排除するアーキテクチャを持っていて、データがどこにあるかを参照するだけで済むんだ。

MacBookのディスプレイとFrameworkラップトップの効率の違いって何なんだろう?CPUやGPUはかなりの電力を使うけど、普段は100%稼働してるわけじゃないよね。でもディスプレイは常に電力を使ってるはずで、昼間は高い明るさで使うことも多いし。MacBookは(全部?)高解像度ディスプレイを搭載してるから、Frameworkの13インチIPSよりもずっと電力を食うはず。ProモデルはミニLEDを使ってるから、さらに電力が必要だし。これについてLLMに統計を聞いてみたんだけど、Claude Sonnet 4がVS Codeを通して言ってたのは、俺のMacBookのディスプレイは「オフィスワーク」の時にCPUと同じか、それ以上の電力を消費するってこと。だけど、M1 Maxの16インチは、今年仕事で使ってるやつよりもずっと長持ちしてる気がする。これらの統計がどうやって出されてるのか知りたいな(それとも妄想なのかな…)。MシリーズのMacではディスプレイの電力使用量を知る方法がないみたいだから、ディスプレイオフと100%明るさのディスプレイオンでテストを考えないと、電力使用への影響を知るのは難しいね。