[Openmp-commits] [PATCH] D51875: [OPENMP][NVPTX] Add support for lastprivates/reductions handling in SPMD constructs with lightweight runtime.

Jonas Hahnfeld via Phabricator via Openmp-commits openmp-commits at lists.llvm.org
Mon Sep 10 13:35:08 PDT 2018


Hahnfeld added a comment.

In https://reviews.llvm.org/D51875#1229536, @ABataev wrote:

> In https://reviews.llvm.org/D51875#1229517, @Hahnfeld wrote:
>
> > In https://reviews.llvm.org/D51875#1229506, @ABataev wrote:
> >
> > > In https://reviews.llvm.org/D51875#1229502, @Hahnfeld wrote:
> > >
> > > > In https://reviews.llvm.org/D51875#1229496, @ABataev wrote:
> > > >
> > > > > In https://reviews.llvm.org/D51875#1229491, @Hahnfeld wrote:
> > > > >
> > > > > > I really, really dislike adding even more global buffers. `4096 * 32 * 56` are another 7MiB that are not usable for applications. What's wrong with using the existing ones?
> > > > > >
> > > > > > Can you upload the CodeGen patch for reductions somewhere? I thought we need a global scratchpad buffer that is adressable for all teams?
> > > > >
> > > > >
> > > > > I really, really dislike an implementation in ibm-devel, the scratchpad solution will never be added to the trunk. The existing ones cannot be reused, as they are allocated only if the full runtime is used.
> > > >
> > > >
> > > > What's the overhead of initializing it? The whole `libomptarget-nvptx` is already a pretty much mess, see my thread on openmp-dev.
> > >
> > >
> > > It is not the runtime issue, it is the problem with the compiler itself. It breaks compatibility with the other outlined regions and, thus, it cannot be committed to trunk.
> >
> >
> > Can you please describe the problems? Again, maybe posting the patch may help.
>
>
> I already described it - it breaks the compatibility with other outlined regions and breaks the whole design of the OpenMP implementation.


First that's a general statement without any explanation. Second I'm not asking about the scratchpad pointer solution in ibm-devel but rather why we can't pass `RequiresDataSharing = true` to `__kmpc_spmd_kernel_init`. Which will give us the data sharing in existing buffers.

> 
> 
>>> I'd like to have this at least as a temporirily solution to support lastprivates/reductions in SPMD mode with lightweight runtime. We can reduce the size of the preallocated buffers, if you wish.
>> 
>> Is that a commitment to actively work on that area?
> 
> Yes, Alex Eichenberger tries to invent something, that will allow us to use something similar to ibm-devel but without breaking the design of OpenMP in the compiler. But it requires some time. But I'd like to have something working, at least.

I'm referring to the process of cleaning up `libomptarget-nvptx`.


Repository:
  rOMP OpenMP

https://reviews.llvm.org/D51875





More information about the Openmp-commits mailing list