<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">We have implemented a draft of all of libomptarget OpenMP 5.0 device support here: <a href="https://github.com/jmellorcrummey/llvm-openmp-5" class="">https://github.com/jmellorcrummey/llvm-openmp-5</a><div class="">The default branch is openmp5-gpu, which includes the device-independent support in libomptarget as well as device-dependent support for NVIDIA GPUs.</div><div class="">While we merged changes from LLVM OpenMP recently (over the summer), our version is likely not completely up to date with changes in LLVM OpenMP.</div><div class=""><div class=""><br class=""></div><div class="">The only difference between what we have implemented and the OpenMP 5.0 standard is that we changed the implementation to provide begin/end pairs for <span style="font-size: 10px;" class="">ompt_callback_target_submit and </span><span style="font-size: 10px;" class="">ompt_callback_target_data_op callbacks, as described in the attached document, which we proposed as a change for OpenMP 5.1.  There is a discussion of this suggested change vs. alternative ways of supporting mixed programming models (e.g. CUDA+OpenMP5, HIP+OpenMP5, SYCL+OpenMP5) on the OpenMP tools telecon today 1.25 hours from now.</span></div><div class=""><br class=""></div><div class="">Besides the libomptarget support, the repository above also has fixes for handling OMPT frames for call stack introspection. We need to separate the libomptarget work from the rest and submit them upstream as separate pull requests.</div><div class=""><div class="">
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">--<br class="">John Mellor-Crummey<span class="Apple-tab-span" style="white-space: pre;">              </span>Professor<br class="">Dept of Computer Science<span class="Apple-tab-span" style="white-space: pre;">    </span>Rice University<br class=""><a href="mailto:johnmc@rice.edu" class="">email: johnmc@rice.edu</a><span class="Apple-tab-span" style="white-space: pre;">          </span>phone: 713-348-5179<br class=""></div>

</div>
<div><br class=""><blockquote type="cite" class=""><div class="">On Oct 22, 2019, at 9:22 AM, HervĂ© Yviquel via Openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org" class="">openmp-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi all,</div><br class=""><div class="">We are developing a tracing tool relying on OMPT callbacks which works quite good for tasks and parallel regions but not that for target regions:</div><code class=""><pre style="background-color:rgba(0,0,0,0.05);padding:0.2em 1em" class=""><div class=""><code class="">0: Could not register callback 'ompt_callback_device_initialize'</code></div><div class=""><code class="">0: Could not register callback 'ompt_callback_device_load'</code></div><div class=""><code class="">0: Could not register callback 'ompt_callback_target'</code></div></pre></code><div class="">After looking at libomp and libomptarget code, it seems all target-related data structures are implemented on the OMPT sides but not the callbacks on libomptarget side. We are considering implementing it then submitting a patch but I would like to know if someone in the openmp community is already looking at it? Indeed, we don't want to reimplement something that is already available but not yet upstream.</div><br class=""><div class="">Thanks,</div><div class="">HervĂ©</div>_______________________________________________<br class="">Openmp-dev mailing list<br class=""><a href="mailto:Openmp-dev@lists.llvm.org" class="">Openmp-dev@lists.llvm.org</a><br class="">https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev<br class=""></div></blockquote></div><br class=""></div><div class=""><br class=""></div><div class=""></div></div></body></html>