r315996 - [CMake][OpenMP] Customize default offloading arch

Jonas Hahnfeld via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 7 17:34:58 PST 2017


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 at 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!

Cheers,
Jonas


More information about the cfe-commits mailing list