我有一些数字运算代码,其本质,是浮点密集型,只是普通的工作缓慢。这是研究代码,因此它可以针对一个架构,并在酷睿2四盒正在运行。我的理解是,奔腾4 / Netburst架构,英特尔严重剥离下来的x87 FPU,并采用了更SSE2为中心的设计。这导致上的x87代码的可怕表现。然而,芯2的架构更密切相关的P6架构比的Netburst。

我的编译器不针对SSE在所有据我所知,我的理解是,很少有编译器做到这一点。此外,我现在用的是d的语言,这是相当前沿的,所以只是没有提供它的许多编译器。不过,我并不想转行,一方面是因为我现有的代码,并且由于惯性的语言,尽管它的不成熟,我真的很喜欢d。

是否核心2的架构还具有剥离下来的x87 FPU?如果是这样,什么是解决这个问题的最好方法?

有帮助吗?

解决方案

让自己探查 - 有太多的因素,如缓存未命中和内存访问延迟可以归因糟糕表现特定的处理器功能。如果你想了解什么是速度快,使用几种不同的方法来实现相同的算法和配置文件了。

我会还建议看liboil库,它可以让您优化使用SSE,而无需编写组件;我不知道它如何与然而d集成。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top