[Mlir-commits] [mlir] [MLIR][OpenMP] Add omp.simd operation (PR #79843)

Michael Klemm llvmlistbot at llvm.org
Wed Feb 7 05:54:00 PST 2024


mjklemm wrote:

> Thanks for giving it a look. With regards to the first point, the 5 composite constructs that I was able to identify are in the first 5 rows of the table. [...] Maybe the table can be split after the first 5 rows, but it seems misleading to me saying that e.g. teams distribute simd is combined because it represents TEAMS with a single DISTRIBUTE SIMD (composite) nested inside. That's why I put everything together in a single table.

Ok, that makes sense to me.


> Concerning the increase in the number of these constructs, what are these additions related to? Are they loop transformations or are there going to be significant additions to parallelism generation/control and work distribution constructs? 

Sort of.  So, there will be a set of rules that enable many more combinations of combined constructs.  While the debate has not quite settled yet and the OpenMP ARB is looking at the number of new combinations, I'd expect that there will quite a few being added, e.g., `task loop`.

Plus, there will be new loop transforming directives, such as loop splitting, loop reversal, etc.  Those you will be able to freely combine, for instance:

```
!$omp tile size(4,4,4,4) apply(intratile:nothing,nothing,nothing,unroll)
<loop-nest>
```

> I don't know whether there are caveats to that, but my thinking was that after introducing omp.canonical_loop we could have something like the following:

I do not know either.  If things are already implemented such that new (loop) constructs and combinations thereof can easily be added, it's great!

https://github.com/llvm/llvm-project/pull/79843


More information about the Mlir-commits mailing list