我正在使用一些处理数字的代码,这些代码本质上是浮点密集型的,而且非常慢。它是研究代码,因此可以针对一种架构进行定制,并在Core2Quad box上运行。我的理解是,对于奔腾4/Netburst架构,英特尔严格剥离了SS2FPU,并采用了更多的x87为中心的设计。这导致了x87代码的糟糕性能。但是,Core2架构与P6架构的关系比Netburst更密切。
我的编译器根本不是以SSE为目标的AFAIK,我的理解是很少有编译器能很好地做到这一点。此外,我使用的是D语言,这是相当先进的,所以没有太多的编译器可用于它。然而,我不想切换语言,这既是因为我现有代码的惰性,也是因为尽管它不成熟,但我真的喜欢D。
Core2架构是否也有精简的x87浮点处理器?如果是这样,那么解决这个问题的最好方法是什么?
发布于 2008-11-25 04:21:30
找一个分析器-有太多的因素,如缓存未命中和内存访问延迟,能够将糟糕的性能归因于特定的处理器功能。如果你想找出什么是快速的,使用几种不同的方法实现相同的算法,并对其进行分析。
我还建议您查看liboil库,它允许您在不编写程序集的情况下使用SSE进行优化;但是,我不知道它如何与D集成。
https://stackoverflow.com/questions/316292
复制相似问题