CPUメーカーがプロセッサのクロック速度を上げるのをやめたのはなぜですか?[閉まっている]


63

メーカーはより高いクロック速度に集中することをやめ、現在、パフォーマンスを改善するために他のことに取り組んでいると読みました。

  • クロック速度3.0GHzのIntel®Xeon®Processor E3110を搭載した古いデスクトップマシン
  • 2.1 GHzのクロック速度のAMD Opteron(TM)プロセッサー6272を搭載した新しいサーバー

(シングルスレッド)を使用して簡単な暗号化比較を実行した場合

 openssl aes256c

デスクトップはサーバーよりもはるかに優れたパフォーマンスを発揮しました。

それでは、最新の最適化を行ったとしても、クロック速度の優れたプロセッサのパフォーマンスが向上するのはなぜですか?


57
デスクトップチップはデュアルコアです。サーバーは16コアCPUです。シングルスレッドのベンチマークを使用することはまったく適切ではありません。
–MSalters

@learner-必要な電圧の量を増やしてもプロセッサの速度を上げることができないため、熱が減少します。消費電力に集中することにより、理論的には将来プロセッサ速度を上げることができます。
ラムハウンド

1
「メーカー」が実際にクロック速度を「さらに低下させる」場合(リンゴとオレンジを比較せずに)を引用するか、質問のタイトルを「増加しない」に制限してください。
Jan Doggen

8
AMDとIntelのクロック速度は、K6 / Pentiumの時代から公平な比較ではありませんでした。AMDは、コアクロックがそれぞれ1.8または2.1である可能性があるときに、Athlonプロセッサを2500+または3000+として販売しましたが、通常、真の2.5または3 GHzをクロックするIntelチップでそれぞれベンチマークを行いました。単に存在する方法単にクロックレートの比較を行うために、今アーキテクチャ間であまりにも多くの違いが。
キース

回答:


72

メーカーがクロック速度の増加に集中するのをやめた理由は、これを実現するのに十分な速さでプロセッサを冷却できなくなったためです。クロック速度が高いほど、より多くの熱が生成され、冷却に費やされるエネルギー量のためにプロセッサ速度を上げることはもはや効率的ではない段階に達しました。

他の答えは、クロック速度を上げてもすべての領域でパフォーマンスが向上するわけではないことについて詳しく説明します。


1
+1この壁にぶつかったときにマシンを購入したようです。市場の大部分(OC以外)を見ると、私の8歳のP4 3.4 ghzはおそらくクロックスピードの面で最速です。
カーシックT

2
消費電力も問題になることに注意してください。16コア3.0 GHzの場合、200ワット以上を消費する可能性があり、最も一般的な電源はシステムの他の部分と組み合わせてほとんどサポートできません。
Mixxiphoid

9
@Mixxiphoidまた、回路が処理できる電圧で、何らかの方法でこれらの200+ WをCPUに取り込む必要があります。それ自体は重要な作業です。
CVn

1
それだけでなく、CPUクロックを増やすためにパイプラインを増やす必要がありますが、コードをフォークし、コンテキストを変更し、メモリをジャンプまたはクリアする必要があるたびに、パイプライン全体をクリアし、もう一度満たす必要がありますその命令の結果であるため、パイプラインとCPU周波数を減らす方が良いので、分岐、コンテキストの変更、ジャンプが必要になるたびに、パイプラインが再びいっぱいになるまで長い時間待つ必要はありません。
レフスラー

1
@demonofnight:「ジャンプする(...)必要があるたびに」と言っても過言ではないでしょう。無条件の直接分岐は制御ハザードをもたらさないため、条件付き分岐から除外されません。95%〜99%はさまざまな手法(SPECに基づくいくつかの論文に基づくデータ)で予測されます。ターゲットがまだ登録されておらず、予測ミスがある場合、直接分岐は問題を引き起こします。「fork the code」または「clear the memory」の意味がわかりませんが、コンテキストスイッチをそれほど頻繁に実行しないでください(割り込みとI / O)。
マチェイピエチョトカ

37

処理速度には、クロック速度よりもはるかに多くのことがあります。

  • パイプライン配置のバリエーションが異なり、各コアに複数のコンポーネントユニット(加算器など)があるため、CPUごとに同じクロックサイクル数で異なる量を実行できます。テストではそうではありませんが、ティックごとにより多くの処理を実行できるため、「遅い」チップは高速のもの(クロックレートのみで測定)よりも多くの処理を行うことができます。

  • 実行したテストは、CPUアーキテクチャの違いに非常に敏感な場合があります。特定のアーキテクチャ向けに最適化できます。IntelチップとAMDチップ間だけでなく、異なるファミリのIntel(またはAMD)チップ間でも実行が異なる場合があります。単一のスレッドも使用している可能性が高いため、CPUの複数のコアを活用していません。

  • 電力および熱管理の理由により、クロックレートを下げる動きがあります。クロックレートを上げても、電力の使用と熱出力に直線的な影響はありません。

  • 上記の非線形の関係により、今日の要件では、1つのユニットの速度をさらに上げるよりも、複数の処理ユニットを使用する方がはるかに効率的です。これにより、使用されていないときに個々のコアをオフにし、需要が再び増加したときにそれらを元に戻すなど、電力を節約するための巧妙なトリックも可能になります。もちろん、複数のコアがシングルスレッドアルゴリズムに役立つわけではありませんが、同時に2つ以上のインスタンスを実行した場合には役立ちます。


