[llvm-dev] Writing loop transformations on the right representation is more productive
Hal Finkel via llvm-dev
llvm-dev at lists.llvm.org
Tue Feb 11 03:02:42 PST 2020
On 2/10/20 9:50 AM, Albert Cohen via llvm-dev wrote:
> Thanks Chris for CCing us.
>
> I remember Michael's presentation and suggestion to consider Roslyn's
> design and experience. I'll be glad to discuss further in April.
> Michael, we can also talk later this week if you'd like. I'll send you
> a separate email.
>
> Loop transformations in MLIR take many different paths. Polyhedral
> affine-to-affine, generative/lowering in linalg, and also exploring
> lifting lower level constructs into affine and further into linalg and
> tensor compute ops. I'm all for exchanging on the rationale, use
> cases, and design of these paths, alongside with LLVM LNO. One
> practical option being to compose these lifting, affine
> transformations and lowering steps to build an LLVM LNO. Ideally this
> could be one generic effort that would also interop with numerical
> libraries or specialized hardware ops where they exist, and that can
> be used to implement domain-specific code generators.
>
> More on Roslyn: I'm not convinced yet about the added value of
> red-green trees. I see them as an implementation detail at the moment:
> much like sea of nodes is a convenient abstraction for implementing
> SSA-based global optimization passes, red-green trees may improve on
> the practice of AST/loop-nest transformations, but I don't see much
> fundamental or solid engineering benefits... yet.
Hi, Albert,
I definitely think that we're focused too much on the particular
data-structure choice being proposed, rather than on the motivation for
that proposal. At a high level, it seems like the questions here are:
1. When considering the optimization of a given loop nest, how many
potential transformations should be considered?
2. For those potential transformations, how many of them need to be
given a concrete representation in order to generate a cost?
As I see it, the underlying motivation here anticipates that:
1. The number of potential transformations might be large - not that
it always must be large, but that the infrastructure should support it
being large, and...
2. A large number of them need a concrete representation in order to
generate a cost (because we'll need to hand off certain aspects to
backend models, etc.), given one or more potential sets of trip-count
values.
To start, do you have thoughts on these?
Thanks,
Hal
>
> Albert
>
>
>
> On Sat, Feb 8, 2020 at 6:11 PM Chris Lattner <clattner at nondot.org
> <mailto:clattner at nondot.org>> wrote:
>
>
>
>> On Feb 7, 2020, at 10:16 PM, Michael Kruse <llvmdev at meinersbur.de
>> <mailto:llvmdev at meinersbur.de>> wrote:
>>
>> Am Fr., 7. Feb. 2020 um 17:03 Uhr schrieb Chris Lattner
>> <clattner at nondot.org <mailto:clattner at nondot.org>>:
>>
>> > The discussion here is valuable for me, helping me to make my
>> > presentation about it at EuroLLVM as relevant as possible.
>> My current
>> > idea is to take a complex loop nest, and compare optimizing
>> it using
>> > red/green DAGs and traditional pass-based optimizers.
>>
>> Cool. I’d really recommend you connect with some of the loop
>> optimization people working on MLIR to learn more about what
>> they are doing, because it is directly related to this and
>> I’d love for there to be more communication.
>>
>> I’ve cc'd Nicolas Vasilache, Uday Bondhugula, and Albert
>> Cohen as examples that would be great to connect with.
>>
>>
>> You may have already seen my discussion with Uday on the mailing
>> list. I would like to discuss approaches with all 3 of them, at
>> latest at EuroLLVM (or contact be before that, e.g. on this
>> mailing-list thread).
>
> Great! I’d be happy to join a discussion about this at EuroLLVM
> too. I think it is really important to improve the loop optimizer
> in LLVM, and I’m glad you’re pushing on it!
>
> -Chris
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200211/66561224/attachment.html>
More information about the llvm-dev
mailing list