[Openmp-dev] Multi arch deviceRTL status

Doerfert, Johannes via Openmp-dev openmp-dev at lists.llvm.org
Wed Dec 11 16:17:33 PST 2019


I said it before but I say it again, thanks for your work on this!

Without this rewrite we could not (reasonably) develop, maintain, and
test our runtime library for more than 1 target. With it, I'm hopeful ;)

The situation looks good already but I was hoping we get AMD support up
and running before we fork of clang 10. So this part, and the TRegion
part, need to get done this year (almost). Do you think that is feasible
(for the AMD runtime and plugin)? (I'll ressurect TRegions, rebase them
and move them into the OMPIRBuilder, so it will be mostly a question of
fast reviews on that part.)



On 12/06, Jon Chesterfield via Openmp-dev wrote:
> 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

> _______________________________________________
> Openmp-dev mailing list
> Openmp-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev


-- 

Johannes Doerfert
Researcher

Argonne National Laboratory
Lemont, IL 60439, USA

jdoerfert at anl.gov
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/openmp-dev/attachments/20191212/f5e84067/attachment.sig>


More information about the Openmp-dev mailing list