それでは、クロックレートと消費電力の関係は何ですか?
user84207 14

$ P = CV ^ 2f $。また、これを読むこともできます
ザッカク

19

なぜメーカーは2つのプロセッサを比較するだけで実際にクロック速度を低下させていると思いますか?

  1. 6272は、 3GHzののターボスピードを持っています。より低い基本速度は、すべてのコアにストレスがかかったときに、平均ワット数を下げ、ワークロードで許容できるTDPを維持するためのものです。
  2. AMDのデスクトップ用の次の高性能チップFX-9590は5 GHzに達します。

また、クロック速度はクロックサイクルごとのパフォーマンスと同じではありません。i7-3930Kの1つの3.2 Ghzコアに対して3.8 Ghz P4を使用できますが、それはP4コアが高速であることを意味しません。

ここで述べた消費電力についてのすべては、TDPの問題について自然に関心を持つようになった16コア設計にとっても完全に有効かつ真実です。

また、opensslをテストするだけのベンチマーク手法は、現実世界の数値を提供するのが少し簡単です。たぶん、暗号ベンチマークスイートを試す必要があります。


3
クロック速度=パフォーマンスの誤acyに類推するだけです。1人の人が非常に小さなステップを踏んでいるが非常に速く(高いクロック速度)、他の人が少し遅い速度(非常に低いクロック周波数)で非常に大きなステップを踏んでいると想像してください。大きな一歩を踏み出す人は、はるかに速く動くことができます。
マーティンコネクニー

@MartinKonecny:素晴らしい視覚化!
ザックラッタ

2
@MartinKonecny私の理解では、ほとんどのアセンブラー命令(ADD、MOV、IMULなど)は単一サイクルで実行されます。では、これらの新しいプロセッサでは、1つのサイクルで複数の命令が実行されていますか?
nialsh

4
@nialsh CISCコンピュータにはまったく当てはまりません(実際、CISCの定義事項の1つは複数のサイクルを要する命令です)。命令。
スコットチェンバレン

以前はx86 CPUは命令ごとに複数のクロックサイクルを必要としていましたが、最近ではクロックサイクルごとに複数の命令を実行できます。
オスカースコグ

13

テストケース(aes-256暗号化)は、プロセッサ固有の最適化に非常に敏感です。

暗号化/復号化操作を高速化することを目的とした特別な命令を持つさまざまなCPUがあります。これらの特別な指示はデスクトップに表示されるだけでなく、AMD CPUには異なる特別な指示がある場合があります。また、opensslはIntel CPUに対してのみこれらの特別な指示をサポートする場合があります。それが事実かどうかを確認しましたか?

どのシステムが高速であるかを調べるには、「適切な」ベンチマークスイートを使用してみてください。または、一般的なワークロードを使用してください。


その特別な指示への翻訳はどこで行われますか?命令セットごとに異なるコンパイラがあるかどうかはわかりません。
シューハム

コンパイラには、さまざまな命令セットをターゲットにするオプションや、CPU固有の命令に密接に対応する特別な「組み込み関数」があります。単一の実行可能ファイルで、実行されているCPUファミリを確認し、それに基づいて異なるコードパスを選択することができます。
ラッセルボロゴーブ

10

シンプル:AMDチップは16コアチップであるため、はるかに高速です。115ワットでは、各コアが約7ワットを生成することを意味します。各コアが3 Ghzで実行されている場合、これは達成できません。その7ワットの数値を達成するために、AMDはクロック周波数を下げました。クロック周波数を10%下げると、消費電力が20%減り、チップ上に25%のコアを追加できます。


10

他の人が言ったように、過去に同じ相対的なクロックレートの増加に必要な電圧を押し上げると、CPUを効果的に冷却できなくなります。クロックレートが前の世代と比較して大幅に増加したため、新しいCPUを購入して「即時」のゲインが速度であることがわかる時間(P4時代以前)がありました。今、私たちはある種の断熱壁にぶつかりました。

