[phobos] phobos commit, revision 2186

Dmitry Olshansky dmitry.olsh at gmail.com
Sun Nov 21 10:04:34 PST 2010


On 21.11.2010 20:18, David Simcha wrote:
> Can others on this mailing list please submit info about their CPUs 
> (manufacturer and core type) and whether the unit tests pass?  My 
> working hypothesis (mostly because I can't think of anything else 
> that's at all plausible) is that this discrepancy is somehow 
> hardware-related.  I'll start and give an example of what I'm looking 
> for:
>
> Intel Penryn:  Pass
> AMD Brisbane:  Fail
I myself, very concerned with FP code producing slightly different 
results on AMD and Intel,
so here are my results (exactly the same exe used through out):
AMD Phenom II: Fail  (Win7 64bit)
AMD Neo: Fail            (Win7 32bit)
Core 2 Duo: Pass       (WinVista 32bit)

I have a bad feeling about it...
>
> On 11/21/2010 1:19 AM, Don Clugston wrote:
>> On 21 November 2010 05:48, David Simcha<dsimcha at gmail.com>  wrote:
>>> More research into this issue:  I compiled the unittest.exe 
>>> executable on my
>>> main (desktop) computer, ran it under my primary OS (Win7 64) and it
>>> failed..  I then ran the exact same executable (no recompile) on my 
>>> Linux
>>> Partition (Ubuntu 10.10 64) using Wine and it failed.
>>>
>>> I then ran the exact same executable on my laptop on my primary OS 
>>> (also
>>> Win7 64) and it passed.  I ran it on my laptop's Linux partition 
>>> under Wine
>>> (Ubuntu 10.10 32) and it passed.
>>>
>>> The only difference between the two systems that might account for 
>>> this is
>>> that the laptop has an Intel Penryn CPU, whereas the desktop as an AMD
>>> Brisbane CPU.  Does anyone know whether different x86 CPUs can produce
>>> subtly different floating point results when executing the exact 
>>> same code?
>>> Alternatively, is it possible that some processor-specific 
>>> optimizations to
>>> some function getting called by Don's code could be causing slightly
>>> different results?
>> That's _very_ interesting. The code in question doesn't use the C
>> runtime at all.
>> If it's the same exe, then the difference can only lie in the CPU or
>> in the environment.
>> Eg, if it starts with 80-bit floats disabled.
>> But the fact that every other test passes on your system, makes that
>> seem unlikely.
>> Does the failing system have execution protection enabled?
>>
>> The only documented floating point difference between AMD and Intel
>> that I know of, is that AMD
>> raises the invalid exception when loading an 80-bit NaN, but Intel
>> doesn't. BTW I found that difference
>> myself, and added it to Wikipedia. That difference is not relevant here.
>>
>> If the CPU itself is responsible for the difference, that's a CPU bug.
>> BTW this test was present in Tango for years, and nobody ever reported
>> this issue before.
>> _______________________________________________
>> phobos mailing list
>> phobos at puremagic.com
>> http://lists.puremagic.com/mailman/listinfo/phobos
>>
>
> _______________________________________________
> phobos mailing list
> phobos at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/phobos



More information about the phobos mailing list