古いCPUのメルトダウンとスペクターのパフォーマンス影響は?25.75%のダウンと10.28%のダウン
Appleの公式測定では、Meltdown、Spectreの緩和策のパフォーマンス影響は2.5%未満と発表しています。ほぼ影響がないってことですね!
Apple公式の見解:ARM ベースおよび Intel CPU の投機的実行の脆弱性について
メルトダウンとスペクター問題って何?
メルトダウンはIntel製CPUの脆弱性でCPUが利用するメモリの生データにアクセスでき、最悪パスワードも知ることができてしまう問題、スペクターはIntel、AMD、ARM CPUメーカー共通の脆弱性でレイヤーを迂回できる脆弱性です。パッチの提供で影響が緩和されるようですが30%程度の性能ダウンの可能性があるとかないとか騒がしい状態です。2018年になってから突然このような話が湧いて出てきましたが、数ヶ月前から各メーカーは対策に力を入れていたようです。
原因はCPUのアーキテクトの問題(アウトオブオーダー実行)と言われているのでOS関係なしでIntel製CPUが搭載されている製品は影響を受けてしまいますね。
Yahooトップニュースでも報道されていました。
CPUに脆弱性発見、機密データ漏えいの恐れ 業界全体で対応
1/4(木) 13:41配信
Windows7以降はWindows Updateで対策が可能です。
Microsoft is already fixing the big chip bug − here are the Windows PCs that will be most affected
古いCPUはパフォーマンスダウンが避けれない感じです。Skylake以降であれば性能は大差ないようです。
Apple iPhone/iPadはiOS 11.2でメルトダウン緩和策対策済です。
macOSはHigh Sierra 10.13.2で緩和対策済です。
Apple TVはtvOS 11.2で対策済です。
Apple曰く、メルトダウンとスペクター問題は「全MacシステムとiOSデバイス」に影響を与えるが長くは続かない
さらに、スペクター問題を緩和するためのmacOS High Sierra 10.13.2 Supplemental Updateが1/9にリリースされています。
Apple、CPU脆弱性“Spectre”へ備えた追加アップデートをMacへ提供開始
High SIerra 10.13.1から10.13.2にアップデートした際、ベンチマークの数値が下がったのはこの影響があるのかもしれませんね。(こちらでベンチマークの結果を公開しています。メモリ、CPUなど細かな性能を比較しながら見ることができます。)
Ivy Bridge Core i5のメルトダウンとスペクターのパフォーマンス影響は?
第3世代CoreプロセッサーIvy Bridge Intel(R) Core(TM) i5-3210M CPU @ 2.50GHzを採用したMacBook Pro Retina Late2012でメルトダウンとスペクターを緩和したことによるパフォーマンスへの影響を調べてみました。
結論としては、以下の通りです。
Ivy BridgeのCore i5は性能ダウンの影響を受ける!
シングルCPU性能は25.72%のダウン。
マルチCPU性能は10.28%のダウン。
macOS High Sierra 10.13.2でメルトダウンの緩和策、10.13.2の追加アップデートでスペクターの緩和策に対応しています。ここでは、macOS High Sierra 10.13.1と10.13.2の追加アップデートのベンチマークの値を比較して性能への影響を見ていきます。
macOS 10.13.2は10.13.1からどの程度性能が変わっているの?
追加アップデートを提供した10.13.2と10.13.1のUnixBenchの生の数値を比率(10.13.2÷10.13.1)表していす。100%で10.13.2と10.13.1は同性能、100%超えで10.13.2追加アップデートの性能が優れいていることを示しています。わかりやすいように赤は性能が劣っている、青は性能が良いというように色づけしています。
ベンチ項目 | シングルCPUの性能 | マルチCPUの性能 |
Index Score | 74.28% | 89.72% |
Dhrystone 2 using register variables | 91.65% | 103.02% |
Double-Precision Whetstone | 92.03% | 99.86% |
Execl Throughput | 88.26% | 86.22% |
File Copy 1024 bufsize 2000 maxblocks | 79.72% | 169.03% |
File Copy 256 bufsize 500 maxblocks | 89.08% | 184.52% |
File Copy 4096 bufsize 8000 maxblocks | 93.10% | 137.39% |
Pipe Throughput | 36.15% | 41.54% |
Pipe-based Context Switching | 71.27% | 60.80% |
Process Creation | 82.92% | 93.73% |
Shell Scripts (1 concurrent) | 94.03% | 95.91% |
Shell Scripts (8 concurrent) | 101.92% | 91.91% |
System Call Overhead | 28.03% | 34.29% |
シングルCPUはとても遅くなっています!メルトダウン、スペクターの緩和策に影響を受けていることがなんとなくわかりますね。
マルチCPUも落ち込み幅は少なくなっています。でも影響を受けています。
i5-3210Mは、2コア、4スレッドのIntel製CPUです。シングルCPUは4スレッドのうち1つを使ったベンチマーク、マルチCPUは4スレッドを使ったベンチマークです。通常の利用でCPUがシングルで動いている、マルチで動いていると意識することはありません。
アプリでマルチスレッドプログラミングを施していない単純なプログラムはシングルCPUで動作します。
今回のベンチマークは、1つのプログラムを動かした処理時間と同じプログラムを複数同時に動かした場合の処理時間の結果を数値化したものです。
macOSのカーネル、SafariやFinderなどのアプリはマルチスレッドを使っています。スレッドは1つの処理と考えると1つ1つの処理はパフォーマンスが悪くなります。アプリはファイルを読み込んだり、ファイルを書いたり、スレッドを生成したりと色々なことを行なっているので細かくベンチマーク項目単位で考えること自体意味がないですよね。
落ち込みが激しいベンチマーク項目は、Pipe ThroughputとSystem Call Overheadです。
プロセス間通信でパイプを使うパターンが少ないと思っているのでPipe Throughputは通常あまり意識する必要がないベンチマークだと思います。
System Call Overheadは、OS標準関数を呼び出す際のオーバーヘッドにあたるのでこの数値が悪いほど1つ1つの呼び出しに時間がかかり(とは言っても1つ1つはわずかな時間です)、パフォーマンスに影響を与えやすいです。
マルチCPU性能は10.28%のダウンです。今までよりちょっと遅い?って感覚だと思います。
シングルCPU性能の25.72%のダウンは、1つの処理がとても重い、エンコードなどのアプリが25.72%遅くなる可能性を秘めています。
軽い処理に関しては影響は軽微です。1秒で終わるのが1秒ちょっとになっても体感上あまり変わらないかと思います。
macOS High Sierra メルトダウン・スペクターの影響を受ける前と後【シングルCPU】
macOS High Sierra メルトダウン・スペクターの緩和策適用前の10.13.1のScoreと適用後の10.13.2追加アップデートのScoreをベンチマーク項目と影響を合わせて掲載しています。ScoreはいずれもシングルCPUです。マルチCPUはこちらです。
ベンチ項目 | 影響 | 10.13.2 Score/10.13.1 Score |
Dhrystone 2 using register variables | 性能ダウン | 27221282.6/29700150.4 |
Double-Precision Whetstone | 性能ダウン | 4777.9/5191.7 |
Execl Throughput | 性能ダウン | 345.2/391.1 |
File Copy 1024 bufsize 2000 maxblocks | 性能ダウン | 175768.2/220471.9 |
File Copy 256 bufsize 500 maxblocks | 性能ダウン | 48801.7/54781.4 |
File Copy 4096 bufsize 8000 maxblocks | 性能ダウン | 658727.3/707540.8 |
Pipe Throughput | 性能大幅ダウン | 368341.5/1018827.6 |
Pipe-based Context Switching | 性能ダウン | 86430.6/121266.6 |
Process Creation | 性能ダウン | 1740.9/2099.5 |
Shell Scripts (1 concurrent) | 性能ダウン | 2538.4/2699.6 |
Shell Scripts (8 concurrent) | 性能アップ | 589.6/578.5 |
System Call Overhead | 性能大幅ダウン | 286342.2/1021461.3 |
Index Score | 性能ダウン | 412.1/554.8 |
macOS High Sierra メルトダウン・スペクターの影響を受ける前と後【マルチCPU】
macOS High Sierra メルトダウン・スペクターの緩和策適用前の10.13.1のScoreと適用後の10.13.2追加アップデートのScoreをベンチマーク項目と影響を合わせて掲載しています。ScoreはいずれもマルチCPUです。シングルCPUはこちらです。
ベンチ項目 | 影響 | 10.13.2 Score/10.13.1 Score |
Dhrystone 2 using register variables | 性能ダウン | 65169561.9/63258320.6 |
Double-Precision Whetstone | 性能ダウン | 18394.6/18421 |
Execl Throughput | 性能ダウン | 851.9/988 |
File Copy 1024 bufsize 2000 maxblocks | 性能アップ | 364041.3/215365.1 |
File Copy 256 bufsize 500 maxblocks | 性能アップ | 102190.5/55381.7 |
File Copy 4096 bufsize 8000 maxblocks | 性能アップ | 1120079/815272.8 |
Pipe Throughput | 性能大幅ダウン | 955445.6/2300005.9 |
Pipe-based Context Switching | 性能ダウン | 269600.3/443393.9 |
Process Creation | 性能ダウン | 3849.5/4107.1 |
Shell Scripts (1 concurrent) | 性能ダウン | 4528.6/4721.5 |
Shell Scripts (8 concurrent) | 性能ダウン | 631.4/687 |
System Call Overhead | 性能大幅ダウン | 817913.8/2385468.7 |
Index Score | 性能ダウン | 925.2/1031.2 |
まとめ
いかかでしたでしょうか。ここまでMacBook Pro Retina Late2012のIvy Bridge 第3世代プロセッサー Intel Core i5でメルトダウン・スペクター緩和策を適用する前と後の違いから影響度をご紹介してきました。
影響はアプリの実装次第というところがあります。
システムコールのオーバヘッドが大幅に悪化しているのでOS標準関数を大量に呼び出している処理は影響を受けやすいです。
残念ながらIvy Bridge世代の古いCPUは影響を受けてしまうことがわかりました。
でもメルトダウン・スペクター共に脆弱性に該当しています。メインで使うmacには適用しておきたいですね!特にメルトダウンは悪用される可能性が最も高い脆弱性とAppleが発表しています。できる限り速やかにアップデートです。