为什么我们的所有核心CPU都具有相同的速度,而不是不同速度的组合?

杰米

通常,如果您要购买一台新计算机,则可以根据预期的工作量确定要购买的处理器。游戏中的性能往往由单核速度决定,而视频编辑等应用程序则由单核数目决定。

就市场上可用的产品而言,所有CPU似乎都具有大致相同的速度,主要区别在于更多的线程或更多的内核。

例如:

  • Intel Core i5-7600K,基本频率3.80 GHz,4核,4线程
  • Intel Core i7-7700K,基本频率4.20 GHz,4核,8线程
  • AMD Ryzen 5 1600X,基本频率3.60 GHz,6核,12线程
  • AMD Ryzen 7 1800X,基本频率3.60 GHz,8核,16线程

那么,为什么我们看到这种增加内核的模式,而所有内核都具有相同的时钟速度?

为什么我们没有具有不同时钟速度的变体?例如,两个“大”核心和许多小核心。

例如,为了代替例如在4.0 GHz下的四个核心(即最大4x4 GHz〜16 GHz),CPU的两个内核在4.0 GHz下运行,而四个核在2 GHz(即2x4.0 GHz)下运行呢? + 4x2.0 GHz〜16 GHz(最大值)。第二种选择在单线程工作负载上是否会同样出色,而在多线程工作负载上可能会更好?

我问这个问题是一个一般性的问题,而不是专门针对我上面列出的那些CPU或任何特定的一个特定工作负载。我只是好奇为什么这种模式是这样。

bw德拉科

这被称为异构多处理HMP),并被移动设备广泛采用。在实现big.LITTLE的基于ARM的设备中,处理器包含具有不同性能和功耗配置文件的内核,例如,某些内核运行速度快,但消耗大量功率(更快的体系结构和/或更高的时钟),而其他内核节能高效,但速度较慢(较慢的架构和/或较低的时钟)。这很有用,因为一旦超过某个点,功耗就会随着性能的提高而成比例地增加。这里的想法是在需要时获得性能,而在不需要时获得电池寿命。

在台式机平台上,功耗几乎不是问题,因此这不是真正必要的。大多数应用程序期望每个内核具有相似的性能特征,并且HMP系统的调度过程比传统SMP系统的调度要复杂得多。(Windows 10从技术上说支持HMP,但它主要用于使用ARM big.LITTLE的移动设备。)

另外,当今大多数台式机和笔记本电脑处理器的散热或电气性能不受限于某些内核甚至在短脉冲时间内需要比其他内核运行得更快的程度。从根本上讲我们可以快速完成单个内核,因此用较慢的内核替换某些内核将不会使其余内核运行得更快。

虽然有一些台式机处理器具有一个或两个内核,它们的运行速度比其他内核要快,但是此功能当前仅限于某些非常高端的Intel处理器(如Turbo Boost Max Technology 3.0),并且仅在性能上有所提升对于那些可以运行得更快的内核。


虽然当然可以设计既有大型,快速内核,又有较小,较慢的内核的传统x86处理器,以针对线程密集的工作负载进行优化,但这将为处理器设计增加相当大的复杂性,并且应用程序不太可能正确地支持它。

假设有一个具有两个快速Kaby Lake(第七代Core)内核和八个慢速Goldmont(Atom)内核的处理器。您总共有10个内核,并且针对此类处理器进行了优化的高线程工作负载可能会比普通的四核Kaby Lake处理器获得更高的性能和效率但是,不同类型的内核具有完全不同的性能水平,慢速内核甚至不支持快速内核支持的某些指令,例如AVX(ARM通过要求big和LITTLE内核都支持相同的指令来避免此问题。)

同样,大多数基于Windows的多线程应用程序都假定每个内核都具有相同或几乎相同的性能水平,并且可以执行相同的指令,因此这种不对称可能导致性能不理想,甚至在崩溃时崩溃。它使用慢速内核不支持的指令。尽管英特尔可以修改慢速内核以添加高级指令支持,以便所有内核都可以执行所有指令,但这无法解决异构处理器的软件支持问题。

与您在问题中所考虑的更接近的另一种应用程序设计方法将使用GPU来加速应用程序的高度并行部分。可以使用诸如OpenCLCUDA之类的API来完成对于单芯片解决方案,AMD在其APU中促进了对GPU加速的硬件支持,该APU将传统CPU和高性能集成GPU与异构系统体系结构结合在同一芯片上,尽管这在外部并没有太多的应用。一些专门的应用程序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我的所有按钮的下拉内容都相同

来自分类Dev

为什么我们仍然使用CPU而不是GPU?

来自分类Dev

为什么我的CPU的速度比1.6GHz的核心速度高得多?

