OpenMP in LLVM Multi-company Telecom Meeting Minutes June 17th

Next Meeting : July 1st

  • Opens

  • Shilei asked what coding style should be used for openmp libraries. Currently it is inconsistent an example is device_id

  • Suggestion is to use llvm style coding for new code as it would involve lot of work to retroactively fix all the code.

  • The rewrite of the device rtl should already be following llvm style.

  • Status of OpenMP version switch to 50

  • Of the 50 failures Islam has fixed all but 9.These are due the change in order of functions generated. https://reviews.llvm.org/D81098

  • Ok to check the changes and address the 9 failures immediately after checkin

  • The default without setting openmp version should also be enabled in lit test to make sure future version change in compiler will not skip the test.

  • Function pointer mapping

  • OpenMP spec allows function pointer to be passed from host to device. The host pointer is never updated.

  • The implementation can choose to lookup the device address during mapping or during use on the device.

  • Intel to investigate the implementation.

.

  • Variable in declare target device_type(nohost)

  • Supporting nohost variables with standalone directives requires lot more work in compiler.

  • Plan is to change OpenMP spec to limit variables to the scoped version of declare target variant.

  • Deepak has opened a ticket and will drive the change in the spec.

  • Async Support

  • Shilei implemented support to offload target tasks which are dependent on each other and not on host to be scheduled on the device immediately.

  • The patch can be found here https://reviews.llvm.org/D81989

  • The dependences are handled on the device runtime with event.

  • An optimization is to schedule dependent target tasks on the same queue so the event can be avoided,

  • fat static library

  • Jan is making good progress on supporting fat static archives.

  • Support for handling archives as input to llvm-link has been added. https://reviews.llvm.org/D81109

  • Support for unbundling an archive of bundled object files into an archive containing the device-specific code. https://reviews.llvm.org/D80816

  • Working on a patch to update mlink to support archive and driver to support device-specific bitcode library.

  • Mapper support

  • Lingda said he does not have the time, so George has taken over and will work on the runtime support.

  • The Clang changes have been accepted.

  • Development activities

  • Valentin has created tablegen file for OpenMP directives and clauses. The patch can be found here https://reviews.llvm.org/D81736

  • The goal is sharing a common definition between clang, flang and openmp runtime. Currently the runtime and clang have their own definition leading to potential problems

  • Features that are specific to a language can be controlled with flags

  • Only downside is that now openmp library build is dependent on table gen. The advantages of sharing code overrides the downside.

Roll Call :

image002.png