多核机器通常不支持哪种低级设施?

时间:2010-11-23 20:00:19

标签: optimization multicore cpu-architecture

我正在研究一些优化的,低级别的,跨平台的并发代码,这些代码旨在在多核机器上运行,并希望检查它的一些假设。

多核设计可能不支持某些类型的硬件优化(例如,无序执行支持[wikipedia]似乎是一个很好的候选者 - 它需要大量的表面积实施,可以是一个强大的生猪。有没有人有其他此类设施的列表 - 通常可以在单个或少量核心机器上使用,但通常会从具有更多内核数量的机器中省略?

1 个答案:

答案 0 :(得分:2)

今天,多核机器已经加热了单处理器的芯片收缩。你几乎可以想象将4芯骰子锯成4个1芯骰子。我只夸张了一点。

未来,多核机器将更加精心设计,以提高能效和面积效率。您可能会看到相同的ISA,但具有不同的资源组合(更多或更少数量的重复功能单元),甚至可以在核心之间共享资源(例如AMD Bulldozer)。并且,正如您所说,从无限制无序执行的复杂性和能量开销中退出。这很可能被认为是同一指令集架构上不同的每时钟指令(IPC)差异(或多或少的性能)。

此外,由于供应商必须兼顾大型无序串行性能优化内核和小型有序或无序(OoO)以及更窄,更节能的“吞吐量”内核的假设产品组合,他们将面临挑战,要求将这些不同的实施方案与其ISA的演变保持同步。某些内核可能比其他内核更早地支持新指令,新状态,新协处理器,虚拟化,安全性等。这导致了对公共分母进行编码的挑战,同时也点亮了新设施,以便在具有新功能的核心上实现更好的性能或能效(或其他)。

因此,为了回答您的具体问题,可以重新考虑所有用于表达功率,性能或能效交易门的传统计算机架构技术,并在未来面向小型吞吐量的核心中有选择地删除。

  • 硬件多线程
  • 激进的OoO - >谦卑的OoO甚至按顺序执行
  • 高度微观结构的推测
  • 花式分支预测变量
  • Big TLBs
  • 花哨的记忆预取器
  • 深层管道
  • 广泛发行/多份功能单位
  • 大缓存,宽敞的公共汽车到缓存
  • ...

但它有两个方面。也可能是新的小吞吐量优化的能量优化内核具有旧OoO内核中不存在的新功能。例如,Larrabee新指令(LRBni)(http://www.drdobbs.com/high-performance-computing/216402188)被提议用于具有数十个更简单核心的机器。另一个例子是,小内核可能会转向硬件多线程,以提供更好的内存延迟容忍度,以补偿较小的私有缓存。

此外,拥有大量小型节能核心意味着您可能愿意专注并因此定制一些核心,以优化特定宝贵工作负载的性能。例如,Tensilica定制处理器和工具预计您的一些小型内核将具有附加指令和自定义特定于问题的数据路径(例如,加速视频解码的内部循环)。因此,在这些情况下,小核心可能(反直觉地)具有比更大核心更好的性能。

有道理吗?

快乐的黑客攻击!