gpt4 book ai didi

c++ - cpp 松弛内存模型中发生的优化类型?

转载 作者:太空宇宙 更新时间:2023-11-04 13:33:59 25 4
gpt4 key购买 nike

发现很难找到发生在松弛内存模型中的各种优化。

我遇到过:推测注册分配,但确保列表不会在这里结束。

当开发人员尝试在 cpp 中使用宽松的内存模型时,会发生哪些编译器优化?

最佳答案

炒作是一个统称,有几十种。寄存器分配是编译(对于逻辑寄存器)和 CPU 工作(对于物理寄存器,是否存在)的自然过程的一部分 - 这些都与宽松的内存模型无关。

我能想到的主要优化是宽松的内存模型允许存储重新排序,否则通用编译器和 CPU 会阻止。这允许更好的内存并行性,因为您不序列化您的写入,甚至更好的缓存命中率,因为您可以使用缓存的行而不会停止并冒着从缓存中丢失行的风险。这也允许更好地将多个存储组合到同一个高速缓存行(写入组合),从而提供更好的带宽。

我主要是在谈论存储,因为现代无序 CPU 中的硬件通常已经对负载进行了优化。有一些预防措施用于检测那里的问题,但惩罚可能不会太糟糕。也有障碍,一些较弱的模型可以使用比 x86 正在做的重型栅栏更轻的栅栏,但实际上你可能不得不在较弱的模型上使用更多的栅栏,所以这实际上取决于你想要实现什么以及如何实现。

关于c++ - cpp 松弛内存模型中发生的优化类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30386449/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com