問題タブ [hyperthreading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
5631 参照

cpu - 1 秒間に実行できる命令数は?

  • プロセッサには 4 つのコアがあります
  • 各コアには 2 つのハイパースレッドがあります
  • そのクロック周波数は 2 GHz です
  • 平均して、命令は各ハイパースレッドで実行するために 4 つの CPU サイクルを必要とします

1 秒間に実行できる命令数は? どの式を使用すればよいかについて助けが必要です。1 GHz には 1 ナノ秒で 1 CPU サイクルがあるため、2 GHz は 0.5 ナノ秒で 1 CPU サイクルを実行します。

0 投票する
2 に答える
1178 参照

caching - ハイパースレッディングとゲーム (およびその他のコンピューティング アプリケーション)?

ハイパースレッディング (物理コアごとに複数の論理コア) がさまざまな状況で実際のパフォーマンスにどのような影響を与えるかを考えていました。Intel はこれが実行スレッドが I/O を待機している場合に有効であると宣伝していますが、メモリ集約型のアプリケーションでは、論理コア間で切り替えが発生するとプロセッサ キャッシュで局所性が失われるため、効果がない可能性があります。2 番目のアプリケーションのデータがキャッシュに読み込まれ、最初のアプリケーションのメモリが強制的にキャッシュから取り出されます。最初のアプリケーションに戻ると、その参照はすべてキャッシュ ミスであり、パフォーマンスが失われます。私は何人かのスーパー コンピューター マネージャーを知っていますが、彼らはハイパースレッディングをオフにした方が効率的であると主張しています。「普通」はありますか?ハイパースレッディングを無効にする方が効率的なユーザー ケースはありますか? ゲームはメモリを大量に消費する可能性があります。ハイパースレッディングを使用しない方がよいでしょうか?

0 投票する
4 に答える
2213 参照

c - ハイパースレッディングに最適な gcc 最適化スイッチ

バックグラウンド

2.67 GHz で動作する intel i5 M 480 を搭載したラップトップで 4 つのスレッドを実行する EP (Embarassingly Parallell) C アプリケーションがあります。この CPU には 2 つのハイパースレッド コアがあります。

4 つのスレッドは、データの異なるサブセットに対して同じコードを実行します。コードとデータは、いくつかのキャッシュ ラインに問題なく収まります (完全に L1 に収まり、余裕があります)。コードには分割が含まれておらず、基本的に CPU バウンドであり、使用可能なすべてのレジスタを使用し、シーケンスの完了時に結果を書き込むために (L1 の外側で) いくつかのメモリ アクセスを実行します。

コンパイラはmingw64 4.8.1、つまりかなり最近のものです。最適な基本最適化レベルは -O1 のようです。この場合、4 つのスレッドが 2 つよりも速く完了します。-O2 以上では、-Os と同様に実行が遅くなります (2 つのスレッドは 4 つよりも速く完了しますが、-O1 よりは遅くなります)。各スレッドは、平均して毎秒 337 万のシーケンスを実行し、それぞれ約 780 クロック サイクルになります。平均して、すべてのシーケンスは 25.5 のサブ操作、つまり 30.6 サイクルごとに 1 つの操作を実行します。

したがって、2 つのハイパースレッドが 30.6 サイクルで並列に実行することは、1 つのスレッドがそれぞれ 35 ~ 40 または 17.5 ~ 20 サイクルで順次実行することになります。

わたしはどこにいますか

私が必要としているのは、ローカル CPU のリソースをめぐって 2 つのハイパースレッドが常に衝突するほど高密度/効率的ではないコードを生成することだと思います。

これらのスイッチはかなりうまく機能します (モジュールごとにコンパイルする場合)。

#include 他のすべてを含む 1 つのモジュールをコンパイルするときにこれらを行うように

両者の間に識別可能なパフォーマンスの違いはありません。

質問

誰かがこれを試して、良い結果を達成しましたか?

0 投票する
5 に答える
5749 参照

multithreading - ハイパースレッディング / SMT は欠陥のある概念ですか?

HT/SMT の背後にある主なアイデアは、1 つのスレッドが停止したときに、同じコアの別のスレッドがそのコアの残りのアイドル時間を取り込んで透過的に実行できるというものでした。

2013 年、Intel は SMT を廃止し、Silvermont プロセッサ コアのアウトオブオーダー実行を支持しました。これによりパフォーマンスが向上することがわかったためです。

ARM は SMT をサポートしなくなりました (エネルギー上の理由から)。AMD はそれをサポートしていませんでした。実際には、それをサポートするさまざまなプロセッサがまだあります。

私の見解では、データとアルゴリズムがキャッシュ ミスとそれに続く処理の失速を何としてでも回避するように構築されている場合、HT はマルチコア システムの冗長な要素になるのでしょうか? 2 つの HyperThreads の個別のハードウェアが同じ物理コア内に存在するため、関連するコンテキスト スイッチングのオーバーヘッドが少ないことは理解していますが、これがコンテキスト スイッチングをまったく行わないよりも優れているとは思えません。

私は、HyperThreadingが必要になるということは、ソフトウェア設計に欠陥があることを示していると示唆しています。ここに欠けているものはありますか?

0 投票する
3 に答える
957 参照

operating-system - 「論理CPUコア」とは

オペレーティング システムの資料を読んでいます。「マルチコアとは、複数の論理 CPU コアを持ち、同時に複数の命令を実行できるコンピュータまたはプロセッサを指します。」

「論理CPUコア」とは何ですか、それはプロセッサですか? それは物理的なものに対応していますか、それとも論理CPUコアを見るのはOSですが、実際には論理CPUコアよりも物理プロセッサが少ないのですか?

0 投票する
1 に答える
1338 参照

multithreading - Visual Studio はハイパースレッド マイクロプロセッサ用に最適化されていますか?

Microsoft Visual Studio のコンパイラなどの最も一般的なソフトウェア開発スイートが、ハイパー スレッディング機能を最大限に使用できるように最適化されているかどうかを知りたいですか? これらのソフトウェアを操作するために、ハイパースレッド プロセッサを使用する価値はありますか?

ハイパー スレッディングは、ビデオ エディターなどの集中的なマルチ スレッド アプリケーションにのみ役立つという多くのレビューを読みました。一部のレビューでは、ハイパー スレッディングの使用に最適化されていないソフトウェアはパフォーマンスが低下する可能性があり、多くの人がシステムをハイパーで実行しています。スレッドがオフになりました。

私は初心者のプログラマーなので、これらの議論とレビューがプログラミングの分野で正しいかどうかを知りたい.

繰り返しますが、私はコンパイラと IDE について話しているのであって、作成しようとしているアプリケーションについてではありません! (あたかもマルチスレッド アプリケーションの作成方法がわからないかのように!!)

0 投票する
1 に答える
1315 参照

linux - 最大 CPU 使用率 (最大許容 CPU 使用率)

クアッド コア (ハイパー スレッディング テクノロジ - HT) を使用しています (TOP コマンドによると) 270% の CPU を使用するアプリケーションを実行しています

  1. 使用可能な合計 CPU 使用率は? (400% か 800% か?)

    • Intel のドキュメントによると、HT は CPU のパフォーマンスを最大 30% 向上させることができるので、800% は多くのように見えるので、質問しています。
  2. 負荷平均と CPU 使用率の関係は?

0 投票する
1 に答える
221 参照

hyperthreading - ハイパースレッディング - 本当に X2 コア?

Intel によると (私が間違っていなければ)、ハイパー スレッディング (HT) は次のことができます。 - パフォーマンスが最大 30% 向上します。- HT は、1 つのタスクが ALU ユニットを使用し、もう 1 つのタスクが I/O を実行している場合 (たとえば、1 つのタスクが zip alg を使用し、もう 1 つのタスクがディスクへのデータの書き込みに使用する場合)、CPU をより有効に使用できます。 HTが使えます。

したがって、HT を備えた 1 つのコアがあり、2 つの zip アルゴリズムを実行する 2 つのタスクを同時に使用している場合、1 つのタスクが他のタスクが ALU ユニットの作業を完了するのを待つため、HT はここでは効率的ではありませんか? (この場合、HT の 1 つのコアではなく、2 つのコアが必要です)。

Intel が HT で何を意味するか理解できましたか? そうですか?