Review Re-Request: ATLAS, a fast implementation of BLAS and LAPACK

Dominik 'Rathann' Mierzejewski dominik at greysector.net
Tue Sep 13 22:00:06 UTC 2005


On Tuesday, 13 September 2005 at 23:34, Quentin Spencer wrote:
> Dominik 'Rathann' Mierzejewski wrote:
> >On Tuesday, 13 September 2005 at 20:17, Quentin Spencer wrote:
> >>Dominik 'Rathann' Mierzejewski wrote:
> >>>On Monday, 12 September 2005 at 20:42, Quentin Spencer wrote:
> >>>>
> >>>I think the 3DNow-optimized binary could be %ifarch'd athlon
> >>>and SSE could be default for pentium3[1], SSE2 for pentium4[1].
> >>>I don't think there's any point in providing an i386 package.
> >>>
> >>>[1] at least for FC4. For FC3 there's a problem with lack of pentium3
> >>>and pentium4 arches in RPM.
> >
> >>The point in providing an i386 package is that we don't know what 
> >>hardware people are running FC4 on, and it is unacceptable for the 
> >>package to simply not work on pre-SSE processors (I still have a Pentium 
> >>233 which I run Fedora on).
> >
> >I agree, but I thought the point of atlas was to provide libs only
> >for those CPUs with SSE/3DNow. If that's not the case, then what's
> >their advantage over BLAS?
> 
> They are still faster than BLAS. Some rough figures from my experience 
> (depending on the size of the matrix computation) are that base i386 
> atlas is about 3x faster than BLAS, and SSE2 atlas is about 10x faster.

OK. Won't they (or shouldn't they) conflict with BLAS then?

> >>Furthermore, the base i386 architecture is 
> >>the only one on which shared libraries can currently be compiled with 
> >>GCC4 (The maintainer is aware of the problem, but a fix might not be). 
> >>So compiling the package on i386 creates the following packages:
> >>atlas
> >>atlas-devel
> >>atlas-sse-devel
> >>atlas-sse2-devel
> >>atlas-3dnow-devel
> >
> >How about
> >atlas.i386
> >atlas-devel.i386
> >atlas-devel.pentium3
> >atlas-devel.pentium4
> >atlas-devel.athlon
> >instead? The last three would be, as I proposed earlier, %ifarch'd in the
> >spec, so this would need to be built with
> >--target i386 to get the first two
> >and with
> >--target pentium3, pentium4 and athlon to get the rest
> >
> >I think it's cleaner that way and doesn't require the user to know
> >whether or not his CPU supports SSE2 instructions. It also prevents
> >him from installing the wrong package accidentally.
> 
> This would all be nice if we had yum repositories that were specific to 
> pentium3, athlon, etc. However, right now we have three repository and 
> build system architectures: i386, x86_64, and PPC, so the spec file has 
> to build everything from those base architectures,

Not quite so. You can put all x86 RPMs in one repo and yum will select
automatically the one matching your arch from them. Example:

In an i386 repo, there are:
atlas-devel-0.1-1.i386.rpm
atlas-devel-0.1-1.pentium3.rpm
atlas-devel-0.1-1.pentium4.rpm
atlas-devel-0.1-1.athlon.rpm

You have, let's say, an Athlon CPU.
yum install atlas-devel
will select atlas-devel-0.1-1.athlon.rpm for installation.

That said, x86_64 (and PPC, of course) *are* different and cannot be put
in the same repo.

Regards,
R.

-- 
APT/YUM RPM repository for Fedora Core http://rpm.greysector.net/
mpg321, xmp, faad2, lame, mad, *mplayer*, rdesktop, tin, xvid, mks, mutt
"Faith manages."
        -- Delenn to Lennier in Babylon 5:"Confessions and Lamentations"




More information about the fedora-extras-list mailing list