bug-gnubg
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re : [Bug-gnubg] USE_SSE2


From: Michael Petch
Subject: Re: Re : [Bug-gnubg] USE_SSE2
Date: Tue, 18 Aug 2009 03:10:16 -0600
User-agent: Microsoft-Entourage/12.20.0.090605


I am also making the assumption that the only files being compiled with -msse2 or –msse are the neural net ones (on the windows build). Now of Course if you build it across all the files with those flags other sections of the code would fail. So I guess the question is. What files do you intend to compile with?

If Jon says.. All the files... Then he’s right. Probably create 2 build (3 would cover all the bases)

1) NO CPU Autodetect version built with –msse2 and USE_SSE2
2) version built without SSE(2) support
3) NO CPU Autodetect version built with –msse and USE_VECTORIZE

The likelyhood someone is using 3 is probably small.

On 18/08/09 2:41 AM, "Michael Petch" <address@hidden> wrote:

On 18/08/09 2:31 AM, "Jonathan Kinsey" <address@hidden> wrote:


Are you sure?  The only link I could find about this says different:

http://www.network-theory.co.uk/docs/gccintro/gccintro_64.html

I suppose the only way to find out for sure is to test it, if someone can find a
machine that doesn't support sse...

It does seem unlikely that two lots of code would get generated for every
optimised part of code, but maybe there is some magic going on...


Maybe we are answering two possible questions.. Max’s question was a bit ambiguous\

By default SSE instructions will fail with illegal operations when run on unsuported hardware. So if you have SSE2 instructions and run them on an MMX processor or a processor withoutt them it will crash dump.

However, my answer was using knowledge of the changes you made to the code. If you have SSE autodetect (in the Gnubg code) on  and build with –msse2 and run the software on NON SSE2 systems it will fall back to Non SSE instructions (That’s what my tests indicate with builds I did). Same goes for –msse builds and running on systems that don’t’ have that capability.

I think we are ultimately talking the same thing. My opinion is we can do two builds

1) CPU Autodetect on version built with –msse2 and USE_SSE2
2) CPU Autodetect on version built with –msse and USE_VECTORIZE

If someone has an MMX(SSE) system they use #2 for best performance.
If someone has an SSE2 only they use #1 for best performance.
If someone has no MMX or SSE2 support they can use either build


reply via email to

[Prev in Thread] Current Thread [Next in Thread]