diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 53b29c43..484bdcd3 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -51,34 +51,33 @@ jobs: -DAMReX_MPI=OFF cmake --build build -j 2 -# TODO: target_compile_features no known features for CUDA compiler "" version . -# nvcc11: -# name: CUDA@11.2 GNU@9.3.0 -# runs-on: ubuntu-20.04 -# env: {CXXFLAGS: "-fno-operator-names"} -# steps: -# - uses: actions/checkout@v2 -# - name: Dependencies -# run: .github/workflows/dependencies/dependencies_nvcc11.sh -# - name: Build & Install -# run: | -# export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} -# export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64:${LD_LIBRARY_PATH} -# which nvcc || echo "nvcc not in PATH!" -# -# export CC=$(which gcc) -# export CXX=$(which g++) -# export CUDAHOSTCXX=$(which g++) -# -# cmake -S . -B build \ -# -DCMAKE_VERBOSE_MAKEFILE=ON \ -# -DAMReX_GPU_BACKEND=CUDA \ -# -DCMAKE_CUDA_STANDARD=17 \ -# -DCMAKE_CXX_STANDARD=17 \ -# -DAMReX_CUDA_ARCH=8.0 \ -# -DAMReX_CUDA_ERROR_CROSS_EXECUTION_SPACE_CALL=ON \ -# -DAMReX_CUDA_ERROR_CAPTURE_THIS=ON -# cmake --build build -j 2 + nvcc11: + name: CUDA@11.2 GNU@9.3.0 + runs-on: ubuntu-20.04 + env: {CXXFLAGS: "-fno-operator-names"} + steps: + - uses: actions/checkout@v2 + - name: Dependencies + run: .github/workflows/dependencies/dependencies_nvcc11.sh + - name: Build & Install + run: | + export PATH=/usr/local/nvidia/bin:/usr/local/cuda/bin:${PATH} + export LD_LIBRARY_PATH=/usr/local/nvidia/lib:/usr/local/nvidia/lib64:/usr/local/cuda/lib64:${LD_LIBRARY_PATH} + which nvcc || echo "nvcc not in PATH!" + + export CC=$(which gcc) + export CXX=$(which g++) + export CUDAHOSTCXX=$(which g++) + + cmake -S . -B build \ + -DCMAKE_VERBOSE_MAKEFILE=ON \ + -DAMReX_GPU_BACKEND=CUDA \ + -DCMAKE_CUDA_STANDARD=17 \ + -DCMAKE_CXX_STANDARD=17 \ + -DAMReX_CUDA_ARCH=8.0 \ + -DAMReX_CUDA_ERROR_CROSS_EXECUTION_SPACE_CALL=ON \ + -DAMReX_CUDA_ERROR_CAPTURE_THIS=ON + cmake --build build -j 2 # TODO: in pybind11 # multiple definition of `scalblnl`, `sinhl', `tanhl`, `tanl`, ... diff --git a/CMakeLists.txt b/CMakeLists.txt index 0212b2a3..66b2524e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,6 +21,11 @@ endif() if(POLICY CMP0104) cmake_policy(SET CMP0104 OLD) endif() +# device link step not yet fully implemented in AMReX logic +# https://cmake.org/cmake/help/latest/policy/CMP0105.html +if(POLICY CMP0105) + cmake_policy(SET CMP0105 OLD) +endif() # CCache Support ############################################################## diff --git a/cmake/dependencies/AMReX.cmake b/cmake/dependencies/AMReX.cmake index 96970a04..9a9e98f4 100644 --- a/cmake/dependencies/AMReX.cmake +++ b/cmake/dependencies/AMReX.cmake @@ -30,7 +30,7 @@ macro(find_amrex) if(pyAMReX_amrex_src) list(APPEND CMAKE_MODULE_PATH "${pyAMReX_amrex_src}/Tools/CMake") - if(pyAMReX_COMPUTE STREQUAL CUDA) + if(AMReX_GPU_BACKEND STREQUAL CUDA) enable_language(CUDA) include(AMReX_SetupCUDA) endif() @@ -46,7 +46,7 @@ macro(find_amrex) if(NOT fetchedamrex_POPULATED) FetchContent_Populate(fetchedamrex) list(APPEND CMAKE_MODULE_PATH "${fetchedamrex_SOURCE_DIR}/Tools/CMake") - if(pyAMReX_COMPUTE STREQUAL CUDA) + if(AMReX_GPU_BACKEND STREQUAL CUDA) enable_language(CUDA) include(AMReX_SetupCUDA) endif() diff --git a/cmake/pyAMReXFunctions.cmake b/cmake/pyAMReXFunctions.cmake index 7cad0fb2..950f726f 100644 --- a/cmake/pyAMReXFunctions.cmake +++ b/cmake/pyAMReXFunctions.cmake @@ -4,7 +4,7 @@ macro(set_ccache) find_program(CCACHE_PROGRAM ccache) if(CCACHE_PROGRAM) set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") - if(pyAMReX_COMPUTE STREQUAL CUDA) + if(AMReX_GPU_BACKEND STREQUAL CUDA) set(CMAKE_CUDA_COMPILER_LAUNCHER "${CCACHE_PROGRAM}") endif() endif()