2008-11-25 57 views
0

我正在處理一些數字運算代碼,就其本質而言,它是浮點密集型的,而且速度很慢。它是研究代碼,因此它可以針對一種架構進行量身定製,並且正在Core 2 Quad盒子上運行。我的理解是,對於Pentium 4/Netburst體系結構,英特爾嚴重剔除了x87 FPU,並採用了更多以SSE2爲中心的設計。這導致了x87代碼的糟糕表現。但是,Core 2架構與Netburst的P6架構更密切相關。Core 2 x87浮點性能

我的編譯器並沒有針對所有AFAIK的SSE,我的理解是很少有編譯器能很好地完成這項工作。此外,我正在使用D語言,這是相當流行的優勢,所以只有很少的編譯器可用。但是,我不想切換語言,這既是因爲我現有代碼的慣性,也因爲儘管它不成熟,但我真的很喜歡D.

Core 2架構是否也具有精簡的x87 FPU?如果是這樣,最好的解決辦法是什麼?

+3

我想我有一箇舊的80387-16抽屜裏的某個地方。讓我知道你是否想要購買它。 :) – KristoferA 2008-11-25 03:36:24

+0

如果我可以的話,我會投票發表評論:) – 2008-12-28 08:53:56

回答

2

讓自己去探查器 - 有太多的因素,如緩存未命中和內存訪問延遲,可以將不良的性能歸因於特定的處理器功能。如果你想知道什麼是快速的,使用幾種不同的方法實現相同的算法並對其進行分析。

我也建議看看liboil庫,它可以讓你優化使用SSE而無需編寫程序集;但我不知道它如何與D集成。