[PATCH] D88929: [OpenMP] Change CMake Configuration to Build for Highest CUDA Architecture by Default

Joseph Huber via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 6 20:13:00 PDT 2020


jhuber6 added inline comments.


================
Comment at: openmp/libomptarget/deviceRTLs/nvptx/CMakeLists.txt:80
+      else()
+        list(APPEND compute_capabilities ${CMAKE_MATCH_1})
+      endif()
----------------
ye-luo wrote:
> 1. Doesn't work right now. Missing comma ",${CMAKE_MATCH_1}"
> 2. using CUDA_ARCH as "string(REGEX MATCH" output causes problems.
> 3. "append" needs to protect redundant 35.
> 4. I think it is better to move this part of logic to `openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake`
> after `find_package(CUDA QUIET)`.
1. I noticed the comma problem, it's because the compute capabilities uses commas instead of semicolons like the rest of CMake to delimit the values. There's another weird error I'm getting while trying to build with this where it will add `sm_70` as an argument causing an nvcc error. like in `nvcc -o out file.cpp sm_70`.
2. What's the problem here? Pretty much the output gives some string that you would pass to nvcc like `--arch=sm_70` and I'm regexing out the `sm_70` if there was no match or the architecture is too small it doesn't add anything.
3. I'm thinking it would just be easiest to change it do something like `set(default_capabilities "35,${CMAKE_MATCH_1}")`
4. My feeling is that there's not enough complexity here to justify moving it since I'd need to add just as much code to generate the output and then even more to use it here. Since the LibomptargetGetDependencies.cmake doesn't bother checking whether or not the `find_package(CUDA)` was successful I feel like there's no need to add logic that requires checking if it was there when we already have it here.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D88929/new/

https://reviews.llvm.org/D88929



More information about the cfe-commits mailing list