[PlanetCCRMA] Fftw3
William M. Quarles
walrus@bellsouth.net
Wed Nov 24 16:23:01 2004
Fernando Lopez-Lezcano wrote:
> On Wed, 2004-11-24 at 15:29, William M. Quarles wrote:
>
>>The program that seems that it would be most dependent on
>>architecture/instruction calls would be Fftw3. It's not optimized for
>>i586 or i686, only i386. AMD K6 and cousins might prefer i586, big boy
>>Athlon would obviously prefer athlon, Intel would prefer i686, and
>>pentium4 architecture for P4s. However, those optimizations have to be
>>specified during the configure stage before compile-time. You can't
>>choose both Intel (SSE) and AMD (3DNow!) optimizations at the same time,
>>can you?
>
>
> Why do you say so?
>>From the Planet CCRMA repository directory tree:
>
> planetccrma/mirror/fedora/linux/planetccrma/1/i386/fftw3-3.0.1-1.rhfc1.ccrma.athlon.rpm
> planetccrma/mirror/fedora/linux/planetccrma/1/i386/fftw3-3.0.1-1.rhfc1.ccrma.i386.rpm
> planetccrma/mirror/fedora/linux/planetccrma/1/i386/fftw3-3.0.1-1.rhfc1.ccrma.i586.rpm
> planetccrma/mirror/fedora/linux/planetccrma/1/i386/fftw3-3.0.1-1.rhfc1.ccrma.i686.rpm
>
> so yes, I'm building those packages with multi architecture
> optimizations.
Are those new? OK, apparently I didn't check up on the facts before
installing. Maybe that's why APT is complaining
Anyway, what about the flags during the configuration stage? As far as
I recall, the program is not making use of SSE or 3DNow! if those aren't
specified.
> An additional comment (this has surfaced in various mailing lists
> several times): on most programs the optimizations may not do much, if
> anything. On modern Intel cpus the advantage of the extra instructions
> is in practice pretty much nil. What does make a difference is the
> instruction ordering and you can optimize that separately from the
> actual mix of instructions used (ie: you can build a binary that has
> instruction ordering optimized for i686 but only uses i386
> instructions). That is how all redhat packages are built (and why it
> does not really make sense to have a "i686" version of them). On athlon
> cpus instruction even ordering is pretty much irrelevant...
I rebuilt Fedora Core 2 Mozilla SRPMS for Fedora Core 1 with the missing
$RPM_OPT_FLAGS replaced and using --target=i686. It starts A LOT faster
than the i386 compilations. However, this particular does not actually
include i686 scheduling since the $RPM_OPT_FLAGS is not used, neither in
the source code nor in the spec file (and many other Red Hat pacakges
are that way as well).
Peace,
William