問題タブ [branch-prediction]

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 に答える
1429 参照

c++ - 分岐時のキャッシュ ミス ペナルティ

分岐を 2 つの乗算に置き換えるか、または (キャッシュ ミスのペナルティにより) 置き換えない方が速いのだろうか?
これが私のケースです:

そして、私はそれを次のものに置き換えようとしています:

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

performance - より良い分岐予測子は何ですか? バイモーダルまたは Gshare?

あくまで個人の知識として…

Bimodal または Gshare のどちらが、他方よりも正確な予測を提供しますか? なぜ?

0 投票する
0 に答える
99 参照

x86-64 - Intel X86-64 の関数内の分岐予測の分岐履歴

分岐履歴は関数呼び出し間で保持されますか、または関数が入力されるたびに再初期化されますか?

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

c++ - フレームごとの分岐を最適化する方法は?

フレームごとにさまざまなものを更新するメイン ループがあるとします。

分岐予測子にとってより使いやすくすることはできますか? 分岐予測子は、各ブロックがnフレームごとに 1 回実行されると判断できますか? ブランチに依存しない代替手段はありますか (疑わしい、ブロックには十分に異なるロジックが含まれていると仮定します)。

完全な最適化がオンになることに注意してくださいswitch。大きな違いはありません (もしあれば)。

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

branch-prediction - 分岐予測子はどのような命令を投機的に実行しますか?

分岐予測について読んでいましたが、分岐予測子が「投機的に」あらゆる種類の命令を実行するかどうか疑問に思っています。特に、例えばハードウェアと通信するかどうかは疑問です。

次のようなものがあるとします。

(アセンブリ レベルでは、if の後の最初の命令が割り込みを発生させるか、ハードウェアと通信します)。この場合、分岐予測子がたまたま「間違っていると推測」するとどうなるでしょうか? これができない場合、なぜですか?分岐予測子はどのような命令を実行しますか? 分岐予測子の機能を誤解していますか?

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

c++ - アサーションでの分岐予測のヒント

ASSERT(...)C++ アプリケーションで使用するカスタムマクロがあります。

最近、Linux カーネル モジュールのコードを読んでいて、likely(...)unlikely(...)マクロの存在に出会いました。これらは、特定の分岐の可能性が高く、パイプラインがそのパスを最適化する必要があるというヒントを CPU に提供します。

アサーションは、定義により、true (つまりlikely) と評価されることが期待されます。

ASSERTマクロで同様のヒントを提供できますか? ここでの根底にあるメカニズムは何ですか?

明らかに、パフォーマンスの違いを測定しますが、理論的には違いがあるはずですか?

私は自分のコードを Linux でしか実行していませんが、クロスプラットフォームでこれを行う方法があるかどうか知りたいです。gcc も使用していますが、clang もサポートしたいと考えています。