メーカーはより高いクロック速度に集中することをやめ、パフォーマンスを改善するために他のことに取り組んでいることを読んだ。
と
(シングルスレッド)を使用して単純な暗号化比較を実行した場合
openssl aes256c
デスクトップはサーバーよりもはるかに優れています。
では、最新の最適化を行っても、クロック速度の優れたプロセッサのパフォーマンスが向上するのはなぜですか?
メーカーがクロック速度の増加に集中するのをやめた理由は、これを実行するのに十分な速度でプロセッサを冷却することができなくなったためです。クロック速度が速いほど、より多くの熱が発生し、冷却にかかるエネルギー量のためにプロセッサー速度を上げることが効率的ではなくなった段階になりました。
クロック速度が高くても、すべての領域でパフォーマンスが向上するわけではないという詳細な回答もあります。
処理速度には、クロックレートよりも多くの機能があります。
パイプライン配置のさまざまなバリアントと各コアに複数のコンポーネントユニット(加算器など)があるため、異なるCPUは同じ数のクロックサイクルで異なる量を実行できます。テストではそうではありませんが、ティックごとに多くのことを実行できるため、「遅い」チップは高速のもの(クロックレートのみで測定)よりも多くのことができることがよくあります。
実行したテストは、CPUアーキテクチャの違いに非常に敏感である可能性があります。特定のアーキテクチャ用に最適化される可能性があり、IntelチップとAMDチップの間だけでなく、異なるファミリのIntel(またはAMD)チップの間でも異なる動作をする場合があります。シングルスレッドも使用している可能性が高いため、CPUのマルチコアを利用していません。
電力と熱の管理上の理由から、クロックレートを低くする動きがあります。クロックレートを上げても、電力使用量と熱出力に直線的な影響はありません。
上記の非線形の関係により、1つのユニットの速度をこれまで以上に押し上げるよりも、複数の処理ユニットを持つことが今日の要件にとってはるかに効率的です。これにより、使用していないときに個々のコアをオフにし、需要が再び増加したときにコアを元に戻すなど、巧妙なトリックで電力を節約することもできます。もちろん、複数のコアはシングルスレッドアルゴリズムには役立ちませんが、2つ以上のインスタンスを同時に実行した場合はそうなります。
なぜメーカーは2つのプロセッサを比較するだけで実際にクロック速度を低下させていると思いますか?
また、クロック速度はクロックサイクルごとのパフォーマンスと同じではありません。 i7-3930Kから3.8 Ghz P4コアと1つの3.2 Ghzコアを使用できますが、それはP4コアが高速であることを意味しません。
ここで消費電力に関して述べられていることはすべて、16コア設計でも完全に有効であり、TDPの問題について自然に関心を持つようになった設計に当てはまります。
また、opensslをテストするだけのベンチマークメソッドは、実世界の数値を与えるには少し単純です。たぶん、暗号化ベンチマークスイートを試してみてください。
テストケース(aes-256暗号化)は、プロセッサ固有の最適化に非常に敏感です。
暗号化/復号化操作を高速化することを目的とした特別な命令を持つさまざまなCPUがあります。これらの特別な指示がデスクトップに表示されるだけでなく、AMD CPUに異なる特別な指示がある場合もあります。また、opensslはIntel CPUに対してのみこれらの特別な命令をサポートする場合があります。それが事実かどうか確認しましたか?
より高速なシステムを見つけるには、「適切な」ベンチマークスイートを使用してみてください。それ以上の場合は、通常のワークロードを使用してください。
他の人が言ったように、過去に同じ相対クロックレートの増加に必要な電圧をプッシュすると、CPUを効果的に冷却できなくなります。前の世代と比較してクロックレートが大幅に増加したため、新しいCPUを購入して「即時」の利益がスピードであることがわかる時期がありました(P4時代以前)。これで、一種の熱壁にぶつかりました。
新しい世代のプロセッサは、クロックレートがわずかに増加していますが、これは、適切にプロセッサを冷却する能力にも関係しています。 Intelなどのチップメーカーは、CPUのダイサイズの縮小に常に注力しており、CPUの電力効率を高め、同じクロックでの発熱を抑えています。ちなみに、このようなダイサイズの縮小により、最新のプロセッサは過熱ではなく過電圧で死ぬ傾向にあります。これは、チップメーカーが他の最適化を行わずに、現在の世代のCPUの上限クロックレートも制限していることを意味します。
チップメーカーが重点的に取り組んでいるもう1つの分野は、チップ上のコアの数を増やすことです。これは、計算能力の大幅な増加を考慮に入れていますが、複数のコアを利用するソフトウェアを使用する場合に限られます。 ここでは、計算能力と速度の違いに注意してください。簡単に言うと、速度とはコンピュータが単一の命令を実行できる速度を指し、計算能力とは、コンピュータが所定の時間内に実行できる計算の数を指します。現代のオペレーティングシステム、および最新のソフトウェアの多くは、複数のコアを利用しています。問題は、並行/並列プログラミングが標準の線形プログラミングパラダイムよりも難しいことです。これにより、多くの開発者はこの方法でプログラムを作成するのに慣れていなかったため、市場にある多くのプログラムがこれらの新しいプロセッサー能力を十分に活用するのにかかる時間が増加しました。マルチコアやマルチスレッディングを利用しないプログラムは現在もいくつか存在します(モダンまたはレガシー)。あなたが引用した暗号化プログラムはその一例です。
チップメーカーが注目するこれら2つの領域は、本質的に関連しています。チップのダイサイズと消費電力の両方を削減することにより、チップ上のコアの数を増やすことができます。しかし最終的には、これも壁にぶつかり、別のより劇的なパラダイムシフトが発生します。
このパラダイムシフトの理由は、チップ製造のベース材料としてシリコンの限界に近づいているためです。これはIntelや他の人たちがしばらくの間解決に取り組んでいるものです。インテルは現在、シリコンに代わるものがあると述べており、2017年以降に見られるようになるでしょう。この新しい素材に加えて、インテルは「処理能力を実質的に3倍にする」ことができる3Dトランジスタも検討しています。これらのアイデアの両方に言及した記事を次に示します。 http://apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm
シンプル:AMDチップは16コアチップであるため、はるかに高速です。 115ワットとは、各コアが最大7ワットを生成することを意味します。各コアが3 GHzで動作している場合、これは達成できません。その7ワットの数値を達成するために、AMDはクロック周波数を下げました。クロック周波数を10%下げると、消費電力が20%削減されます。これにより、25%のコアをチップに追加できます。
IEEEから:
それでは、クロックをより速くプッシュしてみませんか?消費電力と熱放散の観点から、コストに見合う価値がなくなったからです。 Intelは速度/消費電力を「マルチコアプロセッサの基本定理」と呼んでいます。これが、1つのチップで2つ以上の処理領域、つまりコアを使用することが理にかなっている理由です。
http://spectrum.ieee.org/computing/hardware/why-cpu-frequency-stalled
熱損失H
は、4次の周波数f
と等しくなります。
H〜f ^ 4
したがって、周波数のわずかな増加は、高い熱損失につながります。
ファーターの小型化
周波数が高いほど、水晶の最小化はさらに進みます。現時点では、ナノメートルスケールの材料を効果的に使用するためのテクノロジーがなく、ナノメートルが限界です。
他のいくつかの回答で述べたように、CPUメーカーは、クロック速度を低く抑えて電力消費と放熱を制御したいと考えています。同じクロック速度でより多くの作業を行うために、いくつかの戦略が使用されます。
大容量のオンチップメモリキャッシュは、CPUにデータを配信するのが非常に遅いメインメモリとは対照的に、CPUに「より近い」より多くのデータを保持し、最小限の遅延で処理できます。
CPU命令が異なると、完了するまでにかかるクロックサイクル数も異なります。多くの場合、単純な回路を使用して、数クロックサイクルにわたって動作を実装したり、より複雑な回路を使用してより少ない数で実装したりできます。
Intelの進化におけるこれの最も劇的な例は、クロック速度で大きな異常値を示したPentium 4ですが、それに比例してパフォーマンスは低下しました。以前のチップでは1サイクルで32ビットをシフトできたビットシフト命令は、Pentium 4ではるかに単純な回路を使用しており、ビットシフトごとに1サイクル必要でした。 Pentium 4アーキテクチャは、その単純さのためにはるかに高いクロック速度にスケーラブルになると期待されていましたが、うまくいきませんでした。高速で複雑なシフト回路がCore以降のアーキテクチャに戻ってきました。