[Openmp-dev] Multi arch deviceRTL status

Jon Chesterfield via Openmp-dev openmp-dev at lists.llvm.org
Fri Dec 6 08:44:11 PST 2019


Hello OpenMP dev and AOMP team,

It's been a little while since sending an update on deviceRTL changes and
we've just passed having 50% of the code available under common. Therefore,
here is the state of play as I see it.

Design premise:

- Provide a single interface.h file declaring everything in the deviceRTL
library

- Write a thin abstraction layer over synchronisation, atomics,
architecture specific functions. This exists as target_impl.h, implemented
for nvptx and amdgcn

- Provide source under common/, written in terms of said abstraction, which
can optionally be used by targets

- Functions that are not drawn from common/ are implemented under target/

- Provide a test suite written against interface.h

Status:

- Interface implemented, looks OK. May want to reconsider how constants are
shared with the compiler

- Abstraction layer sufficient for most of the existing code. Needs an
atomic wrapper, some refactoring

- About half the sloc are under common. All used by nvptx, all will be used
by amdgcn once atomics are wrapped

- Some functions still missing from amdgcn in tree, all available in AOMP.
WIP

- Test suite is vapourware. I have undocumented plans

Next steps:

- Rename files that don't contain any cuda to use .cpp suffix

- Fill in last gaps in target_impl

- Build the testing infra

End goal:

- Demonstrably correct (unit tested!) openmp device runtime library

- Running on various nvptx and amdgcn gpus with minimal compiler
complexity. Now is a great time to join in as a third accelerator vendor

- Support for combining generic implementations under common with target
specialised versions

Thanks all,

Jon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20191206/e73c40bb/attachment.html>


More information about the Openmp-dev mailing list