Explicitly overriding architecture detection

The ATLAS configure script may not recognize your architecture. If this happens, ATLAS will fall back on using generic flags, and a full search. To ge the best performance often takes two installs, where first you do a generic install, then you search for the best flags (see $\S$[*]).

Sometimes, however, ATLAS actually has support for your architecture (or to a machine that is functionally equivalent), but it doesn't recognize it. In this case, you can explictly tell ATLAS which architecture it should assume using the -A <name> configure flag. To see a list of supported architectures, after any ATLAS configure step (even one with bad architecture and flags) you can do:

   make xprint_enums
   ./xprint_enums

Note that there is not a one-to-one correspondence between ATLAS's names (chosen based on ATLAS-visable changes) and, for instance Intel code or marketing names. Table [*] shows the maping of ATLAS architectures to some of the more recent Intel code names.

Table: ATLAS arch string & Intel code names
ATLAS Intel code name
Corei1 Nahalem / Westmere
Corei2 Ivy/Sandy bridge
Corei3 haswell/broadwell[-e]
Corei4 skylake


Therefore, if configure was failing to autodetect the architecture, but I knew the machine was a haswell, I could add the following to configure to get the haswell architectural defaults:

   -A Corei3


Subsections
R. Clint Whaley 2016-07-28