On Jan 31, 7:31 am, William Stein <[email protected]> wrote:
> On Fri, Jan 30, 2009 at 6:22 PM, mabshoff <[email protected]> wrote:
<SNIP>
> > I just did extend my little script to also detect SSE2 instructions
> > and only in $SAGE_LOCAL/lib there are 43 static libs and 143 dynamic
> > libs which use SSE2, so in so many words "No way José" without massive
> > poking around in the build system.
>
> I'll let José know that he's out of luck.
Well, I thought about this again and the above numbers are on a 64 bit
system where SSE2 is guaranteed to be available. So any non-SSE2, SSE
only binary would make only sense on a 32 bit x86-ish CPU.
> Have you tried detecting pni, sse4_1 and cmov (the other flags we test for)?
pni == SSE3 (Prescott New Instricutions), we don't use SSE4_1 yet in
Sage. There is a branch of MPIR that uses SSE4a instructions, but we
will build MPIR with --enable when that code is merged anyway.
cmov has been around since the days of the Pentium Pro and testing for
it back in the day made sense since IIRC there was some Cyrix "Pentium
Pro class" CPU which did not have cmov.
I would suggest we introduce something like
SAGE_OPTIMIZATION_TARGET
and if it is set to SSE2 (which for now is the only valid setting) we
build ATLAS with SSE2 only. The tuning will still be shitty for other
CPUs since sage.math's caches are rather above average in size, but I
guess a working binary is better than a slightly faster, but crashing
binary :)
I can add that env flag into the ATLAS.spkg in 3.3.alpha4 since I need
to fix some Solaris SNAFU I introduced anyway.
Thoughts?
> William
Cheers,
Michael
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---