<div dir="ltr"><div>Hello OpenMP dev and AOMP team,</div><div><br></div><div>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.</div><div><br></div><div>Design premise:</div><div><br></div><div>- Provide a single interface.h file declaring everything in the deviceRTL library</div><div><br></div><div>- Write a thin abstraction layer over synchronisation, atomics, architecture specific functions. This exists as target_impl.h, implemented for nvptx and amdgcn</div><div><br></div><div>- Provide source under common/, written in terms of said abstraction, which can optionally be used by targets</div><div><br></div><div>- Functions that are not drawn from common/ are implemented under target/</div><div><br></div><div>- Provide a test suite written against interface.h</div><div><br></div><div>Status:</div><div><br></div><div>- Interface implemented, looks OK. May want to reconsider how constants are shared with the compiler</div><div><br></div><div>- Abstraction layer sufficient for most of the existing code. Needs an atomic wrapper, some refactoring</div><div><br></div><div>- About half the sloc are under common. All used by nvptx, all will be used by amdgcn once atomics are wrapped</div><div><br></div><div>- Some functions still missing from amdgcn in tree, all available in AOMP. WIP</div><div><br></div><div>- Test suite is vapourware. I have undocumented plans</div><div><br></div><div>Next steps:</div><div><br></div><div>- Rename files that don't contain any cuda to use .cpp suffix</div><div><br></div><div>- Fill in last gaps in target_impl</div><div><br></div><div>- Build the testing infra</div><div><br></div><div>End goal:</div><div><br></div><div>- Demonstrably correct (unit tested!) openmp device runtime library</div><div><br></div><div>- Running on various nvptx and amdgcn gpus with minimal compiler complexity. Now is a great time to join in as a third accelerator vendor</div><div><br></div><div>- Support for combining generic implementations under common with target specialised versions</div><div><br></div><div>Thanks all,</div><div><br></div><div>Jon</div></div>