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

New atlas packages



[ I've tried submitting this twice, and cc'ing the ports lists.  I'm
guessing the mailer is treating me as spam, so now am only sending to
debian-devel.  Perhaps the others individually later . ]

Greetings!  I've recently returned from sabbatical, and will have some
limited time now to try to put together a new set of atlas packages.

As you may know, atlas constructs a free optimized blas (and partial
lapack) library by carefully timing and searching through various
algorithms on the building computer.  Several ISA instruction sets are
supported, many not yet output by gcc at all.  To get good results, it
is essential that the building machine be quiet during the timing
process.

The Debian package can collect the output of a successfully timed
atlas build, and rerun it during future package builds without
executing any code on the compiling machine.  This is important given
our autobuilder setup.  So timing builds only need be performed on new
upstream releases, which are infrequent.  Timing builds can be very
cpu intensive and take a long time.

As there are minor API changes in the newest release, I'm going to
increase the soname and leave the existing set in the archive for
transition purposes.  Currently, atlas is available for all platforms
except arm.

Debian has a virtual "lapack" and "blas" library package setup, which
means that applications using atlas can simply link against blas
and/or lapack and run off of the more portable reference lapack/blas
libraries wherever atlas is not installed.  The Debian atlas packages
will modify /etc/ld.so.conf on atlas package install to use the
fastest blas/lapack version which can be executed on the installing
machine, thereby giving such applications a significant increase in
performance without recompilation. Therefore, atlas need not even be
available on all platforms for support for end user applications to be
maintained.

While absolute optimal performance can only be attained by the end
user building a customized atlas package for their machine, *very*
large performance gains can be had generically by way of the atlas
packages in the archive.  I typically forget about considerations of a
few tens of percent for these purposes, but strive to capture all
gains of the order of a factor of two or higher.

The outline of the package structure I have in mind is as follows:
("base" refers to a vanilla ISA instruction set, i.e. executable on
all machines of the general arch)

i386: base 3dnow sse sse2
sparc: base ultrasparc
powerpc: base altivec
alpha: base ev56
others: base only
	

It would greatly assist me if I could get some feedback on the
following questions.  I'm cc'ing this to the ports lists to solicit
opinions from the users of the less common platforms as well.  Please
let me know which of the following most accurately reflects your
opinion/preference for atlas on your platform of choice:

1) No one in their right mind will run atlas on these boxes -- I want
   my platform excluded from the Architecture: list.

2) I want a placeholder atlas package, not really important if its
   well tuned.  Just blast it through the autobuilder and use whatever
   it spits out as a "base" build only.

3) I want good atlas packages, and the autobuilders on our platform
   are completely dedicated to whatever *single* package they build at
   any one given time.   Send it to the autobuilder, and use its
   output for a good "base" build only.

4) I want good atlas packages, and our autobuilders are too noisy to
   generate a good timing build.  I can make machine xyz available and
   quiet on mm/dd/yyyy for the purposes of timing an atlas build.

5) I want good atlas packages supported for several ISA extensions
   available for my platform.  The autobuilders will not allow atlas
   to see these extensions, so I can make machine xyz available and
   quiet on mm/dd/yyyy for the purposes of timing an atlas build for
   ISA extensions ....

6) You've overlooked ISA extension ... on my platform, which I feel
   really should be supported

7) You've included ISA extension ... on my platform, which really is
   not important and should not be in the archive.


Many thanks,

-- 
Camm Maguire			     			camm@enhanced.com
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah



Reply to: