0

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

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

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

4

1 回答 1

2

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

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

于 2008-11-25T04:21:29.933 回答