Skip to content

Commit 227c8ff

Browse files
committed
[OpenMP][Docs] Add more content, call coordinates, FAQ entries, links
1 parent c557f54 commit 227c8ff

File tree

6 files changed

+118
-4
lines changed

6 files changed

+118
-4
lines changed

openmp/docs/SupportAndFAQ.rst

Lines changed: 91 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,93 @@
1-
Support And FAQ
2-
===============
1+
Support, Getting Involved, and FAQ
2+
==================================
33

4+
Please do not hesitate to reach out to us via openmp-dev@lists.llvm.org or join
5+
one of our :ref:`regular calls <calls>`. Some common questions are answered in
6+
the :ref:`faq`.
47

8+
.. _calls:
9+
10+
Calls
11+
-----
12+
13+
OpenMP in LLVM Technical Call
14+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
15+
16+
- Development updates on OpenMP (and OpenACC) in the LLVM Project, including Clang, optimization, and runtime work.
17+
- Join `OpenMP in LLVM Technical Call <https://bluejeans.com/544112769//webrtc>`__.
18+
- Time: Weekly call on every Wednesday 7:00 AM Pacific time.
19+
- Meeting minutes are `here <https://docs.google.com/document/d/1Tz8WFN13n7yJ-SCE0Qjqf9LmjGUw0dWO9Ts1ss4YOdg/edit>`__.
20+
- Status tracking `page <https://openmp.llvm.org/docs>`__.
21+
22+
23+
OpenMP in Flang Technical Call
24+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
25+
- Development updates on OpenMP and OpenACC in the Flang Project.
26+
- Join `OpenMP in Flang Technical Call <https://bit.ly/39eQW3o>`_
27+
- Time: Weekly call on every Thursdays 8:00 AM Pacific time.
28+
- Meeting minutes are `here <https://docs.google.com/document/d/1yA-MeJf6RYY-ZXpdol0t7YoDoqtwAyBhFLr5thu5pFI>`__.
29+
- Status tracking `page <https://docs.google.com/spreadsheets/d/1FvHPuSkGbl4mQZRAwCIndvQx9dQboffiD-xD0oqxgU0/edit#gid=0>`__.
30+
31+
32+
.. _faq:
33+
34+
FAQ
35+
---
36+
37+
.. note::
38+
The FAQ is a work in progress and most of the expected content is not
39+
yet available. While you can expect changes, we always welcome feedback and
40+
additions. Please contact, e.g., through ``openmp-dev@lists.llvm.org``.
41+
42+
43+
Q: How to contribute a patch to the webpage or any other part?
44+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
45+
46+
All patches go through the regular `LLVM review process
47+
<https://llvm.org/docs/Contributing.html#how-to-submit-a-patch>`_.
48+
49+
50+
.. _build_offload_capable_compiler:
51+
52+
Q: How to build an OpenMP offload capable compiler?
53+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
54+
55+
To build an *effective* OpenMP offload capable compiler we recommend a two
56+
stage build. The first stage Clang does not require to be offload capable but
57+
all backends that are targeted by OpenMP need to be enabled. By default, Clang
58+
will be build with all backends enabled. This initial (stage 1) Clang is used
59+
to create a second Clang compiler that is offload capable as well as the
60+
:ref:`device runtime libraries <device_runtime>` that will be linked into the
61+
offloaded code to provide OpenMP runtime support on the device.
62+
63+
Generic information about building LLVM is available `here
64+
<https://llvm.org/docs/GettingStarted.html>`__. The CMake options for the
65+
second stage Clang should include:
66+
67+
- `LIBOMPTARGET_NVPTX_CUDA_COMPILER=$STAGE1/bin/clang` to use the stage one
68+
compiler for the device runtime compilation.
69+
- `LIBOMPTARGET_NVPTX_ENABLE_BCLIB=ON` to enable efficient device runtimes in
70+
bitcode format.
71+
72+
If your build machine is not the target machine or automatic detection of the
73+
available GPUs failed, you should also set:
74+
75+
- `CLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_XX` where `XX` is the architecture of your GPU, e.g, 80.
76+
- `LIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES=YY` where `YY` is the numeric compute capacity of your GPU, e.g., 75.
77+
78+
.. note::
79+
The compiler that generates the offload code should be the same (version) as
80+
the compiler that build the OpenMP device runtimes. The OpenMP host runtime
81+
can be build by a different compiler.
82+
83+
.. _advanced_builds: https://llvm.org//docs/AdvancedBuilds.html
84+
85+
86+
87+
Q: Does OpenMP offloading support work in pre-packaged LLVM releases?
88+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
89+
For now, the answer is most likely *no*. Please see :ref:`build_offload_capable_compiler`.
90+
91+
Q: Does OpenMP offloading support work in packages distributed as part of my OS?
92+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
93+
For now, the answer is most likely *no*. Please see :ref:`build_offload_capable_compiler`.

openmp/docs/design/Overview.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ OpenMP in LLVM --- Design Overview
22
==================================
33

44

5+
Resources
6+
---------
7+
8+
- OpenMP Booth @ SC19: "OpenMP clang and flang Development" https://youtu.be/6yOa-hRi63M
9+
510

611
.. toctree::
712
:glob:

openmp/docs/design/Runtimes.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ LLVM/OpenMP Target Host Runtime (``libomptarget``)
1919
LLVM/OpenMP Target Host Runtime Plugins (``libomptarget.rtl.XXXX``)
2020
-------------------------------------------------------------------
2121

22+
.. _device_runtime:
23+
2224
LLVM/OpenMP Target Device Runtime (``libomptarget-ARCH-SUBARCH.bc``)
2325
--------------------------------------------------------------------
2426

openmp/docs/index.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,16 @@ please refer to :doc:`remarks/OptimizationRemarks`.
7777
remarks/OptimizationRemarks
7878

7979

80-
Support & Frequently Asked Questions (FAQ)
81-
==========================================
80+
Support, Getting Involved, and Frequently Asked Questions (FAQ)
81+
===============================================================
8282

8383
Dealing with OpenMP can be complicated. For help with the setup of an OpenMP
8484
(offload) capable compiler toolchain, its usage, and common problems, consult
8585
the :doc:`Support and FAQ <SupportAndFAQ>` page.
8686

87+
We also encourage everyone interested in OpenMP in LLVM to :doc:`get involved
88+
<SupportAndFAQ>`.
89+
8790

8891
.. toctree::
8992
:hidden:

openmp/docs/optimizations/OpenMPOpt.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,11 @@ OpenMP-Aware Optimizations
33

44
OpenMPOpt
55
---------
6+
7+
8+
Resources
9+
---------
10+
11+
- 2020 LLVM Developers’ Meeting: "(OpenMP) Parallelism-Aware Optimizations" https://youtu.be/gtxWkeLCxmU
12+
- 2019 EuroLLVM Developers’ Meeting: "Compiler Optimizations for (OpenMP) Target Offloading to GPUs" https://youtu.be/3AbS82C3X30
13+
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,9 @@
11
OpenMP-Unaware Optimizations
22
============================
3+
4+
5+
Resources
6+
---------
7+
8+
- 2018 LLVM Developers’ Meeting: "Optimizing Indirections, using abstractions without remorse" https://youtu.be/zfiHaPaoQPc
9+
- 2019 LLVM Developers’ Meeting: "The Attributor: A Versatile Inter-procedural Fixpoint Iteration Framework" https://youtu.be/CzWkc_JcfS0

0 commit comments

Comments
 (0)