|
1 | | -Support And FAQ |
2 | | -=============== |
| 1 | +Support, Getting Involved, and FAQ |
| 2 | +================================== |
3 | 3 |
|
| 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`. |
4 | 7 |
|
| 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`. |
0 commit comments