[RFC] OpenMP offload infrastructure (iteration 2)

Hello everybody!

To continue the original
discussion of offload infrastructure I have an updated document with
more details for your attention.
The document is a consensus of the contributors representing a number
of institutions: ANL, AMD,
IBM, Intel and Texas Instruments.

Our intent is to have a discussion and an approval from the community
on the method we are going
to implement, so when the time to submit patches will come there will
be no surprises.

Thank you,
Sergey Ostanevich
Open Source Compilers
Intel Corporation

offload-proposal-intel-ti-ibm.pdf (233 KB)


Here's an updated version - couple of misprints are fixed. Thank you
to Roel Jordans and Kelvin Li for pointing this out.
I put this on Google drive to avoid the mailing list restrictions,
feel free to complain on the accessibility issues.


Oh, and please - provide your positive feedback, if you don't see any
mistakes to be fixed. :slight_smile:

Sergey Ostanevich
Open Source Compilers
Intel Corporation

Hi Sergey,

Thanks for putting the new version of the document together! I don’t see any other issues. I strongly believe the approach described in the document is a nice way to get OpenMP offloading support in clang. I plan to start actively contributing code for this component of the OpenMP implementation soon.

Thanks again,

Just a head up, but it looks like OpenMP 4.1 will go away of the map of the
pointer as well as the pointee in maps...Since this is going away, we may
want to revisit the interface with this respect. It has not been voted in
yet, but we should know more in 2-3 weeks


Hi Alex,

At the OpenMP review telecon we agreed in going in there and say that the approach is great and we support that, so we can then go ahead and start implementing it, regardless of how it is going to look like at the end. We can still change the interface and compiler as the time goes by if need to.


graycol.gifAlexandre Eichenberger—04/29/2015 02:32:31 PM—Just a head up, but it looks like OpenMP 4.1 will go away of the map of the pointer as well as the p


Just to clarify my point, it may not be clear in my previous email. We currently have a prototype implementation in https://github.com/clang-omp that successfully uses the interface as described in the document. Of course, we should be flexible in adapting the interface and compiler to future changes in the OpenMP specification. But as the current spec, this design has shown to work well for several platforms. So I believe, this is a great starting point to get offloading working in clang and I am committed to actively work on this with everyone to make that happen.


Hi Sergey,

Thanks for continuing to work on this. I'm listed as a co-author, and so perhaps this is obvious, but I feel this is an important capability for LLVM/Clang to offer, and will be important to many HPC users. I look forward to patches in this area.


Add my LGTM thanks too. This document was worked on in collaboration in a weekly call among a large number of companies including Intel, IBM, AMD, TI, UH, and ANL to name a few. We (IBM) strongly support this document.