<div dir="ltr">Thanks for the comments. I'm going to submit this as there seem to be no objections.</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Dec 12, 2018 at 10:37 PM David Greene <<a href="mailto:dag@cray.com">dag@cray.com</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">+1. Great work!<br>
<br>
-David<br>
<br>
Andrea Di Biagio via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> writes:<br>
<br>
> Thanks Clement for working on this.<br>
><br>
> I like the idea of moving the core abstractions of llvm-mca in<br>
> llvm/lib, as it potentially enables a number of interesting use cases<br>
> and future developments.<br>
><br>
> As you wrote, the patch is very simple (a pretty mechanical change).<br>
> From my point of view, this all looks good. Let see if other people<br>
> have the same opinion on this.<br>
><br>
> -Andrea<br>
><br>
> On Wed, Dec 12, 2018 at 11:58 AM Clement Courbet <<a href="mailto:courbet@google.com" target="_blank">courbet@google.com</a>><br>
> wrote:<br>
><br>
> (on the correct mailing list)<br>
><br>
> <br>
> Hi all,<br>
><br>
> tl;dr: We'd like to propose moving tools/llvm-mca/lib into lib/MCA<br>
> and create a new MCA library in LLVM.<br>
><br>
> llvm-mca has recently been split into its core part and the tool<br>
> part.<br>
><br>
> * The core part simulates the execution of a basic block of<br>
> machine instructions as modeled by the llvm SchedModel.<br>
><br>
> * The tool part deals with the plumbing and interacting with<br>
> the user.<br>
><br>
> The core part can be used by parts of LLVM that deal with cost<br>
> modeling (e.g. scheduling and vectorization). MCA provides a more<br>
> realistic target for optimization than the heuristics typically<br>
> used to drive these passes. We think that using approaches based<br>
> on fine-grained cost modeling can greatly improve the performance<br>
> of critically hot code, by trading compile time for performance.<br>
><br>
> As an example of how MCA can be used to improve scheduling, we<br>
> have built a prototype machine scheduler that optimizes the<br>
> simulated latency of a block of code under the constraints of the<br>
> scheduling DAG. We've had interesting wins of 2-3% on assembly<br>
> kernels for webp and gemmlowp*.<br>
><br>
> The patch is completely mechanical and can be seen here. It only<br>
> moves the files and updates all references.<br>
><br>
> We'd like to hear if there are any things comments/objections to<br>
> this change.<br>
><br>
> Thanks !<br>
><br>
> *note: We did this before llvm-mca was released and were using a<br>
> different simulator, but the idea remains the same.<br>
><br>
> <br>
> On Wed, Dec 12, 2018 at 11:44 AM Clement Courbet<br>
> <<a href="mailto:courbet@google.com" target="_blank">courbet@google.com</a>> wrote:<br>
> <br>
> <br>
> Hi all,<br>
><br>
> tl;dr: We'd like to propose moving tools/llvm-mca/lib into<br>
> lib/MCA and create a new MCA library in LLVM.<br>
><br>
> llvm-mca has recently been split into its core part and the<br>
> tool part.<br>
><br>
> * The core part simulates the execution of a basic<br>
> block of machine instructions as modeled by the llvm<br>
> SchedModel.<br>
><br>
> * The tool part deals with the plumbing and<br>
> interacting with the user.<br>
><br>
> The core part can be used by parts of LLVM that deal with cost<br>
> modeling (e.g. scheduling and vectorization). MCA provides a<br>
> more realistic target for optimization than the heuristics<br>
> typically used to drive these passes. We think that using<br>
> approaches based on fine-grained cost modeling can greatly<br>
> improve the performance of critically hot code, by trading<br>
> compile time for performance.<br>
><br>
> As an example of how MCA can be used to improve scheduling, we<br>
> have built a prototype machine scheduler that optimizes the<br>
> simulated latency of a block of code under the constraints of<br>
> the scheduling DAG. We've had interesting wins of 2-3% on<br>
> assembly kernels for webp and gemmlowp*.<br>
><br>
> The patch is completely mechanical and can be seen here. It<br>
> only moves the files and updates all references.<br>
><br>
> We'd like to hear if there are any things comments/objections<br>
> to this change.<br>
><br>
> Thanks !<br>
><br>
> *note: We did this before llvm-mca was released and were using<br>
> a different simulator, but the idea remains the same.<br>
><br>
><br>
> _______________________________________________<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>
</blockquote></div>