2

それがマネージド言語でも可能かどうかはわかりませんが、ハイパースレッディングが存在する場合にアプリケーションのパフォーマンスを実際に向上させることは可能ですか?

コードで実行できる特定の何かがありますか?、おそらくいくつかの関数はHT環境で他の関数よりもうまく実行されますか?

マルチスレッドの恩恵を受けるために必要なのは、新しいスレッドを生成して重いCPUタスクを実行することだけですが、HTに何が必要かわかりません。

4

1 に答える 1

4

あなたが持っている実際のハードウェアに大きく依存します。詳細分析の詳細については、「注意:ハイパーにするかハイパーにしないか」を参照してください。リンクでのSlavaのポイントは、HTでは仮想コアがキャッシュを共有し、仮想コアのワークロードが「メイン」コアのキャッシュを破棄する可能性があることです。メインコアと比較してワークロードの最大で約20%を実行できますが、 、メインコアのホットキャッシュを削除するため、メインコアがストールし、全体的にHTなしよりもパフォーマンスが低下します。

しかし、記事が投稿されてから多くのことが変更されました。HTpostNehalemの方がはるかに優れています。

マルチスレッドの恩恵を受けるために必要なのは、新しいスレッドを生成して重いCPUタスクを実行することだけです。

それはかなり素朴な見方です。高性能Windowsプログラム(マネージドアプリにも適用されます)に関するRick Vicikの記事を読む必要があり、CPUキャッシュとなぜ気にするのかを完全に理解する必要があります。

于 2013-03-09T19:37:33.617 に答える