プロセッサの新しい世代はそれぞれ、クロックレートがわずかに増加していますが、これはそれらを適切に冷却する能力にも関連しています。Intelなどのチップメーカーは、CPUのダイサイズの縮小に継続的に注力しており、同じクロックでCPUの電力効率を高め、発熱を抑えています。サイドノートとして、このダイサイズの縮小により、これらは現代のプロセッサを過熱ではなく過電圧で死にやすくします。これは、チップメーカーが他の最適化を行わずに、現在の世代のCPUの上限クロックレートも制限していることを意味します。

チップメーカーが重点的に取り組んでいるもう1つの分野は、チップ上のコアの数を増やすことです。これにより、計算能力が大幅に向上しますが、複数のコアを活用するソフトウェアを使用する場合のみです。 ここで計算能力と速度の違いに注意してください。簡単に言えば、速度とはコンピューターが単一の命令をどれだけ速く実行できるかを指し、計算能力はコンピューターが一定時間内に実行できる計算の数を指します。 現代の運用システム、および最新のソフトウェアの多くは、複数のコアを活用しています。問題は、並行/並列プログラミングが標準の線形プログラミングパラダイムよりも難しいことです。多くの開発者はこの方法でプログラムを作成することに慣れていなかったため、これにより、市場の多くのプログラムがこれらの新しいプロセッサの能力を最大限に活用するのにかかる時間が増加しました。マルチコアやマルチスレッドを活用しないプログラムが、今日でも市場に出回っています(最新またはレガシー)。あなたが引用した暗号化プログラムはその一例です。

チップメーカーが焦点を当てているこれら2つの領域は、本質的に関連しています。チップのダイサイズと消費電力の両方を削減することで、チップ上のコアの数を増やすことができます。しかし、最終的にはこれも壁にぶつかり、別のより劇的なパラダイムシフトを引き起こします。

このパラダイムシフトの理由は、チップ製造のベース材料としてのシリコンの限界に近づいているためです。これは、インテルや他の人々がしばらくの間解決に取り組んできたものです。インテルは、作業中にシリコンに代わるものがあると述べており、2017年以降にシリコンを目にする可能性が高いと述べています。これらのアイデアの両方に言及している記事はこちらです:http : //apcmag.com/intel-looks-beyond-silicon-for-processors-past-2017.htm


2
  • 熱損失 Hは周波数の4番目の程度に等しくなりますf

    H〜f ^ 4

    そのため、周波数を少し上げると、熱損失が大きくなります。

  • さらなる小型化

    周波数が高くなると、水晶振動子の最小化につながります。現時点では、ナノメートルスケールの材料を効果的に使用するための技術はなく、ナノメートルが限界です。


2
-1 4番目のパワー部分が正しくありません。CPUの電力(1秒あたりに発生する熱)は、P〜f CV ^ 2 + P0(en.wikipedia.org/wiki/CPU_power_dissipation)のように、クロック周波数に(おおよそ)直線的に比例します。許可される電圧は、クロック速度に依存します(必ずしも線形ではありません)。を参照してください:physics.stackexchange.com/questions/34766 ボトムライン、CPUによって生成される電力は、1.6 GHz〜5 GHzの範囲のクロック速度でほぼ線形から2次になります。(f ^ 4に支えません)。
ジンボブ博士13

2

他のいくつかの回答で述べたように、CPUメーカーは、消費電力と熱放散を制御するために、クロック速度を低くしたいと考えています。同じクロック速度でより多くの作業を行うために、いくつかの戦略が使用されます。

大規模なオンチップメモリ​​キャッシュは、CPUへのデータの配信が非常に遅いメインメモリとは対照的に、CPUに「近い」より多くのデータを保持し、最小限の遅延で処理できるようにします。

異なるCPU命令は、完了するまでに異なる数のクロックサイクルを必要とします。多くの場合、簡単な回路を使用して複数のクロックサイクルにわたる動作を実装するか、より複雑な回路を使用してより少ない回数で実行できます。

Intelの進化におけるこれの最も劇的な例はPentium 4にあります。これはクロック速度の大きな異常値でしたが、比例してうまく機能しませんでした。以前のチップでは1サイクルで32ビットをシフトすることができたビットシフト命令は、Pentium 4ではるかに単純な回路を使用し、各ビットシフトに1サイクルが必要でした。Pentium 4アーキテクチャは、そのシンプルさのためにはるかに高いクロック速度にスケーラブルであると期待されていましたが、うまくいかず、高速で複雑なシフト回路がコア以降のアーキテクチャに返されました。


2

IEEEから:

それでは、なぜクロックを速く押してみませんか?消費電力と熱放散の観点から、コストに見合う価値がなくなったためです。インテルは、速度/電力のトレードオフを「マルチコアプロセッサの基本定理」と呼んでいます。そのため、1つのチップで2つ以上の処理領域(コア)を使用するのが理にかなっています。

http://spectrum.ieee.org/computing/hardware/why-cpu-frequency-stalled

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.