Rebase to 3.10.0

- Dropped x86_64-SSE2, ix86-SSE1, ix86-3DNow (uncompilable).
- Unbundled Lapack.
- Added subpackage static.
- Disabled incompatible patches.
- Modified makefile to include build-id.
- Disabled cpu throttling detection again (sorry, could not work on atlas
  otherwise, feel free to enable yet again - atlas-throttling.patch).
- Removed mentions of "Fedora" to promote redistribution.
- Modified parts of atlas.spec left in place, work still in progress,
  cleanup needed.
This commit is contained in:
Frantisek Kluknavsky 2012-11-20 12:23:20 +01:00
parent ba9fdec101
commit d3ab68bc6d
3 changed files with 59 additions and 79 deletions

View File

@ -1,68 +0,0 @@
Notes on the Fedora version of ATLAS
by Quentin Spencer
updated: October 4, 2005
updated by Deji Akingunola
October 15, 2008
updated by Deji Akingunola
June 15, 2011
Because ATLAS relies on compile-time optimizations to obtain improved
performance over BLAS and LAPACK, the resulting binaries are closely
tied to the hardware on which they are compiled, and can likely result
in very poor performance on other hardware. For this reason,
including a package like ATLAS in Fedora requires some compromises.
Firstly, a binary ATLAS package must perform reasonably well on the
entire range of hardware on which it could potentially be installed.
Optimizing ATLAS for the most modern hardware can result in
significant performance penalties for users using the same package on
older hardware. Second, building from the same source package must
result in identical binaries for any computer of a particular
architecture. This is because the binaries installed on a user's
computer are built on a computer in the Fedora Extras build system,
which will have hardware different from the end user's hardware, and
quite possibly different from other available hardware in the build
system.
As of version 3.8.2 (in Fedora), ATLAS builds uses achitectural defaults,
are partial results of past searches when the compiler and architecture
are known, to discover the appropriate kernels used to build all the required
libraries. They make install time quicker and also ensure that good results are
obtained, since they typically represent several searches and/or user
intervention into the usual search so that maximum performance is found.
The result is a set of libraries that will not
necessarily achieve optimal performance on any given hardware but
should still offer significant performance gains over the reference
BLAS and LAPACK libraries on most hardware. The binary package
includes the atlas libraries as well as binary-compatible blas and
lapack libraries that should work as a drop-in replacement for the
standard ones (they are installed in /usr/lib{64}/atlas* rather than
/usr/lib{64}).
For 32bit x86 systems, the default atlas package on was built using Pentium Pro
architectural defaults using just x87 math optimization. In addition to the
base 32bit build, 4 ATLAS subpackages are built for 3Dnow, SSE, SSE2, and SSE3
ix86 extensions, using architectural defaults obtained from Athlon K7, PIII,
Pentium 4 with SSE2 extension and PENTIUM 4 with SSE3 extensions respectively.
On 64bit x86 systems the default atlas package on was built with SSE2 optimization using architetural default made for AMD's HAMMER processor, and an additional
SSE3-enabled subpackage was built also using architetural default made for AMD's HAMMER processor.
This packaging allows multiple installation of different atlas sub-packages
at the same time. The alternatives system (read 'man alternatives' for usage)
is used in the -devel subpackages to select the appropriate location for the
architectural dependent header files.
This package is designed to build RPMs that are identical regardless
of where they are compiled and that provide reasonable performance on
a wide range of hardware. For users who want optimal performance on
particular hardware, custom RPMs can be built from the source package
by setting the RPM macro "enable_native_atlas" to a value of 1. This
can be done from the command line as in the following example:
rpmbuild -D "enable_native_atlas 1" --rebuild atlas-3.8.3-1.src.rpm
This will cause the ATLAS build to use the achitectural default most
appropriate for the system on which the package is to be built.

47
README.dist Normal file
View File

@ -0,0 +1,47 @@
Notes on the packaged version of ATLAS
by Quentin Spencer
updated: October 4, 2005
updated by Deji Akingunola
October 15, 2008
updated by Deji Akingunola
June 15, 2011
updated by Frantisek Kluknavsky
Nov 20, 2012
Because ATLAS relies on compile-time optimizations to obtain improved
performance over BLAS and LAPACK, the resulting binaries are closely
tied to the hardware on which they are compiled, and can likely result
in very poor performance on other hardware. For this reason,
including a package like ATLAS in Fedora requires some compromises.
Optimizing ATLAS for the most modern hardware can result in
significant performance penalties for users using the same package on
older hardware. A binary ATLAS package must perform reasonably well on the
entire range of hardware on which it could potentially be installed.
The result is a set of libraries that will not
necessarily achieve optimal performance on any given hardware but
should still offer significant performance gains over the reference
BLAS and LAPACK libraries on most hardware.
In addition to the base 32bit build, subpackages are built for SSE, SSE2,
and SSE3 ix86 extensions.
On 64bit x86 systems the default atlas package was built with SSE3
optimization.
This packaging allows multiple installation of different atlas sub-packages
at the same time. The alternatives system (read 'man alternatives' for usage)
is used in the -devel subpackages to select the appropriate location for the
architectural dependent header files.
For users who want optimal performance on
particular hardware, custom RPMs can be built from the source package
by setting the RPM macro "enable_native_atlas" to a value of 1. This
can be done from the command line as in the following example:
rpmbuild -D "enable_native_atlas 1" --rebuild atlas-3.8.3-1.src.rpm

