gpt4 book ai didi

linux - 设置亲和性会导致执行时间增加

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:09:53 25 4
gpt4 key购买 nike

我正在 16 核机器上运行一个有 16 个线程的多线程程序(包含大量原子操作)。当我设置线程的亲和性以使每个线程在唯一的 cpu 上运行时,与程序的非亲和版本相比,程序的执行时间增加了。使用 perf 我可以看到,当使用线程核心关联时,缓存未命中率从 10% 增加到 30%,这可能是执行时间增加的原因。您能否阐明使用亲和性如何导致更多缓存未命中?

最佳答案

Can you please shed some light on how using the affinity can cause more cache misses?

因为这些是 CPU 缓存,即一组每个处理器独立的缓存。例如两个线程读取相同的数据:

  • 如果它们在同一个核心P1上,T1会错过P1的所有级别的缓存并读入内存。数据在缓存中。 T2 读取并命中 P1 的缓存。欢呼!
  • 如果它们在不同的核心P1和P2上,T1会错过P1的所有级别的缓存并读入内存。数据在P1的缓存中。 T2错过P2的各级缓存,读入内存。

请看 What is a cache miss

关于linux - 设置亲和性会导致执行时间增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39141897/

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