Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
sagemath
GitHub Repository: sagemath/sagesmc
Path: blob/master/build/pkgs/atlas/SPKG.txt
8815 views
1
= ATLAS =
2
3
== Description ==
4
5
This spkg builds ATLAS for Sage. It is build per default on Linux and
6
Solaris, but should also work on OSX and Cygwin.
7
8
== License ==
9
10
3-clause BSD
11
12
== SPKG Maintainers ==
13
14
* David Kirkby
15
* William Stein
16
* Volker Braun
17
18
== Upstream Contact ==
19
20
* Atlas devel mailing list.
21
* Clint Whaley has frequently answered questions from the Sage project
22
23
== Dependencies ==
24
25
* Python
26
27
== Special Update/Build Instructions ==
28
29
* src/lapack-x.y.z.tgz: The netlib lapack tarball. If you update this,
30
make sure you also update the LAPACK_TARBALL variable in spkg-install.
31
* src/ATLAS-lib: We are using a dummy autotools/libtools project
32
to repack the static ATLAS libraries into shared libraries.
33
* src/ARCHS: We ship some archdef tarballs to speed ATLAS build.
34
* spkg-install: If you update atlas to a new version make sure that the
35
ATLAS_OSTYPE, ATLAS_MACHTYPE, and ATLAS_ISAEXT variables in
36
spkg-install remain in sync with atlas' CONFIG/include/atlconf.h
37
* The package is never installed on OS X, unless you set SAGE_ATLAS_ARCH.
38
39
=== Patches ===
40
* patches/archinfo_linux.c.patch: Fix Itanium2 support on modern
41
RHEL 5 and SLES 10 systems.
42
* patches/probe_comp.c.patch: work around -m64 issue on Itanium2
43
* patches/long_filenames.patch: fix for long filenames (>128 chars)
44
* patches/shell.patch: replace two instances of "test -e" by "test -f",
45
as the former is not portable (in particular for the Solaris
46
shell).
47
* patches/threads.patch: Avoid thread-related symbols
48
ATL_(Set|Reset|Free|Dec)AtomicCount symbols in single-threaded
49
library.
50
* patches/do_not_force_mutex.patch: always use assembly over mutex
51
since the mutex version fails to build a shared library. See #15045
52
for details.
53
* patches/glibc_scanf_workaround.patch: Workaround for the scanf bug
54
in glibc-2.18 that breaks the atlas auto-tuning system.
55
56
=== Configuration ===
57
The package can be configured via three environment variables:
58
59
* SAGE_ATLAS_LIB=path
60
If this environment variable is set, the libraries libatlas,
61
libcblas, liblapack, and libf77blas from the direcory "path" are
62
used and ATLAS is not compiled from source. The libraries can be
63
either static (endin in .a) or shared libraries (ending in .so or
64
.dylib).
65
66
* SAGE_ATLAS_ARCH=arch[,isaext1][,isaext2]...[,isaextN]
67
The given architectural default and instruction set extensions are
68
used instead of the empirical tuning. Available architectures are
69
70
POWER3, POWER4, POWER5, PPCG4, PPCG5, POWER6, POWER7, IBMz9,
71
IBMz10, IBMz196, x86x87, x86SSE1, x86SSE2, x86SSE3, P5, P5MMX,
72
PPRO, PII, PIII, PM, CoreSolo, CoreDuo, Core2Solo, Core2, Corei1,
73
Corei2, Atom, P4, P4E, Efficeon, K7, HAMMER, AMD64K10h, AMDDOZER,
74
UNKNOWNx86, IA64Itan, IA64Itan2, USI, USII, USIII, USIV, UST2,
75
UnknownUS, MIPSR1xK, MIPSICE9, ARMv7
76
77
and instruction set extensions are
78
79
VSX, AltiVec, AVXMAC, AVXFMA4, AVX, SSE3, SSE2, SSE1, 3DNow, NEON
80
81
In addition, you can also set
82
83
- SAGE_ATLAS_ARCH=fast picks defaults for a modern (2-3 year old)
84
CPU of your processor line, and
85
86
- SAGE_ATLAS_ARCH=base picks defaults that should work for a ~10
87
year old CPU.
88
89
For example,
90
91
SAGE_ATLAS_ARCH=Corei2,AVX,SSE3,SSE2,SSE1
92
93
would be appropriate for a Core i7 CPU.
94
95
* If SAGE_ATLAS_SAVE_ARCHDEF = <path> is given, then a new archdef
96
file is created and saved to the given path.
97
98
99