Loading openmp/docs/SupportAndFAQ.rst +91 −2 Original line number Diff line number Diff line 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`. openmp/docs/design/Overview.rst +5 −0 Original line number Diff line number Diff line Loading @@ -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: Loading openmp/docs/design/Runtimes.rst +2 −0 Original line number Diff line number Diff line Loading @@ -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``) -------------------------------------------------------------------- openmp/docs/index.rst +5 −2 Original line number Diff line number Diff line Loading @@ -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: Loading openmp/docs/optimizations/OpenMPOpt.rst +8 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
openmp/docs/SupportAndFAQ.rst +91 −2 Original line number Diff line number Diff line 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`.
openmp/docs/design/Overview.rst +5 −0 Original line number Diff line number Diff line Loading @@ -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: Loading
openmp/docs/design/Runtimes.rst +2 −0 Original line number Diff line number Diff line Loading @@ -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``) --------------------------------------------------------------------
openmp/docs/index.rst +5 −2 Original line number Diff line number Diff line Loading @@ -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: Loading
openmp/docs/optimizations/OpenMPOpt.rst +8 −0 Original line number Diff line number Diff line Loading @@ -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