私は新しいSkylake PCを構築しました。ストレステスターとしてのPrime95でのオーバークロックについて少し見てみましょう。
通常の使用では問題なく動作しますが、Prime95を使用すると、特定の負荷でCPUスロットリングが少し発生します。
4つのコアすべて(8スレッド)が100%で詰まっている場合、Prime95のSmall FFT設定が「Blend」オプションよりも高温になるのはなぜですか?
私は新しいSkylake PCを構築しました。ストレステスターとしてのPrime95でのオーバークロックについて少し見てみましょう。
通常の使用では問題なく動作しますが、Prime95を使用すると、特定の負荷でCPUスロットリングが少し発生します。
4つのコアすべて(8スレッド)が100%で詰まっている場合、Prime95のSmall FFT設定が「Blend」オプションよりも高温になるのはなぜですか?
回答:
x86-64アーキテクチャは、特に最新のプロセッサで、広範なベクトル処理機能を提供します。ベクトル処理を使用すると、アプリケーションは複数のデータアイテムに対して一度に数学的演算を実行でき、多くの新しい計算集中型アプリケーションで処理スループットを向上させるために使用されます。
ベクトル化されたコード、特にPrime95で使用されるAVX命令では、プロセッサが通常よりも高い電圧で動作する必要があります。これにより、通常のワークロードでの消費電力と熱出力よりも大きな電力が出力されます。このため、インテルは、AVXに重い負荷がかかるとプロセッサーが完全なターボブーストクロックレートを抑制または維持できなくなる可能性があることを警告しています(脚注1)。
インテル®Advanced Vector Extensions(インテル®AVX)は、特定の整数および浮動小数点演算のスループットを向上させるように設計されています。プロセッサーの電力特性はさまざまであるため、AVX命令を使用すると、a)一部の部品が定格周波数未満で動作し、b)一部の部品がIntel®Turbo Boost Technology 2.0で動作して、ターボ周波数がまったくまたは最大にならない場合があります。
Intelは、このホワイトペーパーでこれについて詳しく説明しています。特に、それは注意します:
インテルAVXは、特定の整数および浮動小数点演算でより高いスループットを実現するように設計されています。これらの命令を使用すると、プロセッサがマークされたTDP周波数未満で動作する可能性があります。これらの周波数の低下は、ハイパワーインテルAVX命令が追加の電圧と電流を必要とするために発生します。
AVX命令にV コアをブーストする必要がある理由についての私の推測は、AVX実行ユニットがプロセッサの他の部分よりも複雑であり、対応するパイプラインステージが完了するまでに時間がかかることです(パイプラインの詳細については、この回答を参照してください)およびプロセッサ設計の他の側面)。特定のパイプラインステージが遅い場合、パイプライン内のすべてのステージが各クロックサイクル内で終了する必要があるため、プロセッサ全体の最大クロックレートが制限されます。
同じ理由で、より高い電圧はオーバークロッキング時に最大到達周波数を増加させます(トランジスターはより高い電圧でより速くスイッチングすることができます)。
小さいFFTモードは、CPUキャッシュに収まる小さなデータ項目のみを使用します。これは、キャッシュに収まらない可能性のある小さな値と大きな値の両方で動作するブレンドモードとは異なります。メモリへのアクセスはデータの単純な処理に比べて遅いため、プロセッサは実際にブレンドモードでデータを処理する時間を短縮し、熱出力を削減します。小さなFFTは、メモリアクセスほど多くの場所を必要としないため、CPUが実行する実際の作業が増えるため、電力消費と熱出力が増加します。