[NFC] Trim trailing whitespace in *.rst
[platform/upstream/llvm.git] / openmp / docs / ReleaseNotes.rst
1 ===========================
2 OpenMP 12.0.0 Release Notes
3 ===========================
4
5
6 .. warning::
7    These are in-progress notes for the upcoming LLVM 12.0.0 release.
8    Release notes for previous releases can be found on
9    `the Download Page <https://releases.llvm.org/download.html>`_.
10
11
12 Introduction
13 ============
14
15 This document contains the release notes for the OpenMP runtime, release 12.0.0.
16 Here we describe the status of OpenMP, including major improvements
17 from the previous release. All OpenMP releases may be downloaded
18 from the `LLVM releases web site <https://llvm.org/releases/>`_.
19
20 Non-comprehensive list of changes in this release
21 =================================================
22
23 - Extended the ``libomptarget`` API functions to include source location
24   information and OpenMP target mapper support. This allows ``libomptarget`` to
25   know the source location of the OpenMP region it is executing, as well as the
26   name and declarations of all the variables used inside the region. Each
27   function generated now uses its ``mapper`` variant. The old API calls now call
28   into the new API functions with ``nullptr`` arguments for backwards
29   compatibility with old binaries. Source location information for
30   ``libomptarget`` is now generated by Clang at any level of debugging
31   information.
32
33 - Added improved error messages for ``libomptarget`` and ``CUDA`` plugins. Error
34   messages are now presented without requiring a debug build of
35   ``libomptarget``. The newly added source location information can also be used
36   to identify which OpenMP target region the failure occurred in. More
37   information can be found :ref:`here <libopenmptarget_errors>`.
38
39 - Added additional environment variables to control output from the
40   ``libomptarget`` runtime library. ``LIBOMPTARGET_PROFILE`` to
41   generate time profile output similar to Clang's ``-ftime-trace`` option.
42   ``LIBOMPTARGET_MEMORY_MANAGER_THRESHOLD`` sets the threshold size for which
43   the ``libomptarget`` memory manager will handle the allocation.
44   ``LIBOMPTARGET_INFO`` allows the user to request certain information from the
45   ``libomptarget`` runtime using a 32-bit field. A full description of each
46   environment variable is described :ref:`here <libopenmptarget_environment_vars>`.
47
48 - ``target nowait`` was supported via hidden helper task, which is a task not
49   bound to any parallel region. A hidden helper team with a number of threads is
50   created when the first hidden helper task is encountered. The number of threads
51   can be configured via the environment variable
52   ``LIBOMP_NUM_HIDDEN_HELPER_THREADS``. By default it is 8. If
53   ``LIBOMP_NUM_HIDDEN_HELPER_THREADS=0``, hidden helper task is disabled and
54   falls back to a regular OpenMP task. It can also be disabled by setting the
55   environment variable ``LIBOMP_USE_HIDDEN_HELPER_TASK=OFF``.
56
57 - ``deviceRTLs`` for NVPTX platform is CUDA free now. It is generally OpenMP code.
58   Target dependent parts are implemented with Clang/LLVM/NVVM intrinsics. CUDA
59   SDK is also dropped as a dependence to build the device runtime, which means
60   device runtime can also be built on a CUDA free system. However, it is
61   disabled by default. Set the CMake variable
62   ``LIBOMPTARGET_BUILD_NVPTX_BCLIB=ON`` to enable the build of NVPTX device
63   runtime on a CUDA free system. ``gcc-multilib`` and ``g++-multilib`` are
64   required. If CUDA is found, the device runtime will be built by default.
65
66 - Static NVPTX device runtime library (``libomptarget-nvptx.a``) was dropped.
67   A bitcode library is required to build an OpenMP program. If the library is
68   not found in the default path or any of the paths defined by ``LIBRARY_PATH``,
69   an error will be raised. User can also specify the path to the bitcode device
70   library via ``--libomptarget-nvptx-bc-path=``.