【问题标题】:Core 2 x87 Floating Point PerformanceCore 2 x87 浮点性能
【发布时间】:2008-11-25 03:31:42
【问题描述】:

我正在处理一些数字处理代码,这些代码本质上是浮点密集型的,而且速度很慢。它是研究代码,因此可以针对一种架构进行定制,并在 Core 2 Quad 机器上运行。我的理解是,对于 Pentium 4/Netburst 架构,Intel 严重剥离了 x87 FPU,采用了更加以 SSE2 为中心的设计。这导致 x87 代码的性能很糟糕。但是,Core 2 架构与 P6 架构的关系比 Netburst 更密切。

我的编译器根本不针对 SSE AFAIK,我的理解是很少有编译器能很好地做到这一点。此外,我使用的是相当前沿的 D 语言,因此可用的编译器并不多。但是,我不想切换语言,既是因为我现有代码的惯性,也是因为尽管它不成熟,但我真的很喜欢 D。

Core 2 架构是否也具有精简的 x87 FPU?如果是这样,解决此问题的最佳方法是什么?

【问题讨论】:

  • 我想我的抽屉里有一个旧的 80387-16。如果你想买,请告诉我。 :)
  • 如果可以的话,我会投票支持评论:)

标签: performance optimization hardware floating-point intel


【解决方案1】:

让自己使用分析器 - 缓存未命中和内存访问延迟等因素太多,无法将性能不佳归因于特定处理器功能。如果您想知道什么是快,请使用几种不同的方法实现相同的算法并对其进行分析。

我还建议您查看 liboil 库,它可以让您使用 SSE 进行优化,而无需编写汇编;但是我不知道它是如何与 D 集成的。

【讨论】:

  • D支持C ABI,所以如果是C库,应该是可以用的。
  • 不过,我不喜欢那里的 C 函数调用开销。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-10
  • 1970-01-01
  • 2013-12-15
  • 1970-01-01
相关资源
最近更新 更多