IPC和核心数之间的关系?哪个规范提到了这个数字?

计算科学 高性能计算 英特尔-mkl 多核
2021-12-17 22:59:16

在多核架构中,每秒指令数 (IPS) 和每周期指令数 (IPC) 参数是单核还是整个 CPU?在哪里寻找这个值?它会随着核心数量的增加而改变吗?

例如,在 Intel 的 Sandy Bridge 和 Cascade Lake 的情况下,IPC 值是多少?哪个英特尔规范提到了这一点?随着核心数量的增加,该值是否会(线性)增加?

1个回答

IPS 和 IPC 通常指定为“每个内核”。这是因为处理器制造商通常会改变他们在同一处理器上封装的特定类型内核的数量,因此指定每个处理器的这些内核并没有什么意义,而在这些情况下内核总是相同的——核心通常由处理器的“代”来描述。

我会说每周期指令是一个困难的指标。处理器不能执行任何每个周期 N 条指令。相反,内核实现了某些可以并行工作的功能块。例如,可以考虑同时发生加载、整数加法、浮点乘法和移位操作。但是核心不能同时执行四个整数加法。此外,这些操作中的每一个都可能需要一个以上的周期——例如,浮点运算通常需要一个以上的周期。换句话说,很难从知道每个周期可以执行多少条指令到执行具有 M 条指令的程序实际需要多长时间来进行推断——人们不仅需要知道它们是哪种指令,以及它们在程序中出现的顺序。