这很难说/问,所以请多多包涵:
当我们看到汇编的输出时,这就是将在 CPU 的核心上执行的内容。但是,如果 CPU 有多个内核,那么所有程序集是否都在同一个内核上执行?来自同一程序的程序集何时开始在不同的内核上执行?
所以如果我有(汇编伪):
ADD x, y, z
SUB p, x, q
我怎么知道 ADD 和 SUB 是否会在同一个内核上执行?这与亲和力有关吗?我认为亲和力只将进程固定到 CPU,而不是核心?
我问这个是因为我想尝试了解您是否可以合理地预测连续的汇编指令是否在同一个内核上执行,以及我是否可以控制它们只在同一个内核上执行。我试图了解如何决定将执行相同的程序代码从一个内核更改为不同的内核?
如果程序集可以将执行(即使使用亲和性)从 CPUA Core1 更改为 Core2,QPI 链接速度是否会在此处生效?以及缓存是否在不同的 CPU 内核之间共享?