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 `. 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 `__. - Time: Weekly call on every Wednesday 7:00 AM Pacific time. - Meeting minutes are `here `__. - Status tracking `page `__. OpenMP in Flang Technical Call ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Development updates on OpenMP and OpenACC in the Flang Project. - Join `OpenMP in Flang Technical Call `_ - Time: Weekly call on every Thursdays 8:00 AM Pacific time. - Meeting minutes are `here `__. - Status tracking `page `__. .. _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 `_. .. _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 ` that will be linked into the offloaded code to provide OpenMP runtime support on the device. Generic information about building LLVM is available `here `__. 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`.