Am 2017-12-07 20:34, schrieb Jonas Hahnfeld via cfe-commits:
Hi Ahmed,
Am 2017-12-07 19:57, schrieb Ahmed Bougacha:
Hi Jonas,
On Tue, Oct 17, 2017 at 6:37 AM, Jonas Hahnfeld via cfe-commits
<cfe-commits@lists.llvm.org> wrote:
Author: hahnfeld
Date: Tue Oct 17 06:37:36 2017
New Revision: 315996
URL: http://llvm.org/viewvc/llvm-project?rev=315996&view=rev
Log:
[CMake][OpenMP] Customize default offloading arch
For the shuffle instructions in reductions we need at least sm_30
but the user may want to customize the default architecture.
Differential Revision: https://reviews.llvm.org/D38883
Modified:
cfe/trunk/CMakeLists.txt
cfe/trunk/include/clang/Config/config.h.cmake
cfe/trunk/lib/Driver/ToolChains/Cuda.cpp
cfe/trunk/lib/Driver/ToolChains/Cuda.h
Modified: cfe/trunk/CMakeLists.txt
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/CMakeLists.txt?rev=315996&r1=315995&r2=315996&view=diff
==============================================================================
--- cfe/trunk/CMakeLists.txt (original)
+++ cfe/trunk/CMakeLists.txt Tue Oct 17 06:37:36 2017
@@ -235,6 +235,17 @@ endif()
set(CLANG_DEFAULT_OPENMP_RUNTIME "libomp" CACHE STRING
"Default OpenMP runtime used by -fopenmp.")
+# OpenMP offloading requires at least sm_30 because we use shuffle
instructions
+# to generate efficient code for reductions.
+set(CLANG_OPENMP_NVPTX_DEFAULT_ARCH "sm_30" CACHE STRING
+ "Default architecture for OpenMP offloading to Nvidia GPUs.")
+string(REGEX MATCH "^sm_([0-9]+)$" MATCHED_ARCH
"${CLANG_OPENMP_NVPTX_DEFAULT_ARCH}")
+if (NOT DEFINED MATCHED_ARCH OR "${CMAKE_MATCH_1}" LESS 30)
+ message(WARNING "Resetting default architecture for OpenMP
offloading to Nvidia GPUs to sm_30")
This warning is pretty noisy and doesn't affect most people: I don't
know what it means but I get it in every cmake run.
Can we somehow restrict or disable it?
So the next line used to say
+ set(CLANG_OPENMP_NVPTX_DEFAULT_ARCH "sm_30" CACHE STRING
+ "Default architecture for OpenMP offloading to Nvidia GPUs."
FORCE)
which should make sure that the cache is updated to a "correct" value
and you only see the warning once. That said, we have raised the
default to "sm_35" today, maybe something has gone wrong here. Let me
check that and come back to you!
Works "correctly" (at least as intended) for me: I get a warning if the
cache has an incorrect value or the user specifies it on the command
line. Right then the cache is updated (FORCEd set) and the warning isn't
printed in future CMake invocations. I'm using CMake 3.5.2, maybe a
newer version behaves differently? In that case I agree that we should
fix this, the warning wasn't meant to annoy everyone on each
reconfiguration!
Jonas
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits