お知らせ: たぶん古い記事です。
🐦「こんにちは。記事メンテナンスサービスです。」
🐦「この記事は大雑把に 730 日以上は経過しているようです。内容の賞味期限にご注意ください。」
Intel Sunny Cove といい AMD の第 3 世代 Ryzen といい、 令和元年は面白い CPU が揃いました。
sumikko.tokyo もどれにしようかと妄想してました。
ご注意
この記事、長いです。そして妄想成分多めです。更に長くなってきてます。
Rev 2020-03-08
一部表記を修正、CPU キャッシュ周りと電源回路と冷却で追加記載してます。
CPU 選びの着眼点
大雑把に重要なのはこんなのだと sumikko.tokyo は考えてます。
- 予算と値段
- シングルスレッド性能
- 用途にあったコア数
- アイドル時の消費電力と発熱の低さ
あえてこれらに付け加えるとしたら 、
- コア数に見合ったキャッシュと DRAM チャネル数
- 対応マザーボードの入手性
- Intel 200 系列 (Skylake や Kaby Lake用) はあまり流通していません。
- Intel 300 系列には正規の後方互換性がありません(形状が同じ ≠ 互換)。
- AMD Threadripper は初期は TR4 でしたが、 第 3 世代にきて異なる sTRX4 になってしまいました。
- つまり Intel も AMD もソケット規格は数年も経てば変わってます。 マザーボードを消耗品として勘案する場合は入手性か 予備の確保が重要です。
- セキュリティ機能やベクトル演算拡張命令のサポート状況など
シングルスレッド性能
多分一番体感に重要になるのはこれです。
マルチコア時代ですが、ソフトウェアの大半はそんなにマルチコア対応、 特に「並列処理マルチスレッド対応」はできてません。
Note
マルチスレッドといっても、用途が違うスレッドを単に別にしただけのと、 計算を効率化するための並列化とでは全然違います。
用途に会ったコア数
コア数は多ければいいってもんではないです。
- あるプログラムが「並列化」マルチスレッド対応してないなら、 いくらコア数増えても「そのプログラムの速度」は改善しません。
- 複数の別のプログラム (スレッド)が増えても、 今度は DRAM アクセスの奪い合い ≒ キャッシュの奪いあいになります。
- 明確にマルチスレッド「並列処理」対応しているソフトを「常用」しないなら、
2 コアの CPU で十分です。
- 例) 専門家用の画像編集ソフトなど
- Microsoft Windows 10 用途なら 4 コア以上がよいでしょう。
- 通常構成ではバックグラウンドプロセスやサービス群が多量です。
- マルウェア検知だとか毎月のアップデート時にも 快適に使うためにはマルチコアでの CPU パワーも必要です。
コア数とベンチマークスコア
コア数が増えるとベンチマークスコアが上がります。
ベンチマークソフトは「並列処理マルチスレッド」対応してるからです。
個人の運用などで役立つかは用途次第です。
コア数に見合ったキャッシュと DRAM チャネル数
コア数が増えると問題になるのは「DRAM 帯域」と「CPU キャッシュ容量」です。
これってスゴイめんどくさいので、超大雑把に書くと、
- DRAM という倉庫への道路の幅が DRAM 帯域です。
- DRAM という倉庫までの往復時間が DRAM レイテンシです。
- DRAM 倉庫へのアクセスを減らす手段が CPU キャッシュです。
コア数が増えると、それらを各コアが壮絶に奪い合います。
あらゆるデータもプログラムも基本的に 「DRAM という倉庫」にあるわけです。
DRAM は CPU からすると「激おそ」
問題は DRAM 倉庫は CPU にとってすごく遠い こと。 肉眼的に 5 〜 10 cm も離れてますし、回路的にも中継点が多数です。
CPU レジスタ群が手元のノートの開いているページだとすると、 LLC で立って取りに行く本棚のノートのどこかのページ、 DRAM となると別室の書庫のノートくらいに距離があるようなものです。
- 最速の計算は CPU 内のレジスタで完結する場合ですが、 プログラム自体を DRAM から常時ロードする必要があるので 最低でもそれ用のまとめて読み込んで CPU キャッシュに保存する仕組みが必要です。
- マルチコアで同一データへの並列処理ならデータアクセスは限定的ですが、 複数の異なるプログラムが複数コアで動作する場合、 更にややこしくなります。プログラムもデータもある程度の CPU キャッシュが必要です。
だから CPU キャッシュが重要になります。
- 大雑把な目安は CPU 1 コアごとに LLC 1 MB以上です。
- 理想的には CPU コアごとに LLC 2 MB 以上です。
- Intel Core 上位 SKU のコア数と LLC 容量を見れば、 彼ら自身がそれを意識しているのがわかります。
- Core-X や AMD Ryzen は LLC の扱いが異なるので単純比較できません。
- SMT (Hyper Threading など) は Off にしましょう。
- もはやベンチマークスコアを稼ぐための機能でしかないと思います。
- セキュリティ上のキャッシュ周りの脆弱性も大概これが絡みます。
- 論理コアが倍増して倍のプログラムが並列動作するとキャッシュヒット率は下がります。
そういう観点 (SMT を OFF 前提) で評価すれば興味深い SKU 展開です。
- 2 コア SKU なら Pentium Gold G5000 世代 で LLC 4 MB (1 コアあたり 2 MB)
- Core-i3 8300 や 8350K は 4 コア で LLC 8 MB (8100 や 9100 は 6 MB)
- Core-i5 8600 は 6 コアで 9 MB (8100 や 9100 同水準)
- Core-i7 8700 は 6 コアで 12 MB (1 コアあたり 2 MB)
Core-i3 と i5 の SKU では LLC の観点では逆転構造もあったりするわけです。
Note
Intel Core SKU はだいたい 2、4、6、8 コアの SKU 向けに製造方法がありますが、 1 枚のウェハーから切り取れる CPU 製品候補の数、 超微細な回路の製造上の不具合による歩留まりからこういうことになってるのではないかと 勝手に想像しています。
なお Amazon.co.jp などの通販サイトの多くではキャッシュ容量の記載が大雑把です 。
- Intel Core は LLC 容量を記載して、AMD Ryzen 系列はキャッシュ総容量を書いていたりし、 一見すると AMD CPU はすごくキャッシュリッチに見えますが、妥当ではないです。
- 更にいうなら LLC は Intel Core と AMD Ryzen で異なる動作をするので、 LLC 容量の比較でも単純評価できません。
更にややこしいことに、ノートパソコンや小型ベアボーンの Pentium などは マイクロアーキテクチャが異なっていることが多く、 CPU キャッシュ階層構造も異なります。
上の大雑把な参考値は 「Intel Core デスクトップ向け SKU の LLC」に限ると考えてください。
Note
例えば DRAM はデュアルチャンネル (2 つ) のままでコア数増えた第 3 世代 Ryzen。
よく仕様を見てみると L3 キャッシュが「倍増」しているものが上位に並びます。
2 つのマルチコア:真のハイエンドと市販上位 SKU
Intel も AMD も、市販マルチコア CPU とサーバー向けマルチコア CPU で大雑把に別れます。
厳密に言えば Xeon に触れざるを得ないのですが、ややこしいので割愛します。
製造 | ブランド名 | キャッシュやメモリ関連の特徴 |
---|---|---|
Intel | Core | CPU コア毎は少なく、コア「共有」量は多い |
Intel | Core-X | 「凄まじい」CPU コア毎のキャッシュ、DRAM チャネル数 (4〜6) |
AMD | Ryzen | CPU コアもコア共有キャッシュも多い |
AMD | Threadripper | 多めの CPU コア毎のキャッシュと、DRAM チャネル数 (4) |
ややこしくなってまいりました。
- CPU キャッシュといっても、複数の「階層構造」になってます。
- L1 キャッシュ:超早いけど超少ない。ほとんど製品での違いなし。
- L2 キャッシュ:超早くて量もそこそこ。製品ブランドで違う。多い=いい=高い。
- L3 キャッシュ:速いことは速い、量は多い。製品ごとに違う。LLC とも呼ばれます。
- CPU コア専用なのは L1 と L2 キャッシュ。大雑把に。
- L1 と L2 まではほとんどの SKU で似たようなものです。量が違う。
- LLC (L3 キャッシュ) は CPU 全体で共有することが多いです。
- LLC は実装が結構異なります。
- メーカーどころか SKU 単位で違うと思うが吉です。
- 番外編:eDRAM や HBM などの CPU 隣接 DRAM をキャッシュにする場合もあります。
- 市販品ならビデオ処理能力重視ノート向け SKU だとかで iGPU 用の eDRAM。
- HPC (スーパーコンピューター) の ARM 数百〜数千コア SKU とかは HBM 多め。
- DRAM チャネル数は、通常 PC なら 2 つあれば十分です(デュアルチャネル)。
- 8 コア以上の「サーバー向け CPU」で 4 以上が前提になる感じ。
- 動画編集ワークステーションとかでも 4 以上が前提になります。
- 仮想マシン大量っていう場合は、用途と各仮想マシンの負荷によります。
- 日常利用するソフトウェアが GB 単位のデータを扱う場合。
要は「超多量の異なるプログラムが並列動作する場合」か 「扱うデータサイズが単純に大きすぎるクリエイター向けワークステーション」 とかなら、4 以上の DRAM チャネルを想定せざるを得ない感じです。
メモリ階層構造と回路実装方法はそれらだけで複数の専門分野があります。
興味がある方は一度調べてみるとよいでしょう。
ハイエンド構成の注意点
ハイエンド CPU に数万円以上かけるなら、 同額を電源と冷却に割きましょう 。
Warning
Core-X とかのクラスになると電子レンジなみの消費電力です。
負荷時には CPU だけで 200 W とか平気で使います。300 W 超えも。
電源ユニットは 800 W クラス以上が前提になります。
そこをケチると、動作不安定、中長期的な故障率の問題がでます。多分。
「電源」の重要性
電源ユニット自体 (PSU) はもちろん、 マザーボードの電源設計も重要です 。
- 利用中の電力需給バランスが破綻すると「動作不安定性」に繋がります。
- 最近のコンピューターはアイドル状態とフル稼働状態で大幅な電源変動があります。
- 数ワットで動作していたもの(アイドル状態)が、 一瞬で数百ワット使い出す(4 コア以上 100 % 負荷状態など)ようなイメージです。
- ゆえに VRM や使用されているコンデンサの質と容量はとても重要になります。
- 電解コンデンサの場合、化学変性のため必ず数年で性能が落ち、 温度が高いほどその劣化速度は早まります。
ハイエンド PC なら電源だけで最低 1 万円、マザーボードに 2〜3 万円はかかります。
基盤の冷却の重要性
電源関連のコンデンサーの経年劣化耐性も考えれば、 電源とマザーボードには「ものすごく注意」すべきです。
- 「冷却」と「値段」と「数年後の交換品の入手性」 は最低限考えましょう。
- 電源 (PSU) は色々ありますが規格化されているので代用品はあまり困りません。
- ハイエンド構成はマザーボードが要注意です。高くて予備用確保も躊躇します。
意外な落とし穴は EATX 12 V 付近の「マザーボードの温度」 です。
VRM はヒートシンクが上位モデルで付きますが、 それでも放射温度計などで測定すれば、 高負荷時の CPU 周囲のコンデンサや そこに通じるまでの電源配線のあるマザーボード部位の温度が エアフローが乏しい場合は 50 ℃を超えるのがわかります。
更に現行 PC の ATX 規格ではバックパネルの I/O シールドのために その問題の部分のエアフローが結構乏しい。
巨大でかっこいい VRM ヒートシンクの弊害
拍車をかけるのが最近のゲーミング M/B の「巨大でのっぺりしたヒートシンク」です。 本来なら剣山のような形状で放熱性能を高めるべきところ、 それを捨てて見た目に走ってる印象です。
もしかしたら自作してヒートシンクで怪我した、 とかいうクレーム対策かもしれませんが。
いずれにせよ、フィンやハリセンボン型のヒートシンクでない場合、 皮肉にも巨大 VRM ヒートシンクに妨げられてしまうため EATX 12 V から VRM ヒートシンクの間のエアフローが絶望的です。
水冷方式でケース上面全部が大型ラジエーターで常時上に排熱するならともかく、 BIOS 画面でベースクロックで動作している状態で マザーボードの CPU 周囲の温度 を測定してみるべきです (短絡回避のため放射温度計で非接触的に)。
問題部位の M/B 温度は、4 コア以上で高負荷な用途では CPU 温度より高くなる場合が結構あります。
sumikko.tokyo では 4 コア以上のものには 4 cm や 6 cm ファンを使って 最大不可でも 30 〜 40 ℃になるようにエアフロー設計してます。
オススメしませんが、小型で高性能なものを組む場合は I/O シールドに 穴を開けるか、取り付けずに 4 cm ファンで排熱させています。
冷却ファン費用が 1 万円弱になることは珍しくありません。
Note
とある小型高性能マザーボードではチップセット位置の兼ね合いもあるためか、 バックパネルに排熱スリットとファンがついたものが搭載されました。
なおサーバー向けのマザーボードでは初期から風向きがほぼ決まっているため、 DRAM スロットを始めとしてほとんどの部品がエアフローを妨げない配置です。
1 U サーバーの内部構造などは PC 自作するならとても参考になります。
また ASRock Rack シリーズなどのサーバー用途 M/B の 基盤レイアウトも一度見てみるとよいでしょう。
回路配線は多分ほぼ同一と思われる市販ゲーミング PC 用 SKU では、 のっぺりした巨大 VRM ヒートシンクがつくところ、 背の高いフィン型ヒートシンクがついています。
Attention!
金属加工したら目に見えない微細な金属片が問題になります。
適切に処理しないと怪我の恐れもありますし、 電気的短絡を起こしてマシンをお陀仏にする可能性もあります。
特に鉄の切削は磁力で微小なものが残る可能性があります。
PC パーツの DIY 金属加工はおすすめしません。
廉価マザーボードの使いどころ
あまり性能や機能面を気にしないでもいい用途 (2 コアかアンダークロックした 4 コア)なら、 数年で交換前提に安いマザーボードを使うのも手です。
要するに「消耗品前提」です。
- Intel CPU なら、
- Pentium Gold シリーズ (2 コア)に 6,000〜8,000円クラスのマザーボード。
- AMD CPU なら、
- Athlon GE 200 (2 コア)に 6,000円クラスのマザーボード。
- Ryzen 2200G (4 コア)なら 8,000円クラスのマザーボードとか。
ただ 値段は結構変動 します。
交換品が手に入るかも不明です。必要な型番は意外と手に入らない。
- 廉価版を使う場合は「VRM フェーズ数 > CPU コア数」と 「メーカーの CPU 対応表」を確実に確認しましょう。
- VRM ヒートシンクの有無も、負荷が重い用途が時々あるなら要注意です。
- この手で多数の PC を運用をするなら、予備マザーボードを 1 枚以上確保しましょう。
Attention!
安く買うにしても電源回路が貧弱すぎないかは確認したがよいです。
「電源回路が貧弱」とか「経年劣化した」とかで「動作が不安定」になりがちです。
数年使う機材で数千円ケチっても、その時のコスパがよく感じるだけです。
動作不安定での喪失時間・作業の喪失が増えると、本末転倒です。
Tip
sumikko.tokyo 的には 1 万前半で エントリークラスゲーミングマザーボードか、 ビジネス用途標準ラインアップのマザーボードを買ってます。
ここらへんは多分あとでマザーボード編の別記事に書き起こし直します。
ハイエンド CPU を選ぶ基準例
一言でいうと「 リアルタイム追従性が必要か 」どうかです。
- ゲーム、VR/AR/MR 開発だと、0.01 秒が大切になります。
- 一方で処理が 1〜2 秒もたついてもいい用途なら、別にハイエンドにこだわる理由ないです。
- (AI) 開発などの大量計算では、30 分が 25 分になることに意義を感じるかは状況次第です。
- sumikko.tokyo 的には「20 分以上のフル負荷処理が毎日複数回あるか」です。
Warning
ハイエンド環境は「中毒性」があります。
一度味わうと、なかなか戻れなくなる可能性があります。
ご利用は計画的に。
最新 CPU 事情
Intel は Ice Lake を始めに Sunny Cove と Intel 10 nm プロセスが、 AMD は ZEN 2 が話題となりました。
常用 PC にどっちがいいのか、なんとなく。
- Sunny Cove の SKU は当面は薄型ノート PC でしょう。自作に縁なさそうです。
- ノートPC なら sumikko.tokyo 的には Ice Lake より 「値下がりした Whiskey Lake」です。
- 企業用途ならセキュリティ機能面などで Comet Lake がいいでしょう。
- 要は Intel 14 nm SKU です。
- AMD Ryzen の mobile SKU はコスパは一見いいんですが、 あえて選ぶ理由が見いだせませんでした。
- 自作なら第 8 / 9 世代の 3.5 GHz 以上のベースクロックの CPU がよさそう。
- 「ストレスフリー」かつ「普段使い」するための本命は Core i3-9320 でした。
- ただ出回ってない。出ても国内価格は高そう。
- そこで 8350K か 9600K をアンダークロックすることに。
- 特に 8350K は流通も多く、9100 (同 4 コアで LLC は 6 MB と若干少ない) と比べて値段差も 5,000 円程度です。CPU 冷却パーツが更にかかりはしますが。
- sumikko.tokyo 的にはアンダークロック 8350K は温度と性能バランス良好な印象です。
- 9600K アンダークロックは性能要件が高いものを組む場合試すかもしれません。
- 無難なのは 8400 あたりの 6 コアを Boost コアレシオアンダークロックで
シングルスレッド性能は維持しつつ全コア負荷時に低発熱にすることでしょう。
- 例として 1 コア負荷上限コアレシオのみ 38 でそれ以上の負荷は 30 とか。
- 「ストレスフリー」かつ「普段使い」するための本命は Core i3-9320 でした。
- ZEN 2 の RDRAND 問題
- 乱数はセキュリティにおいて非常に重要ですが、 ZEN 2 には修正されたのかどうか不確定な errata があります。
- 固定値がでなくなって「修正」とされている場合が懸念です。
真の乱数が得られいるかが事実上検証不可能です。
- ただここまで言い出すと Intel 側でも同様の懸念を持つべきです。
- RDRAND のような命令だけに頼らず、別のエントロピー源も推奨されてたりもします。
- いずれにせよ GNU/Linux 用途に ZEN 2 をあえて選ぶ理由もありませんでした。
- Microsoft や SONY の次世代ゲームコンソール向けのものとみなしています。
細分化プロセルルールの懸念点
最新世代 CPU ではちょっと気になる点もあります。
プロセス微細化による「セキュリティ上の懸念」と「安定性」です。
- 微細な配線に低電圧・低電流で動く=電磁干渉を受けやすい。
- 例) Row Hammer 攻撃など、電磁物理学的な攻撃手法によるセキュリティ問題。
- 例) HBM 搭載の一部業務用グラフィックボードで生じた「再現性の欠落」の実例。
- また配線プロセスが微細すぎて「同じ製品でも個体差にばらつきが出やすい」懸念。
- 配線径や間隔が 10 nm 以下の世界は、原子わずか数十個の幅の世界です。
- 例) 製品記載の性能を出すために電圧をギリギリまで増して出荷している可能性。
- つまり消費電力や発熱、場合によっては パフォーマンス自体も悪影響を受けます (冷却依存性の増大)。
CPU 選択のオチ
14 nm プロセスルール世代が、中長期的にみると無難な気もします。
流通性も検討するといっそ Intel の 8350K や 9600K や Ryzen 2200G や 3200G (非ZEN 2、14 nm) などのアンダークロックというオチに。
スマホとかはどんどん細分化していくでしょうけど、少々不安定になっても大問題でないです。 アプリがなんかオチたな、とかその程度な感覚でしょうし、 GMAIL とかのデータは端末ではなくクラウド上にあるわけで。
ただ 業務・研究用途のワークステーションで 「計算が同一条件で不一致」とか「不安定」 とか、悪夢です。
まとめ
- CPU 選びではシングルスレッド性能、用途にあったコア数と、キャッシュ量が重要です。
- LLC は比較評価が難しいですが、Intel Core なら 1 コア 2 MB の比率の容量が理想です。
- SMT (Hyper Threading など) はもう忘れましょう。過去と営業戦略の産物と考えています。
- CPU 自体の性能は「コア数よりも非 Boost 動作周波数の高さ」です。
- 最近のマルチコア CPU は 低基本動作周波数な Boost 依存性能なので、要冷却です。
- 「マザーボードも冷却」されないと長期的には壊れやすい / 動作不安定になります。
- 特にエアフローが乏しいのに大電力が動く EATX 12V コネクタから VRM と CPU 近辺のコンデンサには注意が必要です。
- ハイエンド CPU には「いい電源+いいマザーボード+いい冷却が 必須 」です。
いい加減そろそろマザーボード編は別にしたいところですが、 アンダークロックに関する点やファンコントローラーの DC 3 ピンの 制御の扱いなど、記載するべきことが増えるのでまだ先になりそうです。
sumikko.tokyo の 2020 年 CPU 調達方針
ノートにせよデスクトップにせよ、 sumikko.tokyo 的には 2020 年調達分は 「Intel の 14 nm SKU」になりました。
デスクトップは Coffee Lake (Pentium Gold か Core SKU のアンダークロック)、 まだですがノート代替時には Intel 14 nm 4 〜 6 コア SKU の予定。