[llvm-dev] [RFC] Moving tools/llvm-mca/lib into lib/MCA

Clement Courbet via llvm-dev llvm-dev at lists.llvm.org
Sun Dec 16 23:24:15 PST 2018


Thanks for the comments. I'm going to submit this as there seem to be no
objections.

On Wed, Dec 12, 2018 at 10:37 PM David Greene <dag at cray.com> wrote:

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


More information about the llvm-dev mailing list