<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 09/23/2013 08:46 AM, Susi Lehtola
      wrote:<br>
    </div>
    <blockquote class=" cite"
      id="mid_20130923154612_771a88b5_tb900_no_ip_org"
      cite="mid:20130923154612.771a88b5@tb900.no-ip.org" type="cite">
      <pre wrap="">On Mon, 23 Sep 2013 14:34:50 +0200
Kevin Kofler <a class="moz-txt-link-rfc2396E" href="mailto:kevin.kofler@chello.at">&lt;kevin.kofler@chello.at&gt;</a> wrote:
</pre>
      <blockquote class=" cite" id="Cite_1461132" type="cite">
        <pre wrap="">Matthew Miller wrote:
</pre>
        <blockquote class=" cite" id="Cite_1125245" type="cite">
          <pre wrap="">Actually, what ATLAS upstream intends is for the program to be
recompiled on every installation (or boot, even). I think we used
to have packages that did that; this is a compromise.
</pre>
        </blockquote>
        <pre wrap="">Yes, ATLAS upstream has always been smoking deep crack. It looks like 
OpenBLAS is the much better option, now that it is available. (ATLAS
used to be the best available as Free Software back when GotoBLAS was
still proprietary, but now that the Goto code has been freed, ATLAS
is not looking so great anymore.)
</pre>
      </blockquote>
      <pre wrap="">Well, it's not too hard to understand why ATLAS does things the way it
does. It's already in the acronym: Automatically Tuned Linear Algebra
Software. You generate a library that is optimal for your processor. In
comparison, GotoBLAS (OpenBLAS) has been hand-tuned in assembly for
every supported CPU.

On the other hand, I'm not sure why they don't just take their tool and
pregenerate lists of optimal parameters for every available CPU. That
way you could compile everything in the same package and do runtime CPU
detection. Currently binary distributions have to do some hackaround to
generate a reasonably efficient one-size-fits-all library.</pre>
    </blockquote>
    They can't cover every combination of CPU microarchitecture/cache
    sizes and main memory configuration and speed. It can't even be a
    per-motherboard configuration, because one could put in different
    speed DIMMs. and in principle that could change the optimal ATLAS
    setup. Recompiling it at every boot is a little extreme, though,
    albeit in principle someone could change the memory between boots.<br>
    <blockquote class=" cite"
      id="mid_20130923154612_771a88b5_tb900_no_ip_org"
      cite="mid:20130923154612.771a88b5@tb900.no-ip.org" type="cite">
      <pre wrap="">
</pre>
    </blockquote>
    <br>
    <br>
  </body>
</html>