<div dir="ltr">Over on the Julia discussion list there are often topics on performance or varying performance - these often turn out to be due to the BLAS libraries in use, and how they are being used.<div>I believe that there is a project for pureJulia BLAS. </div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 20 Sept 2021 at 18:41, Lux, Jim (US 7140) via Beowulf <<a href="mailto:beowulf@beowulf.org">beowulf@beowulf.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">





<div lang="EN-US" style="overflow-wrap: break-word;">
<div class="gmail-m_1497723491293170245WordSection1">
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border-right:none;border-bottom:none;border-left:none;border-top:1pt solid rgb(181,196,223);padding:3pt 0in 0in">
<p class="MsoNormal"><b><span style="font-size:12pt;color:black">From: </span></b><span style="font-size:12pt;color:black">Beowulf <<a href="mailto:beowulf-bounces@beowulf.org" target="_blank">beowulf-bounces@beowulf.org</a>> on behalf of Lawrence Stewart <<a href="mailto:stewart@serissa.com" target="_blank">stewart@serissa.com</a>><br>
<b>Date: </b>Monday, September 20, 2021 at 9:17 AM<br>
<b>To: </b>Jim Cownie <<a href="mailto:jcownie@gmail.com" target="_blank">jcownie@gmail.com</a>><br>
<b>Cc: </b>Lawrence Stewart <<a href="mailto:stewart@serissa.com" target="_blank">stewart@serissa.com</a>>, Douglas Eadline <<a href="mailto:deadline@eadline.org" target="_blank">deadline@eadline.org</a>>, "<a href="mailto:beowulf@beowulf.org" target="_blank">beowulf@beowulf.org</a>" <<a href="mailto:beowulf@beowulf.org" target="_blank">beowulf@beowulf.org</a>><br>
<b>Subject: </b>Re: [Beowulf] [EXTERNAL] Re: Deskside clusters<u></u><u></u></span></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<p class="MsoNormal">Well said.  Expanding on this, caches work because of both temporal locality and
<u></u><u></u></p>
<div>
<p class="MsoNormal">spatial locality.  Spatial locality is addressed by having cache lines be substantially<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">larger than a byte or word.  These days, 64 bytes is pretty common.  Some prefetch schemes, <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">like the L1D version that fetches the VA ^ 64 clearly affect spatial locality.  Streaming <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">prefetch has an expanded notion of “spatial” I suppose!<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">What puzzles me is why compilers seem not to have evolved much notion of cache management. It <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">seems like something a smart compiler could do.  Instead, it is left to Prof. Goto and the folks<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">at ATLAS and BLIS to figure out how to rewrite algorithms for efficient cache behavior. To my<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">limited knowledge, compilers don’t make much use of PREFETCH or any non-temporal loads and stores<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">either. It seems to me that once the programmer helps with RESTRICT and so forth, then compilers could perfectly well dynamically move parts of arrays around to maximize cache use.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">-L<u></u><u></u></p>
<p class="gmail-m_1497723491293170245MsoListParagraph" style="margin-left:0in"><u></u> <u></u></p>
<p class="gmail-m_1497723491293170245MsoListParagraph" style="margin-left:0in">I suspect that there’s enough variability among cache implementation and the wide variety of algorithms that might use it that writing a smart-enough compiler is “hard” and “expensive”.<u></u><u></u></p>
<p class="gmail-m_1497723491293170245MsoListParagraph" style="margin-left:0in"><u></u> <u></u></p>
<p class="gmail-m_1497723491293170245MsoListParagraph" style="margin-left:0in">Leaving it to the library authors is probably the best “bang for the buck”. 
<u></u><u></u></p>
<p class="gmail-m_1497723491293170245MsoListParagraph" style="margin-left:0in"><u></u> <u></u></p>
<p class="gmail-m_1497723491293170245MsoListParagraph" style="margin-left:0in"><u></u> <u></u></p>
<p class="gmail-m_1497723491293170245MsoListParagraph" style="margin-left:0in"><u></u> <u></u></p>
</div>
</div>
</div>

_______________________________________________<br>
Beowulf mailing list, <a href="mailto:Beowulf@beowulf.org" target="_blank">Beowulf@beowulf.org</a> sponsored by Penguin Computing<br>
To change your subscription (digest mode or unsubscribe) visit <a href="https://beowulf.org/cgi-bin/mailman/listinfo/beowulf" rel="noreferrer" target="_blank">https://beowulf.org/cgi-bin/mailman/listinfo/beowulf</a><br>
</blockquote></div>