This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: OpenACC support in 4.9
- From: Evgeny Gavrin <e dot gavrin at samsung dot com>
- To: Tobias Burnus <burnus at net-b dot de>
- Cc: gcc at gcc dot gnu dot org, GarbuzovViacheslav <v dot garbuzov at samsung dot com>, dtemirbulatov at gmail dot com, triegel at redhat dot com, law at redhat dot com
- Date: Tue, 07 May 2013 13:00:36 +0400
- Subject: Re: OpenACC support in 4.9
- References: <51879F4E dot 10402 at samsung dot com> <5187B30F dot 1050709 at net-b dot de>
Hi, all!
> Which accelerators do you intent to handle? "Accelerator" is a rather
> broad term, covering DSPs, GPUs, Intel's MIC, ...
The idea is to emit OpenCL from high-GIMPLE, for know. So, any device
that has OpenCL support can be utilized by ACC.
Maybe, we'll be able to reuse some parts from graphite/opengpu projects,
but this is not clear for now.
> Is there a specific reason for targeting 1.0 instead of 2.0 (besides 2.0
> still being declared as a draft)?
You've named the main reason why we're targeting OpenACC1 - it's stable
and it's a good starting point for the initial implementation. BTW,
OpenACC2 differs not much from the previous version. Major improvements
covers only runtime library.
> - but I don't think anyone will work on OpenMP 4.0's 'target' feature
> soon as the enough work on the non-'target' features remains.
OpenMP's 'target' is definitely inspired by OpenACC. So, I think it'll
be possible to reuse/share most of BE part from OpenACC implementation,
once it's finished.
> I like the idea - though, I wonder whether OpenMP 4.0's "target"* would
> be the better choice as it looks a bit more flexible and better defined.
> (Conceptually, they are very similar; I think the
> middle-end/back-end/library part would even be the same.)
OpenMP 4.0 is still in draft. Meanwhile, OpenACC is supported by several
commercial compilers and our implementation can be compared for achieved
performance. In addition, there are some side projects using OpenACC and
it'll help to test implementation on real code.
Thanks,
Evgeny.
On 05/06/2013 05:41 PM, Tobias Burnus wrote:
Evgeny Gavrin wrote:
What do you think about support of OpenACC 1.0
(http://www.openacc-standard.org/) in gcc?
I like the idea - though, I wonder whether OpenMP 4.0's "target"* would
be the better choice as it looks a bit more flexible and better defined.
(Conceptually, they are very similar; I think the
middle-end/back-end/library part would even be the same.)
Which accelerators do you intent to handle? "Accelerator" is a rather
broad term, covering DSPs, GPUs, Intel's MIC, ...
Tobias
* http://openmp.org/wp/2013/03/openmp-40-rc2/ (GCC supports OpenMP 3.1.
Support for OpenMP 4.0 is currently implemented in GCC's gomp-4_0-branch
- but I don't think anyone will work on OpenMP 4.0's 'target' feature
soon as the enough work on the non-'target' features remains.)
PS: A nonexclusive copyright assignment to the Free Software Foundation
is required for any any nontrivial code contribution. See
http://gcc.gnu.org/contribute.html#legal - After the copyright issues
are sorted out, you can apply for commit rights (write after approval
status), which are sufficient to create a development branch.