View File

@ -14,7 +14,7 @@ URL: http://math-atlas.sourceforge.net/
Source0: http://downloads.sourceforge.net/math-atlas/%{name}%{version}.tar.bz2
Source1: PPRO32.tgz
#Source2: K7323DNow.tgz
Source3: README.Fedora
Source3: README.dist
Source4: USII64.tgz
Source5: USII32.tgz
Source6: IBMz1032.tgz
@ -43,7 +43,7 @@ well as a few routines from LAPACK.
The performance improvements in ATLAS are obtained largely via
compile-time optimizations and tend to be specific to a given hardware
configuration. In order to package ATLAS for Fedora some compromises
configuration. In order to package ATLAS some compromises
are necessary so that good performance can be obtained on a variety
of hardware. This set of ATLAS binary packages is therefore not
necessarily optimal for any specific hardware configuration. However,
@ -90,7 +90,7 @@ Linear Algebra Software).
#description sse3
#This package contains the ATLAS (Automatically Tuned Linear Algebra
#Software) libraries compiled with optimizations for the SSE3
#extensions to the x86_64 architecture. The base ATLAS builds in Fedora for the
#extensions to the x86_64 architecture. The base ATLAS builds for the
#x86_64 architecture are made for the SSE2 extensions.
#package sse3-devel
@ -165,8 +165,8 @@ Group: System Environment/Libraries
%description sse2
This package contains ATLAS (Automatically Tuned Linear Algebra Software)
shared libraries compiled with optimizations for the SSE2
extensions to the ix86 architecture. Fedora also produces ATLAS build with
SSE(1) and SSE3 extensions.
extensions to the ix86 architecture. ATLAS builds with
SSE(1) and SSE3 extensions also exist.
%package sse2-devel
Summary: Development libraries for ATLAS with SSE2 extensions
@ -201,7 +201,7 @@ Group: System Environment/Libraries
%description sse3
This package contains the ATLAS (Automatically Tuned Linear Algebra
Software) libraries compiled with optimizations for the SSE3.
Fedora also produces ATLAS build with SSE(1) and SSE2 extensions.
ATLAS builds with SSE(1) and SSE2 extensions also exist.
%package sse3-devel
Summary: Development libraries for ATLAS with SSE3 extensions
@ -598,7 +598,7 @@ fi
%files
%defattr(-,root,root,-)
%doc doc/README.Fedora
%doc doc/README.dist
%dir %{_libdir}/atlas
%{_libdir}/atlas/*.so
%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}.conf
@ -670,7 +670,7 @@ fi
%files sse2
%defattr(-,root,root,-)
%doc doc/README.Fedora
%doc doc/README.dist
%dir %{_libdir}/atlas-sse2
%{_libdir}/atlas-sse2/*.so
%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-sse2.conf
@ -689,7 +689,7 @@ fi
%files sse3
%defattr(-,root,root,-)
%doc doc/README.Fedora
%doc doc/README.dist
%dir %{_libdir}/atlas-sse3
%{_libdir}/atlas-sse3/*.so
%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-sse3.conf
@ -711,7 +711,7 @@ fi
%ifarch s390 s390x
%files z10
%defattr(-,root,root,-)
%doc doc/README.Fedora
%doc doc/README.dist
%dir %{_libdir}/atlas-z10
%{_libdir}/atlas-z10/*.so
%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-z10.conf
@ -730,7 +730,7 @@ fi
%files z196
%defattr(-,root,root,-)
%doc doc/README.Fedora
%doc doc/README.dist
%dir %{_libdir}/atlas-z196
%{_libdir}/atlas-z196/*.so
%config(noreplace) /etc/ld.so.conf.d/atlas-%{_arch}-z196.conf
@ -760,6 +760,7 @@ fi
- Modified makefile to include build-id.
- Disabled cpu throttling detection again (sorry, could not work on atlas
otherwise, feel free to enable yet again - atlas-throttling.patch).
- Removed mentions of "Fedora" to promote redistribution.
- Modified parts of atlas.spec left in place, work still in progress,
cleanup needed.