質問: サーバーcpuが同じベンチマークスコアのmacbook pro cpuよりも高速なタスクを実行するのはなぜですか? 次のcpuとgeekbenchのスコアがあるとします。 amazon ec2 z1d.largeインスタンス:intel xeon platinum 8151 4061 mhz(1コア)シングルコアスコア:1094、マルチコアスコア:1300 macbook proラップトップ:intel core i5-8259u 2300 mhz(4コア)シングルコアスコア:1002、マルチコアスコア:4104 xeonは、シングルスレッドベンチマークスコアで9.1%高速です。ただし、両方のデバイスでjavascriptアプリケーションコード(シングルスレッド)をコンパイルすると、xeonはタスクを60%速く完了します。どうして?ベンチマークスコアによると、xeonはわずか9%高速です。どちらもnvmeドライブを備えているので、それがボトルネックになることはありません。 macはlinuxベースなので、macとlinux osの問題もないと思います。これは、xeonがサーバー/デスクトップcpuであるためですか? macbook pro cpuはフルパワーで実行されておらず、intel turbo boostがランプアップするのを待たなければならないのに対し、100%の速度とパワーで実行されていますか?
回答: ベンチマークは、システムの他の要因を考慮に入れないことが多い、非常に具体的なパフォーマンス特性(ピークインストラクションレート)に対するあいまいな波形です。プログラムに大きな変化をもたらす可能性があるものの、ピークの指導率ではないものの網羅的ではないリスト: メモリ。タイプ、帯域幅、チャネル。これらはすべて、データがcpuに到達して動作する速度に違いをもたらします。サーバーには通常、デスクトップまたはラップトップのcpuよりも多くのramチャネル、より多くの量、およびはるかに高いピーク帯域幅の数値があります。シングルコアの命令レートが高くても、そのレートに達するのに十分な速さでcpuにデータを取得できない場合、何のメリットもありません。 簡単なチェックとして、私は一見して 8180 xeon (見つけた最も近い)には6つのメモリチャネルがあり、ラップトップのcpuには(うまくいけば)2つのチャネルがセットアップされています(または設計が不十分で、1つしかなかった可能性があります)。サーバーには、ラップトップの3倍のメモリ帯域幅があります。これは、メモリを集中的に使用するタスクに大きな違いをもたらします。 ハードディスク。より高速なハードディスク、sddなどは、cpuが動作するためにデータをメモリに取得する際に大きな違いを生む可能性があります。 ssdは、データの小さなビットをシークするために桁違いに速く、バルク転送もはるかに高速です。 nvmeがさらに高速になりました。サーバーは多くの場合、バックアップにraidを使用するか、未処理の速度に設定できます。どちらもnvmeの場合もありますが、サーバーファームはraid 0または01のエンタープライズクラスのディスクを備え、単一のディスクよりも高速である可能性があります。 熱制限。ベンチマークは、特にラップトップやウルトラポータブルマシンでは、最初のパフォーマンスの増加を確認できるほど長く続く傾向があります。ファンが熱出力に追いつくことができず、その初期のターボブースト速度が「通常の」ピーククロック周波数まで低下するため、時間が経つとリザーバーがいっぱいになります。これにより、ベンチマーク結果が歪められ、長期的な負荷がかかった場合よりもラップトップの外観が大幅に改善されます。サーバーは、パフォーマンスを確保するために、仕様を超えた(そして大音量の)冷却システムを採用する傾向があり、ラップトップは静かな家の快適さを実現するように設計されており、ファンははるかに強力ではありません。ベンチマークに表示されるものは、目の前にあるものと同じ熱制限を持たない場合があり、パフォーマンスも低下し、制限が早くなる場合があります。 ボトルネック。サーバーには、ラップトップよりもはるかに多くのi/oがあります。より多くのpcieチャネル、より専用のioポートおよびペリフェラルへのはるかに高い帯域幅は、競合しないパスを通過するより多くのデータを意味します。16レーンcpuに接続されたマルチプレクサで時間を争う複数のpcieデバイスは40以上の専用レーンを持つcpuよりも遅い。 コア。より多くのコアがあることは、1つのコアで実行しているタスクだけでなく、タスクが時間のために戦っていないことを意味します。トレードオフは、バス時間を争うコアの数が多いほど、メモリ帯域幅の制限に到達しやすくなることです。 キャッシュ。サーバーcpuは、はるかに大きなcpuキャッシュを持つ傾向があります。これはより最適化されていますが、キャッシュが大きいほどメモリへの移動時間が短くなり、cpuが小さいキャッシュよりも最大のパフォーマンスを発揮できるようになります。シングルコアのベンチマークは、ほとんどのキャッシュサイズに収まるほど小さいので、システムの他の部分については何もわかりません。 グラフィックス。 pcie /メモリバスの競合に関連して、ラップトップはグラフィックス機能を実行します。おそらくigpuを使用します。これは、グラフィックディスプレイを駆動するために、システムメモリが使用されている(およびメモリ帯域幅が盗まれている)ことを意味します。サーバーにはおそらくそれがなく、おそらく計算クラスタのヘッドレスノードです。サーバーのグラフィックオーバーヘッドははるかに少なくなります。 消費者クラスのcpuは確かに強力ですが、サーバークラスはより広いシステムに対してはるかに多くのロジック、制御、および帯域幅を持っています。一般的には、それで結構です。 15ワットのプロセッサが、140ワットの電力バジェットを備えた10倍の高価なcpuと同じように機能するとは予想していません。その追加の電力バジェットは、より多くの自由を与えます。サーバーのcpuのパフォーマンスがデスクトップまたはラップトップのcpuと同じである場合、2つのcpuは区別されません。ポイントをさらに詳しく説明するために、同様のシングルコアスコアは、coresが理想的な条件下で合理的に比較可能であることを示しています。それらは理論的にはパフォーマンスの点で近いかもしれませんが、より広いシステムや他のコンポーネントに接続したときにcpuが何ができるかについては何もわかりません。シングルコアの速度は、システム内の1つの小さなポイントに人為的に集中しているため、システムの通常のほとんどの使用が遭遇するよりも多くなります。あるシステムが別のシステムよりも「優れている」理由の詳細については、いわゆる「現実の世界」のベンチマークをさらに調べる必要があります。これは、(まだ人工的ですが)より匹敵するシステムを示しますパフォーマンスメトリックとボトルネックがどこにあるかもしれないかについての考えを提供してください。さらに良いのは、実行した種類のテストを実行することです。これは、そのワークロードについては、サーバークラスシステムが基盤となるアーキテクチャとコンポーネントを備えているため、はるかに優れていることを示しています。