forked from OSchip/llvm-project
71 lines
3.7 KiB
ReStructuredText
71 lines
3.7 KiB
ReStructuredText
===========================
|
|
OpenMP 12.0.0 Release Notes
|
|
===========================
|
|
|
|
|
|
.. warning::
|
|
These are in-progress notes for the upcoming LLVM 12.0.0 release.
|
|
Release notes for previous releases can be found on
|
|
`the Download Page <https://releases.llvm.org/download.html>`_.
|
|
|
|
|
|
Introduction
|
|
============
|
|
|
|
This document contains the release notes for the OpenMP runtime, release 12.0.0.
|
|
Here we describe the status of OpenMP, including major improvements
|
|
from the previous release. All OpenMP releases may be downloaded
|
|
from the `LLVM releases web site <https://llvm.org/releases/>`_.
|
|
|
|
Non-comprehensive list of changes in this release
|
|
=================================================
|
|
|
|
- Extended the ``libomptarget`` API functions to include source location
|
|
information and OpenMP target mapper support. This allows ``libomptarget`` to
|
|
know the source location of the OpenMP region it is executing, as well as the
|
|
name and declarations of all the variables used inside the region. Each
|
|
function generated now uses its ``mapper`` variant. The old API calls now call
|
|
into the new API functions with ``nullptr`` arguments for backwards
|
|
compatibility with old binaries. Source location information for
|
|
``libomptarget`` is now generated by Clang at any level of debugging
|
|
information.
|
|
|
|
- Added improved error messages for ``libomptarget`` and ``CUDA`` plugins. Error
|
|
messages are now presented without requiring a debug build of
|
|
``libomptarget``. The newly added source location information can also be used
|
|
to identify which OpenMP target region the failure occurred in. More
|
|
information can be found :ref:`here <libopenmptarget_errors>`.
|
|
|
|
- Added additional environment variables to control output from the
|
|
``libomptarget`` runtime library. ``LIBOMPTARGET_PROFILE`` to
|
|
generate time profile output similar to Clang's ``-ftime-trace`` option.
|
|
``LIBOMPTARGET_MEMORY_MANAGER_THRESHOLD`` sets the threshold size for which
|
|
the ``libomptarget`` memory manager will handle the allocation.
|
|
``LIBOMPTARGET_INFO`` allows the user to request certain information from the
|
|
``libomptarget`` runtime using a 32-bit field. A full description of each
|
|
environment variable is described :ref:`here <libopenmptarget_environment_vars>`.
|
|
|
|
- ``target nowait`` was supported via hidden helper task, which is a task not
|
|
bound to any parallel region. A hidden helper team with a number of threads is
|
|
created when the first hidden helper task is encountered. The number of threads
|
|
can be configured via the environment variable
|
|
``LIBOMP_NUM_HIDDEN_HELPER_THREADS``. By default it is 8. If
|
|
``LIBOMP_NUM_HIDDEN_HELPER_THREADS=0``, hidden helper task is disabled and
|
|
falls back to a regular OpenMP task. It can also be disabled by setting the
|
|
environment variable ``LIBOMP_USE_HIDDEN_HELPER_TASK=OFF``.
|
|
|
|
- ``deviceRTLs`` for NVPTX platform is CUDA free now. It is generally OpenMP code.
|
|
Target dependent parts are implemented with Clang/LLVM/NVVM intrinsics. CUDA
|
|
SDK is also dropped as a dependence to build the device runtime, which means
|
|
device runtime can also be built on a CUDA free system. However, it is
|
|
disabled by default. Set the CMake variable
|
|
``LIBOMPTARGET_BUILD_NVPTX_BCLIB=ON`` to enable the build of NVPTX device
|
|
runtime on a CUDA free system. ``gcc-multilib`` and ``g++-multilib`` are
|
|
required. If CUDA is found, the device runtime will be built by default.
|
|
|
|
- Static NVPTX device runtime library (``libomptarget-nvptx.a``) was dropped.
|
|
A bitcode library is required to build an OpenMP program. If the library is
|
|
not found in the default path or any of the paths defined by ``LIBRARY_PATH``,
|
|
an error will be raised. User can also specify the path to the bitcode device
|
|
library via ``--libomptarget-nvptx-bc-path=``.
|