来自分类Dev

为什么我在VirtualBox中的所有16.04服务器都具有相同的IP地址(10.0.2.15)?

来自分类Dev

CPU 中的所有内核在速度方面是否相同?

来自分类Dev

为什么@WidgetBundleBuilder会使所有小部件都具有相同的视图?

来自分类Dev

为什么网络上的所有计算机都具有相同的MAC地址?

来自分类Dev

为什么Windows 10中的所有开始菜单图块都具有相同的颜色?

来自分类Dev

为什么我们不能在所有情况下都只使用可比性?

来自分类Dev

Typescript-当我们知道所有属性都相同时,如何显式分配每个属性的类型?

来自分类Dev

为什么sl在不同的环境中会有不同的速度?

来自分类Dev

在JVM指令中,有些具有不同的前缀,但是它们的功能非常相似。我们真的需要它们吗?如果是,为什么?

来自分类Dev

既然我们有snprintf,为什么我们没有snscanf?

来自分类Dev

为什么我们需要在Kafka Consumer Configuration中添加所有Zookeeper节点

来自分类Dev

为什么gsutil rsync重新下载我们所有的文件?

来自分类Dev

如果 jQuery 已经在做所有事情,为什么我们需要 React

来自分类Dev

制作 VM 时,为什么我不想将所有 cpu 内核都传递给它?

来自分类Dev

为什么所有的速度值都是0?

来自分类Dev

我们是否需要将所有具有不同dpi的图像添加到Android Apps

来自分类Dev

我们是否需要将所有具有不同dpi的图像添加到Android Apps

来自分类Dev

为什么所有项目都重复相同的ID

来自分类Dev

为什么所有内容都打印相同的字母等级?

来自分类Dev

为什么所有列表都获得相同的值 - python?

来自分类Dev

在tf-idf中,为什么我们要按文档频率而不是语料库中所有文档的平均术语频率进行归一化?

来自分类Dev

为什么我们不能重复使用具有不同模板参数的别名模板标识符?

来自分类Dev

为什么我的各种HTML表都具有不同的宽度?

来自分类Dev

为什么不是所有线程都完成了?

来自分类Dev

为什么我们有不变的空白地图?

来自分类Dev

为什么我们有不变的空白地图?

Related 相关文章

  1. 1

    为什么我的所有按钮的下拉内容都相同

  2. 2

    为什么我们仍然使用CPU而不是GPU?

  3. 3

    为什么我的CPU的速度比1.6GHz的核心速度高得多?

  4. 4

    为什么我在VirtualBox中的所有16.04服务器都具有相同的IP地址(10.0.2.15)?

  5. 5

    CPU 中的所有内核在速度方面是否相同?

  6. 6

    为什么@WidgetBundleBuilder会使所有小部件都具有相同的视图?

  7. 7

    为什么网络上的所有计算机都具有相同的MAC地址?

  8. 8

    为什么Windows 10中的所有开始菜单图块都具有相同的颜色?

  9. 9

    为什么我们不能在所有情况下都只使用可比性?

  10. 10

    Typescript-当我们知道所有属性都相同时,如何显式分配每个属性的类型?

  11. 11

    为什么sl在不同的环境中会有不同的速度?

  12. 12

    在JVM指令中,有些具有不同的前缀,但是它们的功能非常相似。我们真的需要它们吗?如果是,为什么?

  13. 13

    既然我们有snprintf,为什么我们没有snscanf?

  14. 14

    为什么我们需要在Kafka Consumer Configuration中添加所有Zookeeper节点

  15. 15

    为什么gsutil rsync重新下载我们所有的文件?

  16. 16

    如果 jQuery 已经在做所有事情,为什么我们需要 React

  17. 17

    制作 VM 时,为什么我不想将所有 cpu 内核都传递给它?

  18. 18

    为什么所有的速度值都是0?

  19. 19

    我们是否需要将所有具有不同dpi的图像添加到Android Apps

  20. 20

    我们是否需要将所有具有不同dpi的图像添加到Android Apps

  21. 21

    为什么所有项目都重复相同的ID

  22. 22

    为什么所有内容都打印相同的字母等级?

  23. 23

    为什么所有列表都获得相同的值 - python?

  24. 24

    在tf-idf中,为什么我们要按文档频率而不是语料库中所有文档的平均术语频率进行归一化?

  25. 25

    为什么我们不能重复使用具有不同模板参数的别名模板标识符?

  26. 26

    为什么我的各种HTML表都具有不同的宽度?

  27. 27

    为什么不是所有线程都完成了?

  28. 28

    为什么我们有不变的空白地图?

  29. 29

    为什么我们有不变的空白地图?

热门标签

归档