分岐をなくして4倍高速化:Rustでif文を消すブランチレス・プログラミング
Branchless Rust: Making a Filter 4x Faster by Removing an If

Rustで書いたフィルタ処理が、データの並び順によって最大4倍も遅くなることがある。原因はCPUの分岐予測のミス。条件分岐を数値演算に置き換える「ブランチレス」手法で、最悪ケースを約4倍高速化し、実行時間をデータに依存しなくする方法を、ベンチマーク結果とともに解説する。
分岐は安い。しかし、予測を外した分岐は安くない。