diff options
author | Sebastián Barschkis <sebbas@sebbas.org> | 2021-09-13 16:03:52 +0300 |
---|---|---|
committer | Sebastián Barschkis <sebbas@sebbas.org> | 2021-09-13 16:03:52 +0300 |
commit | 063ce7f550f1612ab0e34c4ecb4b57f8401b84b4 (patch) | |
tree | 53584b6c514510b0bab33a480b3ec85274b48a6b /build_files/build_environment/cmake/llvm.cmake | |
parent | 4b06420e65040c642d2b0a7a1c9bf7515d3cec0c (diff) |
Fluid: Initial changes for OpenMP GPU supportfluid-mantaflow-gpu
Contains basic support for OpenMP GPU offloading.
That is, offloading of fluid KERNEL loops to the GPU.
This branch offloads pressure and advection calls only - the 2 most
expensive operation per step. In theory though, any function can be
offloaded.
For now, this branch needs to be build with a compiler that supports
Nvidia GPU offloading. Exact GPU models need to be specified via CMake.
Diffstat (limited to 'build_files/build_environment/cmake/llvm.cmake')
-rw-r--r-- | build_files/build_environment/cmake/llvm.cmake | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/build_files/build_environment/cmake/llvm.cmake b/build_files/build_environment/cmake/llvm.cmake index 7a8ce2ddfec..7f54e83c92e 100644 --- a/build_files/build_environment/cmake/llvm.cmake +++ b/build_files/build_environment/cmake/llvm.cmake @@ -30,6 +30,10 @@ if(APPLE) set(BUILD_CLANG_TOOLS ON) endif() +if(UNIX AND NOT APPLE) + set(LLVM_BUILD_OPENMP ^^openmp) + set(LLVM_TARGETS ${LLVM_TARGETS} ^^NVPTX) +endif() set(LLVM_EXTRA_ARGS -DLLVM_USE_CRT_RELEASE=MD @@ -40,10 +44,18 @@ set(LLVM_EXTRA_ARGS -DLLVM_ENABLE_TERMINFO=OFF -DLLVM_BUILD_LLVM_C_DYLIB=OFF -DLLVM_ENABLE_UNWIND_TABLES=OFF - -DLLVM_ENABLE_PROJECTS=clang${LLVM_BUILD_CLANG_TOOLS_EXTRA} + -DLLVM_ENABLE_PROJECTS=clang${LLVM_BUILD_CLANG_TOOLS_EXTRA}${LLVM_BUILD_OPENMP} ${LLVM_XML2_ARGS} ) +if(UNIX AND NOT APPLE) + list(APPEND LLVM_EXTRA_ARGS + -DCLANG_OPENMP_NVPTX_DEFAULT_ARCH=sm_61 + -DLIBOMPTARGET_NVPTX_COMPUTE_CAPABILITIES=61 + ) +endif() + + if(WIN32) set(LLVM_GENERATOR "Ninja") else() |