On Thu, May 21, 2015 at 02:38:19PM +0100, Julian Brown wrote:
> > All functions will behave that way, or just some using some magic
> > attribute etc.?  Say will newlib functions behave this way (math
> > functions, printf, ...)? 
> 
> It's actually unclear at this point if "regular" functions are
> supported by OpenACC at all (the spec says nothing about them). They
> probably raise "interesting" questions about re-entrancy,
> synchronisation, and so on.
> 
> > For math functions e.g. it would be nice if
> > they could behave both ways (perhaps as separate entrypoints), so
> > have the possibility to say how many threads from the warp will
> > perform the operation and then work on array arguments and array
> > return value (kind like OpenMP or Cilk+ elemental functions, just
> > perhaps with different argument/return value passing conventions).
> 
> And that's something that's way outside the spec as currently defined,
> AFAIK.

Not necessarily.  GCC uses the elemental functions not just in OpenMP/Cilk+
simd regions, but also in auto-vectorized code.  So if auto-vectorization
for NVPTX target would just use the extra threads, it is relevant to OpenACC
as well.  Not to mention that OpenMP is also relevant to NVPTX.

        Jakub

Reply via email to