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:
parent
ba9fdec101
commit
d3ab68bc6d
|
@ -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.
|
|
@ -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
|
||||
|
23
atlas.spec
23
atlas.spec
|
@ -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.
|
||||
|
||||
|
|
Loading…
Reference in New Issue