This is the mail archive of the
mailing list for the GCC project.
Re: Offload Library
- From: Kirill Yukhin <kirill dot yukhin at gmail dot com>
- To: Ian Lance Taylor <iant at google dot com>
- Cc: GCC Development <gcc at gcc dot gnu dot org>, Jakub Jelinek <jakub at redhat dot com>, Jeff Law <law at redhat dot com>, Richard Henderson <rth at redhat dot com>, Uros Bizjak <ubizjak at gmail dot com>
- Date: Mon, 26 May 2014 13:50:10 +0400
- Subject: Re: Offload Library
- Authentication-results: sourceware.org; auth=none
- References: <20140516114748 dot GA28112 at msticlxl57 dot ims dot intel dot com> <CAKOQZ8ziNmGV06QSFAE8fHyj9x2dxJOCaQ9=Xx88fSgw1DC_XA at mail dot gmail dot com> <20140519125253 dot GA46709 at msticlxl57 dot ims dot intel dot com>
On 19 May 16:53, Kirill Yukhin wrote:
> Hello Ian,
> On 16 May 07:07, Ian Lance Taylor wrote:
> > On Fri, May 16, 2014 at 4:47 AM, Kirill Yukhin <email@example.com> wrote:
> > >
> > > To support the offloading features for Intel's Xeon Phi cards
> > > we need to add a foreign library (liboffload) into the gcc repository.
> > > README with build instructions is attached.
> > Can you explain why this library should be part of GCC, and how GCC
> > would use it? I'm sure it's obvious to you but it's not obvious to
> > me.
> The âtargetâ clause of OpenMP 4.0 aka âoffloadingâ support is expected to be a part of
> libgomp. Every target platform that will be supported should implement a dedicated
> plugin for libgomp. The plugin for Xeon PHI is based on the liboffload functionality.
> This library also will provide compatibility for binaries built with ICC.
Let me provide some tech details.
This library is compiler-specific library, whose origin goes to ICC.
We think that as far as this library is a compiler-related, it is better to
put it in GCC source tree.
Also, we plan to accompany this library with an emulator of lower level interface.
Having such a library and an emulator, weâll eliminate all external dependencies
for offloading to work.
So, it will be possible to do `make checkâ for offload tests w/o need to
link in any external libraries, no offload HW will be needed as well.
The intended use of this library as follows. Implementation of libgompâs
interface routines for offload (like `GOMP_targetâ) will call target-dependent
part of the library. This part (for COI-capable software stacks) will call
liboffload routines to perform any offload-related tasks.
This library is used by ICC and we plan to use it for offloading in LLVM as well.
That will make sure that offloading features for these compiler will be binary
The library is going to be built as shared object.