[llvm] [Offload] Expand documentation with & build guide (PR #149792)

via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 21 03:46:57 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-offload

Author: Kenneth Benzie (Benie) (kbenzie)

<details>
<summary>Changes</summary>

This patch introduces essential information to the landing page of the Sphinx documentation:

* Copy and translate the contents of `offload/README.md` as the project summary section
* Document how to configure CMake and build the project
* Document running tests
* Document building the Sphinx documentation


---
Full diff: https://github.com/llvm/llvm-project/pull/149792.diff


1 Files Affected:

- (modified) offload/docs/index.rst (+97) 


``````````diff
diff --git a/offload/docs/index.rst b/offload/docs/index.rst
index 481d1f7ddd8b8..3de16776f0903 100644
--- a/offload/docs/index.rst
+++ b/offload/docs/index.rst
@@ -6,12 +6,109 @@
 Welcome to Offload's documentation!
 ===================================
 
+Summary
+-------
+
+The Offload subproject aims at providing tooling, runtimes, and APIs that allow
+users to execute code on accelerators or other "co-processors" that may or may
+not match the architecture of their "host". In the long run, all kinds of
+targets are in scope of this effort, including but not limited to: CPUs, GPUs,
+FPGAs, AI/ML accelerators, distributed resources, etc.
+
+For OpenMP offload users, the project is ready and fully usable. The final API
+design is still under development. More content will show up here and on our
+webpage soon. In the meantime, people are encouraged to participate in our
+meetings (see below) and check our `development board
+<https://github.com/orgs/llvm/projects/24/>`_ as well as the discussions on
+`Discourse <https://discourse.llvm.org/tag/offload>`_.
+
 .. toctree::
    :maxdepth: 2
    :caption: Contents:
 
    offload-api
 
+Meetings
+--------
+
+Every second Wednesday, 7:00 - 8:00am PT, starting Jan 24, 2024. Alternates
+with the OpenMP in LLVM meeting. `invite.ics
+<https://drive.google.com/file/d/1AYwKdnM01aV9Gv9k435ArEAhn7PAer7z/view?usp=sharing>`_
+`Meeting Minutes and Agenda
+<https://docs.google.com/document/d/1PAeEshxHCv22JDBCPA9GXGggLp0t7rsnD_jL04MBbzw/edit?usp=sharing>`_.
+
+
+Building
+--------
+
+A minimal Linux build CMake configuration:
+
+.. code-block:: console
+
+  $ cmake llvm -Bbuild \
+      -DCMAKE_BUILD_TYPE=Release \
+      -DLLVM_ENABLE_PROJECTS='clang;clang-tools-extra;lldb;lld' \
+      -DLLVM_ENABLE_RUNTIMES='offload;openmp' \
+      -DLLVM_BINUTILS_INCDIR=/usr/include \
+      -DLLVM_INSTALL_GTEST=ON
+  $ cmake --build build
+
+* ``LLVM_ENABLE_RUNTIMES`` must include ``openmp`` as it is currently a
+  dependency of ``offload`` during the initial transitional phase of the
+  project.
+* ``LLVM_BINUTILS_INCDIR`` ensures that ``LLVMgold.so`` build is enabled which
+  is necessary for ``check-offload`` testing.
+* ``LLVM_INSTALL_GTEST`` ensures that the unit tests can be built which is
+  necessary for ``check-offload-unit`` testing.
+
+.. hint::
+
+  As part of the main build an `ExternalProject
+  <https://cmake.org/cmake/help/latest/module/ExternalProject.html>`_ will be
+  created at ``build/runtimes/runtimes-bins`` which contains the Offload
+  sub-build. Additional build targets are present in the sub-build which are
+  not accessible in the LLVM build.
+
+Running Tests
+^^^^^^^^^^^^^
+
+There are two main check targets:
+
+* ``check-offload`` runs the OpenMP tests, this is available in both the LLVM
+  build as well as the sub-build.
+* ``check-offload-unit`` runs the Offload API unit test, this is only available
+  in the sub-building.
+
+Building Documentation
+^^^^^^^^^^^^^^^^^^^^^^
+
+Additional CMake options are necessary to build the Sphinx documentation.
+Firstly, we need to ensure the Python dependencies are available, ideally using
+a virtual environment:
+
+.. code-block:: console
+
+  $ python -m venv env
+  $ source env/bin/activate
+  $ pip install -r requirements.txt
+
+Assuming we already have an existing build described above, we need to
+reconfigure the Offload sub-build, this will enable the ``doc-offload-html``
+target.
+
+.. code-block:: console
+
+  $ cmake runtimes -Bbuild/runtimes/runtimes-bins \
+      -DLLVM_ENABLE_SPHINX:BOOL=ON
+  $ cmake --build build
+
+Once the documentation is built it can be viewed on `localhost:8000
+<http://localhost:8000>`_ as follows:
+
+.. code-block:: console
+
+  $ cd build/runtimes/runtimes-bins/offload/docs/html
+  $ python -m http.server
 
 Indices and tables
 ==================

``````````

</details>


https://github.com/llvm/llvm-project/pull/149792


More information about the llvm-commits mailing list