3 | | I rewrote the ATLAS spkg-install (see also #10226) to |
4 | | * python only without relying on other script languages |
5 | | * allow customization of architectural defaults via the new `SAGE_ATLAS_ARCH` environment variable. |
6 | | * still build a reasonable library if the automatic tuning process fails to find accurate timings. |
7 | | * `SAGE_ATLAS_LIB=path` now searches in `path/libatlas.so` instead of `path/lib/libatlas.so` so it works for people with atlas in `/lib64`, too. |
8 | | * Threading is now enabled by default. Whats the point of trying to squeeze more performance out of modern processors if you run on one core only? |
9 | | |
10 | | By default, ATLAS will now try twice to get timings, if that fails build with `SAGE_ATLAS_ARCH=fast`, and if that fails with `SAGE_ATLAS_ARCH=base`. |
11 | | |
12 | | From the new `SPKG.txt`: |
13 | | {{{ |
14 | | The package can be configured via two environment variables: |
15 | | |
16 | | * SAGE_ATLAS_LIB=path |
17 | | If this environment variable is set, path/libatlas.so is used |
18 | | and ATLAS is not compiled. |
19 | | |
20 | | * SAGE_ATLAS_ARCH=arch[,isaext1][,isaext2]...[,isaextN] |
21 | | The given architectural default and instruction set extensions are |
22 | | used instead of the empirical tuning. Available architectures are |
23 | | |
24 | | POWER3, POWER4, POWER5, PPCG4, PPCG5, POWER6, POWER7, P5, P5MMX, |
25 | | PPRO, PII, PIII, PM, CoreSolo, CoreDuo, Core2Solo, Core2, Corei7, |
26 | | P4, P4E, Efficeon, K7, HAMMER, AMD64K10h, UNKNOWNx86, IA64Itan, |
27 | | IA64Itan2, USI, USII, USIII, USIV, UST2, UnknownUS, MIPSR1xK, |
28 | | MIPSICE9 |
29 | | |
30 | | and instruction set extensions are |
31 | | |
32 | | VSX, AltiVec, SSE3, SSE2, SSE1, 3DNow |
33 | | |
34 | | In addition, you can also set |
35 | | |
36 | | - SAGE_ATLAS_ARCH=fast picks defaults for a modern (2-3 year old) |
37 | | CPU of your processor line, and |
38 | | |
39 | | - SAGE_ATLAS_ARCH=base picks defaults that should work for a ~10 |
40 | | year old CPU. |
41 | | |
42 | | For example, |
43 | | |
44 | | SAGE_ATLAS_ARCH=Corei7,SSE3,SSE2,SSE1 |
45 | | |
46 | | would be appropriate for a Core i7 CPU. |
47 | | }}} |
| 7 | By default, ATLAS will now try twice to get timings and fail immediately if throttling is enabled. If auto-tuning fails build with `SAGE_ATLAS_ARCH=fast`, and if that fails with `SAGE_ATLAS_ARCH=base`. On x86, the fast and base targets are the new ATLAS generic targets x86SSE3 and x86SSE2/x86x87. |