This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [gomp4] Vector-single predication
- From: Julian Brown <julian at codesourcery dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: Bernd Schmidt <bernds at codesourcery dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Thu, 21 May 2015 14:38:19 +0100
- Subject: Re: [gomp4] Vector-single predication
- Authentication-results: sourceware.org; auth=none
- References: <555DC493 dot 2050208 at codesourcery dot com> <20150521115700 dot GT1751 at tucnak dot redhat dot com> <20150521140512 dot 22b34bbf at octopus> <20150521132154 dot GU1751 at tucnak dot redhat dot com>
On Thu, 21 May 2015 15:21:54 +0200
Jakub Jelinek <jakub@redhat.com> wrote:
> On Thu, May 21, 2015 at 02:05:12PM +0100, Julian Brown wrote:
> > OpenACC handles function calls specially (calling them "routines"
> > -- of varying sorts, gang, worker, vector or seq, affecting where
> > they can be invoked from). The plan is that all threads will call
> > such routines -- and then some threads will be "neutered" as
> > appropriate within the routines themselves, as appropriate.
>
> 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.
Julian