<div dir="ltr"><div dir="ltr">Do any of you have a working LLVM runtime with OMPT for offloading completed? We tried both <div>(<a href="https://github.com/jmellorcrummey/llvm-openmp-5" rel="noreferrer" target="_blank">https://github.com/jmellorcrummey/llvm-openmp-5</a>) and <br><a href="https://github.com/OpenMPToolsInterface/llvm-project/tree/openmp5-gpu/openmp" rel="noreferrer" target="_blank">https://github.com/OpenMPToolsInterface/llvm-project/tree/openmp5-gpu/openmp</a> and there are some errors see below. It seems some flag is off. <br></div><div><br></div><div>0: Could not register callback 'ompt_callback_device_initialize'<br>0: Could not register callback 'ompt_callback_device_finalize'<br>0: Could not register callback 'ompt_callback_device_load'<br>0: Could not register callback 'ompt_callback_device_unload'<br>0: Could not register callback 'ompt_callback_target'<br>0: Could not register callback 'ompt_callback_target_map'<br>0: Could not register callback 'ompt_callback_target_data_op'<br>0: Could not register callback 'ompt_callback_target_submit'<br>0: NULL_POINTER=(nil)<br></div><div><br></div><div>Thank you</div><div>Yonghong</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 22, 2019 at 11:50 AM Hervé Yviquel via Openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Hi John, </div><br><div>Thank you very much for the quick answer!</div><div>We are going to integrate your changes to our repository to allow us to profile OMP targets until it gets upstreamed.</div><br><div><u></u><table cellpadding="0" cellspacing="0"><tbody><tr><td><div><strong>Hervé</strong></div><div style="font-size:0.9em;min-width:250px;max-width:300px;margin-top:4px;padding-top:4px"><div><div></div><div></div></div></div></td></tr></tbody></table><u></u></div><div>On oct. 22 2019, at 11:43 am, John Mellor-Crummey <<a href="mailto:johnmc@rice.edu" target="_blank">johnmc@rice.edu</a>> wrote:</div><blockquote><div><div>We have implemented a draft of all of libomptarget OpenMP 5.0 device support here: <a href="https://github.com/jmellorcrummey/llvm-openmp-5" title="https://github.com/jmellorcrummey/llvm-openmp-5" target="_blank">https://github.com/jmellorcrummey/llvm-openmp-5</a></div><div>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>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><div><br></div><div>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 <font style="font-size:10px">ompt_callback_target_submit and 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.</font></div><div><br></div><div>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><div><div><div><font style="font-family:Helvetica">--</font></div><div><font style="font-family:Helvetica">John Mellor-Crummey Professor</font></div><div><font style="font-family:Helvetica">Dept of Computer Science Rice University</font></div><div><font style="font-family:Helvetica"><a href="mailto:johnmc@rice.edu" title="mailto:johnmc@rice.edu" target="_blank">email: johnmc@rice.edu</a></font><font style="font-family:Helvetica"> phone: 713-348-5179</font></div></div></div><div><br><blockquote><div>On Oct 22, 2019, at 9:22 AM, Hervé Yviquel via Openmp-dev <<a href="mailto:openmp-dev@lists.llvm.org" title="mailto:openmp-dev@lists.llvm.org" target="_blank">openmp-dev@lists.llvm.org</a>> wrote:</div><br><div><div>Hi all,</div><br><div>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><pre style="background-color:rgba(0,0,0,0.05);padding:0.2em 1em"><div><code>0: Could not register callback 'ompt_callback_device_initialize'</code></div><div><code>0: Could not register callback 'ompt_callback_device_load'</code></div><div><code>0: Could not register callback 'ompt_callback_target'</code></div></pre></code><div>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><div>Thanks,</div><div>Hervé</div><div>_______________________________________________</div><div>Openmp-dev mailing list</div><div><a href="mailto:Openmp-dev@lists.llvm.org" title="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a></div><div><a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a></div></div></blockquote></div></div></div></div></blockquote>_______________________________________________<br>
Openmp-dev mailing list<br>
<a href="mailto:Openmp-dev@lists.llvm.org" target="_blank">Openmp-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/openmp-dev</a><br>
</blockquote></div>
</div>