gpt4 book ai didi

linux - 哪些 <4GB 的工作负载在 Linux x32 ABI 中的性能会比 x64 差?

转载 作者:IT王子 更新时间:2023-10-29 01:10:18 26 4
gpt4 key购买 nike

有一个比较new Linux ABI referred to as x32 ,其中 x86-64 处理器以 32 位模式运行,因此指针仍然只有 32 位,但仍然使用 64 位架构特定的寄存器。所以你仍然限制在正常 32 位中使用 4GB 最大内存,但是你的指针使用的缓存空间比在 64 位中少,你可以有效地进行 64 位算术,并且你可以访问更多寄存器(16) 比普通 32 位 (8) 中的要多。

假设您的工作负载正好适合 4GB,x32 的性能是否会比 x86-64 差?

在我看来,如果您不需要额外的内存空间,则不会丢失任何东西——您应该始终获得相同的性能(当您已经适合缓存时)或更好(当指针空间节省让您适合更多时)在缓存中)。但如果有分页/TLB/等,我不会感到惊讶。我不知道的细节。

最佳答案

当然,如果您有一个多线程程序,x32 上的数据结构较小这一事实可能会导致线程之间的缓存行争用——不同的对象可能会在 x32 模式下分配到同一缓存行,而在 x86_64 模式下分配到不同的缓存行。如果两个线程独立修改这些对象,缓存乒乓可能会严重降低 x32 代码的速度。当然,无论指针大小如何,这种缓存效应都可能发生,但如果假设 64 位指针对代码进行了调优,那么转向 32 位指针可能会使事情失调。

关于linux - 哪些 <4GB 的工作负载在 Linux x32 ABI 中的性能会比 x64 差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12903049/

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