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

Simon Pilgrim via llvm-dev llvm-dev at lists.llvm.org
Wed Dec 12 10:57:56 PST 2018


+1 Thanks for working on this patch Clement.

Simon.

On 12/12/2018 15:58, Finkel, Hal J. via llvm-dev wrote:

>
> On 12/12/18 6:51 AM, Andrea Di Biagio via llvm-dev wrote:
>> 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.
>
>
> +1
>
>  -Hal
>
>
>>
>> -Andrea
>>
>>
>> On Wed, Dec 12, 2018 at 11:58 AM Clement Courbet <courbet at google.com 
>> <mailto:courbet at google.com>> wrote:
>>
>>     (on the correct mailing list)
>>
>>     Hi all,
>>
>>
>>     tl;dr: We'd like to propose moving tools/llvm-mca/libinto
>>     lib/MCAand create a new MCAlibrary in LLVM.
>>
>>
>>     llvm-mca has recently been split
>>     <https://bugs.llvm.org/show_bug.cgi?id=37696>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
>>     <https://github.com/webmproject/libwebp/commit/67748b41dbb21a43e88f2b6ddf6117f4338873a3>and
>>     gemmlowp <https://github.com/google/gemmlowp/pull/91>*.
>>
>>
>>     The patch is completely mechanical and can be seen here
>>     <https://reviews.llvm.org/D55557>. 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 <mailto:courbet at google.com>> wrote:
>>
>>         Hi all,
>>
>>
>>         tl;dr: We'd like to propose moving tools/llvm-mca/libinto
>>         lib/MCAand create a new MCAlibrary in LLVM.
>>
>>
>>         llvm-mca has recently been split
>>         <https://bugs.llvm.org/show_bug.cgi?id=37696>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
>>         <https://github.com/webmproject/libwebp/commit/67748b41dbb21a43e88f2b6ddf6117f4338873a3>and
>>         gemmlowp <https://github.com/google/gemmlowp/pull/91>*.
>>
>>
>>         The patch is completely mechanical and can be seen here
>>         <https://reviews.llvm.org/D55557>. 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
> -- 
> Hal Finkel
> Lead, Compiler Technology and Programming Languages
> Leadership Computing Facility
> Argonne National Laboratory
>
> _______________________________________________
> 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/20181212/5da990cc/attachment.html>


More information about the llvm-dev mailing list