Skip to content

Commit

Permalink
[OpenMP][NFC] Change error message on offloading failure to mention d…
Browse files Browse the repository at this point in the history
…ocumentation

This patch changes the error message to instead mention the
documentation page for the debugging options provided by libomptarget
and the bitcode runtimes. Add some extra information to the documentation to
help users more quickly identify debugging resources.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D118626
  • Loading branch information
jhuber6 committed Jan 31, 2022
1 parent fd5853d commit ad0a306
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 5 deletions.
22 changes: 20 additions & 2 deletions openmp/docs/design/Runtimes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,15 @@
LLVM/OpenMP Runtimes
====================

There are four distinct types of LLVM/OpenMP runtimes
There are four distinct types of LLVM/OpenMP runtimes: the host runtime
:ref:`libomp`, the target offloading runtime :ref:`libomptarget`, the target
offloading plugin :ref:`libomptarget_plugin`, and finally the target device
runtime :ref:`libomptarget_device`.

For general information on debugging OpenMP target offloading applications, see
:ref:`libomptarget_info` and :ref:`libomptarget_device_debugging`

.. _libomp:

LLVM/OpenMP Host Runtime (``libomp``)
-------------------------------------
Expand Down Expand Up @@ -663,6 +671,8 @@ OpenMP run-time library during program execution.

**Default:** ``true``

.. _libomptarget:

LLVM/OpenMP Target Host Runtime (``libomptarget``)
--------------------------------------------------

Expand Down Expand Up @@ -723,6 +733,8 @@ the device kernel exits. The default threshold value is ``8KB``. If
``LIBOMPTARGET_MEMORY_MANAGER_THRESHOLD`` is set to ``0`` the memory manager
will be completely disabled.

.. _libomptarget_info:

LIBOMPTARGET_INFO
"""""""""""""""""

Expand Down Expand Up @@ -935,7 +947,7 @@ going wrong.
Libomptarget error: Copying data from device failed.
Libomptarget error: Call to targetDataEnd failed, abort target.
Libomptarget error: Failed to process data after launching the kernel.
Libomptarget error: Run with LIBOMPTARGET_INFO=4 to dump host-target pointer mappings.
Libomptarget error: Consult https://openmp.llvm.org/design/Runtimes.html for debugging options.
sum.cpp:5:1: Libomptarget error 1: failure of target construct while offloading is mandatory
This shows that there is an illegal memory access occuring inside the OpenMP
Expand Down Expand Up @@ -1020,6 +1032,7 @@ value of the ``LIBOMPTARGET_MAP_FORCE_ATOMIC`` environment variable.
The default behavior of LLVM 14 is to force atomic maps clauses, prior versions
of LLVM did not.

.. _libomptarget_plugin:

LLVM/OpenMP Target Host Runtime Plugins (``libomptarget.rtl.XXXX``)
-------------------------------------------------------------------
Expand Down Expand Up @@ -1082,13 +1095,17 @@ LIBOMPTARGET_RPC_LATENCY
""""""""""""""""""""""""
This is the maximum amount of time the client will wait for a response from the server.

.. _libomptarget_device:

LLVM/OpenMP Target Device Runtime (``libomptarget-ARCH-SUBARCH.bc``)
--------------------------------------------------------------------

The target device runtime is an LLVM bitcode library that implements OpenMP
runtime functions on the target device. It is linked with the device code's LLVM
IR during compilation.

.. _libomptarget_device_debugging:

Debugging
^^^^^^^^^

Expand All @@ -1103,6 +1120,7 @@ debugging features are supported.

* Enable debugging assertions in the device. ``0x01``
* Enable OpenMP runtime function traces in the device. ``0x2``
* Enable diagnosing common problems during offloading . ``0x4``

.. code-block:: c++

Expand Down
5 changes: 2 additions & 3 deletions openmp/libomptarget/src/omptarget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -224,9 +224,8 @@ void handleTargetOutcome(bool Success, ident_t *Loc) {
for (auto &Device : PM->Devices)
dumpTargetPointerMappings(Loc, *Device);
else
FAILURE_MESSAGE("Run with LIBOMPTARGET_INFO=%d to dump host-target "
"pointer mappings.\n",
OMP_INFOTYPE_DUMP_TABLE);
FAILURE_MESSAGE("Consult https://openmp.llvm.org/design/Runtimes.html "
"for debugging options.\n");

SourceInfo info(Loc);
if (info.isAvailible())
Expand Down

0 comments on commit ad0a306

Please sign in to comment.