<html><head><style type='text/css'>p { margin: 0; }</style></head><body><div style='font-family: arial,helvetica,sans-serif; font-size: 10pt; color: #000000'><br><br><hr id="zwchr"><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;"><b>From: </b>"Qin Zhao" <zhaoqin@google.com><br><b>To: </b>"Hal Finkel" <hfinkel@anl.gov><br><b>Cc: </b>"Derek Bruening" <bruening@google.com>, efficiency-sanitizer@google.com, "llvm-dev" <llvm-dev@lists.llvm.org><br><b>Sent: </b>Thursday, April 21, 2016 1:20:40 PM<br><b>Subject: </b>Re: [llvm-dev] RFC: EfficiencySanitizer<br><br><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Apr 21, 2016 at 1:57 PM, Hal Finkel <span dir="ltr"><<a href="mailto:hfinkel@anl.gov" target="_blank">hfinkel@anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div style="font-family: arial,helvetica,sans-serif; font-size: 10pt; color: rgb(0, 0, 0);"><br><br><hr><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;"><b>From: </b>"Qin Zhao" <<a href="mailto:zhaoqin@google.com" target="_blank">zhaoqin@google.com</a>><br><b>To: </b>"Hal Finkel" <<a href="mailto:hfinkel@anl.gov" target="_blank">hfinkel@anl.gov</a>><br><b>Cc: </b>"Derek Bruening" <<a href="mailto:bruening@google.com" target="_blank">bruening@google.com</a>>, <a href="mailto:efficiency-sanitizer@google.com" target="_blank">efficiency-sanitizer@google.com</a>, "llvm-dev" <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>><br><b>Sent: </b>Thursday, April 21, 2016 12:48:20 PM<span class=""><br><b>Subject: </b>Re: [llvm-dev] RFC: EfficiencySanitizer<br><br></span><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div><br>
</div></div><span class="">Will this technology allow us to pinpoint specific accesses that generally have high latency (i.e. generally are cache misses)? This information is useful for programmers, and is also useful as an input to loop unrolling, instruction scheduling, and the like on ooo cores.<br></span></blockquote><span class=""><div><br></div><div>Won't hardware performance counter tell you which accesses are delinquent accesses?</div></span></div></div></div></blockquote>Yes, for the particular system on which you're running. The question is, as the (effective) cache size changes (either because you're running more threads per core, socket, etc. or as you run across different architectures), can you say where the cache-miss hot-spots will be?<span class="HOEnZb"><font color="#888888"><br><br> -Hal</font></span><div><div class="h5"><br></div></div></div></div></blockquote><div><br></div><div>There are many reasons that may cause the cache misses. Since we are not doing a full cache simulation, we won't be to report the cache-miss for all cases.</div><div>However, it is possible in certain cases.</div><div id="DWT7143">Because we could keep up to 8 snapshot of the working set (xref the working set tool RFC), we could easily identify the memory reference that touches a cache line that were not touched in the previous snapshot. Such references has a high chance to cause cache misses.</div></div></div></div></blockquote>Interesting, thanks! That sounds potentially useful.<br><br> -Hal<br><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div><br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div><div style="font-family: arial,helvetica,sans-serif; font-size: 10pt; color: rgb(0, 0, 0);"><div><div class="h5"><blockquote style="border-left: 2px solid rgb(16, 16, 255); margin-left: 5px; padding-left: 5px; color: rgb(0, 0, 0); font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div></div><div>The tools here are trying to provide more information and hopefully some insight of the performance problem.<br></div><div>For example, if we can tell that the working set of an application is slightly bigger than the L3 cache, developers would be able to take the right action to improve the performance.</div><div><br></div><div>We are welcome any suggestions about how the information can be used, or what information should be collected.</div><div><br></div><div>Qin</div><div> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
-Hal<br>
<span><br>
><br>
> *Dead store detection*: this tool identifies dead stores<br>
> (write-after-write patterns with no intervening read) as well as<br>
> redundant stores (writes of the same value already in memory). Xref<br>
> the Deadspy paper from CGO 2012.<br>
><br>
><br>
> *Single-reference*: this tool identifies data cache lines brought in<br>
> but only read once. These could be candidates for non-temporal<br>
> loads.<br>
><br>
><br>
> ====================<br>
> EfficiencySanitizer<br>
> ====================<br>
><br>
><br>
> We are proposing the name EfficiencySanitizer, or "esan" for short,<br>
> to refer to this suite of dynamic instrumentation tools for<br>
> improving program efficiency. As we have a number of different tools<br>
> that share quite a bit of their implementation we plan to consider<br>
> them sub-tools under the EfficiencySanitizer umbrella, rather than<br>
> adding a whole bunch of separate instrumentation and runtime library<br>
> components.<br>
><br>
><br>
> While these tools are not addressing correctness issues like other<br>
> sanitizers, they will be sharing a lot of the existing sanitizer<br>
> runtime library support code. Furthermore, users are already<br>
> familiar with the sanitizer brand, and it seems better to extend<br>
> that concept rather than add some new term.<br>
><br>
><br>
</span><span>> _______________________________________________<br>
> LLVM Developers mailing list<br>
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
><br>
<br>
--<br>
</span>Hal Finkel<br>
Assistant Computational Scientist<br>
Leadership Computing Facility<br>
Argonne National Laboratory<br>
<span><br>
--<br>
You received this message because you are subscribed to the Google Groups "efficiency-sanitizer" group.<br>
To unsubscribe from this group and stop receiving emails from it, send an email to <a href="mailto:efficiency-sanitizer%2Bunsubscribe@google.com" target="_blank">efficiency-sanitizer+unsubscribe@google.com</a>.<br>
To post to this group, send email to <a href="mailto:efficiency-sanitizer@google.com" target="_blank">efficiency-sanitizer@google.com</a>.<br>
</span>To view this discussion on the web visit <a href="https://groups.google.com/a/google.com/d/msgid/efficiency-sanitizer/19928798.1837.1461205693345.JavaMail.hfinkel%40sapling5.localdomain" rel="noreferrer" target="_blank">https://groups.google.com/a/google.com/d/msgid/efficiency-sanitizer/19928798.1837.1461205693345.JavaMail.hfinkel%40sapling5.localdomain</a>.<br>
</blockquote></div><br></div></div>
</blockquote><br><br><br>-- <br><div><span></span>Hal Finkel<br>Assistant Computational Scientist<br>Leadership Computing Facility<br>Argonne National Laboratory<span></span><br></div></div></div></div></div></blockquote></div><br></div></div>
</blockquote><br><br><br>-- <br><div><span name="x"></span>Hal Finkel<br>Assistant Computational Scientist<br>Leadership Computing Facility<br>Argonne National Laboratory<span name="x"></span><br></div></div></body></html>