每个内核都有自己的掩码 (k0-k7) 寄存器吗?



我知道每个内核都有自己的一组寄存器。 这是否包括 AVX-512 掩码寄存器 k0 - k7? 我问是因为我有一个随机数据错误的程序;它广泛使用掩码寄存器,因此如果掩码寄存器是共享的,那么这可以解释它。 从逻辑上讲,它们似乎必须各自拥有自己的一组掩码寄存器。

是的,所有寄存器都是核心/线程私有的,这是操作系统必须在任务之间的上下文切换时保存/恢复的每核架构状态的一部分。 就像RAX一样。R15 和 ZMM0..ZMM31、段寄存器等。

正如您所猜测的,如果不同的线程或逻辑内核都共享相同的架构掩码寄存器,则AVX512屏蔽在多任务操作系统下基本上无法使用。

此外,在您假设的疯狂设计中,保持内核之间的掩码寄存器同步将是严重的 CPU 设计挑战。 为每个内核提供自己的一组私有寄存器要容易得多。 在具有单周期延迟的~4GHz内核之间进行通信将很困难。

相关内容

  • 没有找到相关文章

最新更新