mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-15 22:06:32 +00:00
[Offload] Provide a CMake cache file to easily build offloading (#115074)
Summary: This patch adds a cache file that will automatically enable openpm, offload, and all the fancy GPU libraries.
This commit is contained in:
parent
87feafc391
commit
de41b137dd
12
offload/cmake/caches/Offload.cmake
Normal file
12
offload/cmake/caches/Offload.cmake
Normal file
@ -0,0 +1,12 @@
|
||||
set(LLVM_ENABLE_PROJECTS "clang;clang-tools-extra;compiler-rt;lld" CACHE STRING "")
|
||||
set(LLVM_ENABLE_RUNTIMES "libunwind;libcxx;libcxxabi;openmp;offload" CACHE STRING "")
|
||||
set(LLVM_ENABLE_PER_TARGET_RUNTIME_DIR ON CACHE BOOL "")
|
||||
|
||||
set(CLANG_DEFAULT_CXX_STDLIB "libc++" CACHE STRING "")
|
||||
set(CLANG_DEFAULT_LINKER "lld" CACHE STRING "")
|
||||
|
||||
set(LLVM_RUNTIME_TARGETS default;amdgcn-amd-amdhsa;nvptx64-nvidia-cuda CACHE STRING "")
|
||||
set(RUNTIMES_nvptx64-nvidia-cuda_CACHE_FILES "${CMAKE_SOURCE_DIR}/../libcxx/cmake/caches/NVPTX.cmake" CACHE STRING "")
|
||||
set(RUNTIMES_amdgcn-amd-amdhsa_CACHE_FILES "${CMAKE_SOURCE_DIR}/../libcxx/cmake/caches/AMDGPU.cmake" CACHE STRING "")
|
||||
set(RUNTIMES_nvptx64-nvidia-cuda_LLVM_ENABLE_RUNTIMES "compiler-rt;libc;libcxx;libcxxabi" CACHE STRING "")
|
||||
set(RUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES "compiler-rt;libc;libcxx;libcxxabi" CACHE STRING "")
|
@ -51,7 +51,23 @@ All patches go through the regular `LLVM review process
|
||||
|
||||
Q: How to build an OpenMP GPU offload capable compiler?
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
To build an *effective* OpenMP offload capable compiler, only one extra CMake
|
||||
|
||||
The easiest way to create an offload capable compiler is to use the provided
|
||||
CMake cache file. This will enable the projects and runtimes necessary for
|
||||
offloading as well as some extra options.
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
$> cd llvm-project # The llvm-project checkout
|
||||
$> mkdir build
|
||||
$> cd build
|
||||
$> cmake ../llvm -G Ninja \
|
||||
-C ../offload/cmake/caches/Offload.cmake \ # The preset cache file
|
||||
-DCMAKE_BUILD_TYPE=<Debug|Release> \ # Select build type
|
||||
-DCMAKE_INSTALL_PREFIX=<PATH> \ # Where the libraries will live
|
||||
$> ninja install
|
||||
|
||||
To manually build an *effective* OpenMP offload capable compiler, only one extra CMake
|
||||
option, ``LLVM_ENABLE_RUNTIMES="openmp;offload"``, is needed when building LLVM (Generic
|
||||
information about building LLVM is available `here
|
||||
<https://llvm.org/docs/GettingStarted.html>`__.). Make sure all backends that
|
||||
|
Loading…
x
Reference in New Issue
Block a user