forked from OSchip/llvm-project
[OpenMP][Docs] Add more content, call coordinates, FAQ entries, links
This commit is contained in:
parent
c557f549ba
commit
227c8ff189
|
@ -1,4 +1,93 @@
|
|||
Support And FAQ
|
||||
===============
|
||||
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`.
|
||||
|
|
|
@ -2,6 +2,11 @@ OpenMP in LLVM --- Design Overview
|
|||
==================================
|
||||
|
||||
|
||||
Resources
|
||||
---------
|
||||
|
||||
- OpenMP Booth @ SC19: "OpenMP clang and flang Development" https://youtu.be/6yOa-hRi63M
|
||||
|
||||
|
||||
.. toctree::
|
||||
:glob:
|
||||
|
|
|
@ -19,6 +19,8 @@ LLVM/OpenMP Target Host Runtime (``libomptarget``)
|
|||
LLVM/OpenMP Target Host Runtime Plugins (``libomptarget.rtl.XXXX``)
|
||||
-------------------------------------------------------------------
|
||||
|
||||
.. _device_runtime:
|
||||
|
||||
LLVM/OpenMP Target Device Runtime (``libomptarget-ARCH-SUBARCH.bc``)
|
||||
--------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -77,13 +77,16 @@ please refer to :doc:`remarks/OptimizationRemarks`.
|
|||
remarks/OptimizationRemarks
|
||||
|
||||
|
||||
Support & Frequently Asked Questions (FAQ)
|
||||
==========================================
|
||||
Support, Getting Involved, and Frequently Asked Questions (FAQ)
|
||||
===============================================================
|
||||
|
||||
Dealing with OpenMP can be complicated. For help with the setup of an OpenMP
|
||||
(offload) capable compiler toolchain, its usage, and common problems, consult
|
||||
the :doc:`Support and FAQ <SupportAndFAQ>` page.
|
||||
|
||||
We also encourage everyone interested in OpenMP in LLVM to :doc:`get involved
|
||||
<SupportAndFAQ>`.
|
||||
|
||||
|
||||
.. toctree::
|
||||
:hidden:
|
||||
|
|
|
@ -3,3 +3,11 @@ OpenMP-Aware Optimizations
|
|||
|
||||
OpenMPOpt
|
||||
---------
|
||||
|
||||
|
||||
Resources
|
||||
---------
|
||||
|
||||
- 2020 LLVM Developers’ Meeting: "(OpenMP) Parallelism-Aware Optimizations" https://youtu.be/gtxWkeLCxmU
|
||||
- 2019 EuroLLVM Developers’ Meeting: "Compiler Optimizations for (OpenMP) Target Offloading to GPUs" https://youtu.be/3AbS82C3X30
|
||||
|
||||
|
|
|
@ -1,2 +1,9 @@
|
|||
OpenMP-Unaware Optimizations
|
||||
============================
|
||||
|
||||
|
||||
Resources
|
||||
---------
|
||||
|
||||
- 2018 LLVM Developers’ Meeting: "Optimizing Indirections, using abstractions without remorse" https://youtu.be/zfiHaPaoQPc
|
||||
- 2019 LLVM Developers’ Meeting: "The Attributor: A Versatile Inter-procedural Fixpoint Iteration Framework" https://youtu.be/CzWkc_JcfS0
|
||||
|
|
Loading…
Reference in New Issue