Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: espressomd/espresso
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 64e9a4c5b981242b73a30c2b0afb5716a62d343a
Choose a base ref
..
head repository: espressomd/espresso
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2c93112976b6ca140a442231f86fc8cfa5b6bb6b
Choose a head ref
Showing with 13 additions and 11 deletions.
  1. +8 −6 CMakeLists.txt
  2. +2 −2 cmake/FindCUDACompilerClang.cmake
  3. +1 −1 cmake/FindCUDACompilerHIP.cmake
  4. +2 −2 cmake/FindCUDACompilerNVCC.cmake
14 changes: 8 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -19,8 +19,8 @@
#

cmake_minimum_required(VERSION 3.10)
message(STATUS "The CMake identification is ${CMAKE_VERSION}")
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.13)
message(STATUS "CMake version: ${CMAKE_VERSION}")
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.13)
cmake_policy(SET CMP0076 NEW)
endif()
include(FeatureSummary)
@@ -287,20 +287,22 @@ set(CMAKE_CXX_EXTENSIONS OFF)

# CUDA compiler
if(WITH_CUDA)
set(CMAKE_CUDA_STANDARD 9.0)
set(CMAKE_CUDA_STANDARD ${CMAKE_CXX_STANDARD})
set(MINIMAL_CUDA_VERSION 9.0)
set(WITH_CUDA_COMPILER "nvcc" CACHE STRING "Select the CUDA compiler, can be 'nvcc' (default), 'hip', or 'clang'")
if (WITH_CUDA_COMPILER STREQUAL "nvcc")
find_package(CUDA ${CMAKE_CUDA_STANDARD} REQUIRED)
find_package(CUDACompilerNVCC ${CMAKE_CUDA_STANDARD} REQUIRED)
find_package(CUDA ${MINIMAL_CUDA_VERSION} REQUIRED)
find_package(CUDACompilerNVCC ${MINIMAL_CUDA_VERSION} REQUIRED)
elseif (WITH_CUDA_COMPILER STREQUAL "hip")
set(ROCM_HOME "/opt/rocm" CACHE FILEPATH "Path to AMD ROCm")
list(APPEND CMAKE_MODULE_PATH "${ROCM_HOME}/hip/cmake")
find_package(HIP 1.5.18494 MODULE REQUIRED)
# patch HCC_PATH environment variable and reload HIP (for ROCm 3.0/3.1)
set(HCC_PATH "${HIP_ROOT_DIR}")
find_package(HIP 1.5.18494 MODULE REQUIRED)
find_package(CUDACompilerHIP 6.0 REQUIRED)
elseif (WITH_CUDA_COMPILER STREQUAL "clang")
set(CMAKE_CUDA_STANDARD 8.0)
set(MINIMAL_CUDA_VERSION 8.0)
find_package(CUDACompilerClang 6.0 REQUIRED)
else()
message(FATAL_ERROR "Cannot process option -DWITH_CUDA_COMPILER='${WITH_CUDA_COMPILER}'")
4 changes: 2 additions & 2 deletions cmake/FindCUDACompilerClang.cmake
Original file line number Diff line number Diff line change
@@ -28,8 +28,8 @@ message(STATUS "Found CUDA-capable host compiler: ${CMAKE_CUDA_COMPILER}")
message(STATUS "Found CUDA version: ${CUDA_VERSION}")
message(STATUS "Found CUDA installation: ${CUDA_DIR}")

if(CUDA_VERSION VERSION_LESS ${CMAKE_CUDA_STANDARD})
message(FATAL_ERROR "${CMAKE_CUDA_COMPILER} was built for CUDA ${CUDA_VERSION}: version does not match requirements (CUDA ${CMAKE_CUDA_STANDARD}).")
if(CUDA_VERSION VERSION_LESS ${MINIMAL_CUDA_VERSION})
message(FATAL_ERROR "${CMAKE_CUDA_COMPILER} was built for CUDA ${CUDA_VERSION}: version does not match requirements (CUDA ${MINIMAL_CUDA_VERSION}).")
endif()

find_library(CUDART_LIBRARY NAMES cudart PATHS ${CUDA_DIR}/lib64 ${CUDA_DIR}/lib /usr/local/nvidia/lib NO_DEFAULT_PATH)
2 changes: 1 addition & 1 deletion cmake/FindCUDACompilerHIP.cmake
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@ string(REGEX
CMAKE_CUDA_COMPILER_VERSION
"${HIPCC_VERSION_STRING}")

list(APPEND HIP_HCC_FLAGS "-I${HIP_ROOT_DIR}/include -I${ROCM_HOME}/include -Wno-c99-designator -Wno-macro-redefined -Wno-duplicate-decl-specifier -std=c++${CMAKE_CXX_STANDARD}")
list(APPEND HIP_HCC_FLAGS "-I${HIP_ROOT_DIR}/include -I${ROCM_HOME}/include -Wno-c99-designator -Wno-macro-redefined -Wno-duplicate-decl-specifier -std=c++${CMAKE_CUDA_STANDARD}")
list(APPEND HIP_HCC_FLAGS "-pedantic -Wall -Wextra -Wno-sign-compare -Wno-unused-function -Wno-unused-variable -Wno-unused-parameter -Wno-missing-braces -Wno-gnu-anonymous-struct -Wno-nested-anon-types -Wno-gnu-zero-variadic-macro-arguments")
if(WARNINGS_ARE_ERRORS)
list(APPEND HIP_HCC_FLAGS "-Werror")
4 changes: 2 additions & 2 deletions cmake/FindCUDACompilerNVCC.cmake
Original file line number Diff line number Diff line change
@@ -25,10 +25,10 @@ SET(CUDA_PROPAGATE_HOST_FLAGS OFF)

set(CUDA_NVCC_FLAGS_DEBUG "${CUDA_NVCC_FLAGS_DEBUG} -g")
set(CUDA_NVCC_FLAGS_RELEASE "${CUDA_NVCC_FLAGS_RELEASE} -O3 -DNDEBUG")
set(CUDA_NVCC_FLAGS_MINSIZEREL "${CUDA_NVCC_FLAGS_MINSIZEREL} -Os -DNDEBUG")
set(CUDA_NVCC_FLAGS_MINSIZEREL "${CUDA_NVCC_FLAGS_MINSIZEREL} -O2 -DNDEBUG")
set(CUDA_NVCC_FLAGS_RELWITHDEBINFO "${CUDA_NVCC_FLAGS_RELWITHDEBINFO} -g -O2")

set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -gencode=arch=compute_30,code=sm_30 -gencode=arch=compute_52,code=sm_52 -gencode=arch=compute_52,code=compute_52 -std=c++${CMAKE_CXX_STANDARD}")
set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -gencode=arch=compute_30,code=sm_30 -gencode=arch=compute_52,code=sm_52 -gencode=arch=compute_52,code=compute_52 -std=c++${CMAKE_CUDA_STANDARD}")
if(WARNINGS_ARE_ERRORS)
set(CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -Xcompiler -Werror")
endif()