llvm-project/openmp/docs/SupportAndFAQ.rst

94 lines
3.9 KiB
ReStructuredText

Support, Getting Involved, and FAQ
==================================
Please do not hesitate to reach out to us via openmp-dev@lists.llvm.org or join
one of our :ref:`regular calls <calls>`. Some common questions are answered in
the :ref:`faq`.
.. _calls:
Calls
-----
OpenMP in LLVM Technical Call
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Development updates on OpenMP (and OpenACC) in the LLVM Project, including Clang, optimization, and runtime work.
- Join `OpenMP in LLVM Technical Call <https://bluejeans.com/544112769//webrtc>`__.
- Time: Weekly call on every Wednesday 7:00 AM Pacific time.
- Meeting minutes are `here <https://docs.google.com/document/d/1Tz8WFN13n7yJ-SCE0Qjqf9LmjGUw0dWO9Ts1ss4YOdg/edit>`__.
- Status tracking `page <https://openmp.llvm.org/docs>`__.
OpenMP in Flang Technical Call
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Development updates on OpenMP and OpenACC in the Flang Project.
- Join `OpenMP in Flang Technical Call <https://bit.ly/39eQW3o>`_
- Time: Weekly call on every Thursdays 8:00 AM Pacific time.
- Meeting minutes are `here <https://docs.google.com/document/d/1yA-MeJf6RYY-ZXpdol0t7YoDoqtwAyBhFLr5thu5pFI>`__.
- Status tracking `page <https://docs.google.com/spreadsheets/d/1FvHPuSkGbl4mQZRAwCIndvQx9dQboffiD-xD0oqxgU0/edit#gid=0>`__.
.. _faq:
FAQ
---
.. note::
The FAQ is a work in progress and most of the expected content is not
yet available. While you can expect changes, we always welcome feedback and
additions. Please contact, e.g., through ``openmp-dev@lists.llvm.org``.
Q: How to contribute a patch to the webpage or any other part?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
All patches go through the regular `LLVM review process
<https://llvm.org/docs/Contributing.html#how-to-submit-a-patch>`_.
.. _build_offload_capable_compiler:
Q: How to build an OpenMP offload capable compiler?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To build an *effective* OpenMP offload capable compiler we recommend a two
stage build. The first stage Clang does not require to be offload capable but
all backends that are targeted by OpenMP need to be enabled. By default, Clang
will be build with all backends enabled. This initial (stage 1) Clang is used
to create a second Clang compiler that is offload capable as well as the
:ref:`device runtime libraries <device_runtime>` that will be linked into the
offloaded code to provide OpenMP runtime support on the device.
Generic information about building LLVM is available `here
<https://llvm.org/docs/GettingStarted.html>`__. The CMake options for the
second stage Clang should include:
- `LIBOMPTARGET_NVPTX_CUDA_COMPILER=$STAGE1/bin/clang` to use the stage one
compiler for the device runtime compilation.
- `LIBOMPTARGET_NVPTX_ENABLE_BCLIB=ON` to enable efficient device runtimes in
bitcode format.
If your build machine is not the target machine or automatic detection of the
available GPUs failed, you should also set:
- `CLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_XX` where `XX` is the architecture of your GPU, e.g, 80.
- `LIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES=YY` where `YY` is the numeric compute capacity of your GPU, e.g., 75.
.. note::
The compiler that generates the offload code should be the same (version) as
the compiler that build the OpenMP device runtimes. The OpenMP host runtime
can be build by a different compiler.
.. _advanced_builds: https://llvm.org//docs/AdvancedBuilds.html
Q: Does OpenMP offloading support work in pre-packaged LLVM releases?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For now, the answer is most likely *no*. Please see :ref:`build_offload_capable_compiler`.
Q: Does OpenMP offloading support work in packages distributed as part of my OS?
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For now, the answer is most likely *no*. Please see :ref:`build_offload_capable_compiler`.