Rustのような同時実行時のパフォーマンスを向上させるためにCPUに変更を加えることはできますか?たとえば、同時実行に役立つ分岐予測の実装またはキャッシュサイズに変更はありますか?
現在のCPU設計は、Cのような手続き型ランタイムに対してより最適化されるかもしれないという印象を持っています。
例示のために、手続き予測コードを分析する研究論文に描かれた一般化に基づいて、分岐予測が実装されました。並行性の抽象化により、既存の分岐予測アルゴリズムに悪影響を与える重要なワーキングセットがランタイムに追加されるのではないかと思っています。たとえば、forループでの予測は1つのことですが、ブランチのターゲットが常にメモリの新しい部分(グラフィック、テキストなど)である場合、常にキャッシュミスであり、ブランチはありません。それの歴史-どちらもまだ触れていないからです。
これはおそらく馬鹿げた質問です。なぜなら、コンテンツは常にRAMにあるかもしれませんが、使用されるよりも小さい桁に分岐するからです(キャッシュに読み込まれたら)。手続き型ランタイムのキャッシュおよび分岐予測子に保存されているコンテキストの観察可能な時間境界である必要があります。これは、より並列化された環境で抽象化境界として明示されます。だから私は疑問に思う...これらの境界は観察されましたか?これを分析した研究論文はありますか?
CPUアーキテクチャは、同時実行コードよりも手続き型コードに偏っていますか?または、最新のCPUは汎用性が高く、高度な同時実行言語が問題になりませんか?