Skip to content

Commit 910f7a4

Browse files
committed
Merge remote-tracking branch 'origin/main' into izumi_update0525
2 parents 8c98faa + 3886cfe commit 910f7a4

File tree

8 files changed

+93
-116
lines changed

8 files changed

+93
-116
lines changed

machines/casper/gnu_casper.cmake

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,35 +11,35 @@ set(SCXX "g++")
1111
set(SFC "gfortran")
1212

1313
if (USE_KOKKOS)
14-
string(APPEND CPPDEFS " -DUSE_KOKKOS")
1514
# Generic setting that are used regardless of Architecture or Kokkos backend
16-
set(Kokkos_ENABLE_DEPRECATED_CODE FALSE CACHE BOOL "")
17-
set(Kokkos_ENABLE_EXPLICIT_INSTANTIATION FALSE CACHE BOOL "")
15+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_DEPRECATED_CODE=OFF -DKokkos_ENABLE_EXPLICIT_INSTANTIATION=OFF")
1816
if (KOKKOS_GPU_OFFLOAD)
19-
set(USE_CUDA "TRUE")
20-
string(APPEND CPPDEFS " -DGPU")
21-
string(APPEND CPPDEFS " -DTHRUST_IGNORE_CUB_VERSION_CHECK")
22-
string(APPEND CMAKE_CUDA_FLAGS " -ccbin CC -O2 -arch=sm_80 --use_fast_math")
23-
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_AMPERE80=On -DKokkos_ENABLE_CUDA=On -DKokkos_ENABLE_CUDA_LAMBDA=On -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=Off -DKokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC=Off")
24-
# Enable A100 arch in kokkos
25-
option(Kokkos_ARCH_AMPERE80 "" ON)
26-
# This var is needed by relatively recent CMake when CUDA language is enabled
27-
# If not defined, CMake issues a warning
28-
set(CMAKE_CUDA_ARCHITECTURES 80 CACHE STRING "")
29-
# Settings used when Cuda is the Kokkos backend
30-
set(Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION FALSE CACHE BOOL "")
31-
set(Kokkos_ENABLE_CUDA TRUE CACHE BOOL "")
32-
set(Kokkos_ENABLE_CUDA_LAMBDA TRUE CACHE BOOL "")
33-
set(CMAKE_CXX_FLAGS "-DTHRUST_IGNORE_CUB_VERSION_CHECK" CACHE STRING "" FORCE)
17+
string(APPEND CPPDEFS " -DGPU -DTHRUST_IGNORE_CUB_VERSION_CHECK -DHOMMEXX_ENABLE_GPU")
18+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=OFF -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=OFF")
19+
if (GPU_TYPE STREQUAL v100)
20+
string(APPEND KOKKOS_OPTIONS " -DKOKKOS_ARCH_VOLTA70=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ENABLE_CUDA_LAMBDA=ON -DKokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC=OFF")
21+
string(APPEND CXXFLAGS " -extended-lambda -Wext-lambda-captures-this -std=c++17 -arch=sm_70")
22+
elseif(GPU_TYPE STREQUAL a100)
23+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_AMPERE80=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ENABLE_CUDA_LAMBDA=ON -DKokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC=OFF")
24+
string(APPEND CXXFLAGS " -extended-lambda -Wext-lambda-captures-this -std=c++17 -arch=sm_80")
25+
elseif(GPU_TYPE STREQUAL h100)
26+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_HOPPER90=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ENABLE_CUDA_LAMBDA=ON -DKokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC=OFF")
27+
string(APPEND CXXFLAGS " -extended-lambda -Wext-lambda-captures-this -std=c++17 -arch=sm_90")
28+
else()
29+
message(FATAL_ERROR "GPU_TYPE ${GPU_TYPE} not supported")
30+
endif()
3431
else()
3532
# Enable EPYC arch in kokkos
36-
option(Kokkos_ARCH_ZEN4 "" ON)
37-
# Settings used when OpenMP is the Kokkos backend
38-
set(Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION TRUE CACHE BOOL "")
39-
set(Kokkos_ENABLE_OPENMP TRUE CACHE BOOL "")
33+
if (compile_threaded)
34+
# Settings used when OpenMP is the Kokkos backend
35+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_ZEN4=ON -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=ON -DKokkos_ENABLE_SERIAL=OFF -DKokkos_ENABLE_OPENMP=ON")
36+
else()
37+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_ZEN4=ON -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=OFF")
38+
endif()
39+
string(APPEND CXXFLAGS " -march=znver4 -mtune=znver4")
4040
endif()
4141
if (CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
4242
set(CMAKE_Fortran_FLAGS "-fallow-argument-mismatch" CACHE STRING "" FORCE) # only works with gnu v10 and above
4343
endif()
44-
string(APPEND LDFLAGS " -lstdc++ ")
44+
string(APPEND LDFLAGS " -lstdc++ -lkokkoscontainers -lkokkoscore -lkokkossimd ")
4545
endif()

machines/casper/intel_casper.cmake

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
string(APPEND CFLAGS " -qopt-report -march=core-avx2")
2+
string(APPEND CXXFLAGS " -qopt-report -march=core-avx2")
23
string(APPEND FFLAGS " -qopt-report -march=core-avx2")
34
if (COMP_NAME STREQUAL gptl)
45
string(APPEND CPPDEFS " -DHAVE_SLASHPROC")
@@ -14,14 +15,15 @@ set(SCXX icpx)
1415
set(SFC ifort)
1516

1617
if (USE_KOKKOS)
17-
string(APPEND CPPDEFS " -DUSE_KOKKOS")
1818
# Generic setting that are used regardless of Architecture or Kokkos backend
19-
set(Kokkos_ENABLE_DEPRECATED_CODE FALSE CACHE BOOL "")
20-
set(Kokkos_ENABLE_EXPLICIT_INSTANTIATION FALSE CACHE BOOL "")
21-
include (${EKAT_MACH_FILES_PATH}/kokkos/generic.cmake)
19+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_DEPRECATED_CODE=OFF -DKokkos_ENABLE_EXPLICIT_INSTANTIATION=OFF")
2220
option(Kokkos_ARCH_ZEN4 "" ON)
23-
# Settings used when OpenMP is the Kokkos backend
24-
set(Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION TRUE CACHE BOOL "")
25-
set(Kokkos_ENABLE_OPENMP TRUE CACHE BOOL "")
21+
if (compile_threaded)
22+
# Settings used when OpenMP is the Kokkos backend
23+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_ZEN4=ON -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=ON -DKokkos_ENABLE_SERIAL=OFF -DKokkos_ENABLE_OPENMP=ON")
24+
else()
25+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_ZEN4=ON -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=OFF")
26+
endif()
2627
set(CMAKE_CXX_FLAGS "-DTHRUST_IGNORE_CUB_VERSION_CHECK" CACHE STRING "" FORCE)
28+
string(APPEND LDFLAGS " -lstdc++ -lkokkoscontainers -lkokkoscore -lkokkossimd ")
2729
endif()

machines/casper/nvhpc_casper.cmake

Lines changed: 20 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@ if (NOT DEBUG)
33
if (GPU_TYPE STREQUAL none) # AMD EPYC 9554P CPU
44
string(APPEND CFLAGS " -tp=zen4")
55
string(APPEND CXXFLAGS " -tp=zen4")
6-
string(APPEND FFLAGS " -tp=zen4")
6+
string(APPEND FFLAGS " -tp=zen4 -Mstack_arrays -Mallocatable=03")
77
string(APPEND LDFLAGS " -tp=zen4 -Mnofma")
88
elseif(GPU_TYPE STREQUAL a100) # AMD EPYC Milan 7763 CPU
99
string(APPEND CFLAGS " -tp=zen3")
1010
string(APPEND CXXFLAGS " -tp=zen3")
11-
string(APPEND FFLAGS " -tp=zen3")
11+
string(APPEND FFLAGS " -tp=zen3 -Mstack_arrays -Mallocatable=03")
1212
string(APPEND LDFLAGS " -tp=zen3 -Mnofma")
1313
else()
1414
string(APPEND CFLAGS " -tp=cascadelake")
1515
string(APPEND CXXFLAGS " -tp=cascadelake")
16-
string(APPEND FFLAGS " -tp=cascadelake")
16+
string(APPEND FFLAGS " -tp=cascadelake -Mstack_arrays -Mallocatable=03")
1717
string(APPEND LDFLAGS " -tp=cascadelake -Mnofma")
1818
endif()
1919
endif()
@@ -27,32 +27,25 @@ message("OPENACC_GPU_OFFLOAD is ${OPENACC_GPU_OFFLOAD}")
2727
message("OPENMP_GPU_OFFLOAD is ${OPENMP_GPU_OFFLOAD}")
2828

2929
if (USE_KOKKOS)
30-
string(APPEND CPPDEFS " -DUSE_KOKKOS")
3130
# Generic setting that are used regardless of Architecture or Kokkos backend
32-
set(Kokkos_ENABLE_DEPRECATED_CODE FALSE CACHE BOOL "")
33-
set(Kokkos_ENABLE_EXPLICIT_INSTANTIATION FALSE CACHE BOOL "")
31+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_DEPRECATED_CODE=OFF -DKokkos_ENABLE_EXPLICIT_INSTANTIATION=OFF")
3432
if (KOKKOS_GPU_OFFLOAD)
35-
set(USE_CUDA "TRUE")
36-
string(APPEND CPPDEFS " -DGPU")
37-
string(APPEND CPPDEFS " -DTHRUST_IGNORE_CUB_VERSION_CHECK")
38-
string(APPEND CMAKE_CUDA_FLAGS " -ccbin CC -O2 -arch=sm_80 --use_fast_math")
39-
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_AMPERE80=On -DKokkos_ENABLE_CUDA=On -DKokkos_ENABLE_CUDA_LAMBDA=On -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=Off -DKokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC=Off")
40-
# Enable A100 arch in kokkos
41-
option(Kokkos_ARCH_AMPERE80 "" ON)
42-
# This var is needed by relatively recent CMake when CUDA language is enabled
43-
# If not defined, CMake issues a warning
44-
set(CMAKE_CUDA_ARCHITECTURES 80 CACHE STRING "")
45-
# Settings used when Cuda is the Kokkos backend
46-
set(Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION FALSE CACHE BOOL "")
47-
set(Kokkos_ENABLE_CUDA TRUE CACHE BOOL "")
48-
set(Kokkos_ENABLE_CUDA_LAMBDA TRUE CACHE BOOL "")
49-
set(CMAKE_CXX_FLAGS "-DTHRUST_IGNORE_CUB_VERSION_CHECK" CACHE STRING "" FORCE)
33+
string(APPEND CPPDEFS " -DGPU -DTHRUST_IGNORE_CUB_VERSION_CHECK -DHOMMEXX_ENABLE_GPU")
34+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=OFF -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=OFF")
35+
if (GPU_TYPE STREQUAL v100)
36+
string(APPEND KOKKOS_OPTIONS " -DKOKKOS_ARCH_VOLTA70=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ENABLE_CUDA_LAMBDA=ON -DKokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC=OFF")
37+
string(APPEND CXXFLAGS " -extended-lambda -Wext-lambda-captures-this -std=c++17 -arch=sm_70")
38+
elseif(GPU_TYPE STREQUAL a100)
39+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_AMPERE80=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ENABLE_CUDA_LAMBDA=ON -DKokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC=OFF")
40+
string(APPEND CXXFLAGS " -extended-lambda -Wext-lambda-captures-this -std=c++17 -arch=sm_80")
41+
elseif(GPU_TYPE STREQUAL h100)
42+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_HOPPER90=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ENABLE_CUDA_LAMBDA=ON -DKokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC=OFF")
43+
string(APPEND CXXFLAGS " -extended-lambda -Wext-lambda-captures-this -std=c++17 -arch=sm_90")
44+
else()
45+
message(FATAL_ERROR "GPU_TYPE ${GPU_TYPE} not supported")
46+
endif()
5047
else()
51-
option(Kokkos_ARCH_ZEN4 "" ON)
52-
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_OPENMP=Off") # work-around for nvidia as kokkos is not passing "-mp" for threaded build
48+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_ZEN4=ON -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=OFF") # work-around for nvidia as kokkos is not passing "-mp" for threaded build
5349
endif()
54-
if (CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
55-
set(CMAKE_Fortran_FLAGS "-fallow-argument-mismatch" CACHE STRING "" FORCE) # only works with gnu v10 and above
56-
endif()
57-
string(APPEND LDFLAGS " -lstdc++ ")
50+
string(APPEND LDFLAGS " -lstdc++ -lkokkoscontainers -lkokkoscore -lkokkossimd ")
5851
endif()

machines/cmake_macros/intel.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
string(APPEND CFLAGS " -qno-opt-dynamic-align -fp-model precise -std=gnu99")
22
string(APPEND CXXFLAGS " -qno-opt-dynamic-align -fp-model precise -std=c++17")
33
if (NOT DEBUG)
4-
string(APPEND CFLAGS " -O2 -debug minimal -no-fma")
5-
string(APPEND CXXFLAGS " -O2 -debug minimal -no-fma")
4+
string(APPEND CFLAGS " -O2 -debug minimal -no-fma -restrict")
5+
string(APPEND CXXFLAGS " -O2 -debug minimal -no-fma -restrict")
66
string(APPEND FFLAGS " -O2 -debug minimal -no-fma")
77
else()
88
string(APPEND CFLAGS " -O0 -no-fma -g")

machines/derecho/gnu_derecho.cmake

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,36 +12,26 @@ set(SCXX "g++")
1212
set(SFC "gfortran")
1313

1414
if (USE_KOKKOS)
15-
string(APPEND CPPDEFS " -DUSE_KOKKOS")
1615
# Generic setting that are used regardless of Architecture or Kokkos backend
17-
set(Kokkos_ENABLE_DEPRECATED_CODE FALSE CACHE BOOL "")
18-
set(Kokkos_ENABLE_EXPLICIT_INSTANTIATION FALSE CACHE BOOL "")
16+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_DEPRECATED_CODE=OFF -DKokkos_ENABLE_EXPLICIT_INSTANTIATION=OFF")
1917
if (KOKKOS_GPU_OFFLOAD)
20-
set(USE_CUDA "TRUE")
21-
string(APPEND CPPDEFS " -DGPU")
22-
string(APPEND CPPDEFS " -DTHRUST_IGNORE_CUB_VERSION_CHECK")
23-
string(APPEND CMAKE_CUDA_FLAGS " -ccbin CC -O2 -arch=sm_80 --use_fast_math")
24-
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_AMPERE80=On -DKokkos_ENABLE_CUDA=On -DKokkos_ENABLE_CUDA_LAMBDA=On -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=Off -DKokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC=Off")
25-
# Enable A100 arch in kokkos
26-
option(Kokkos_ARCH_AMPERE80 "" ON)
27-
# This var is needed by relatively recent CMake when CUDA language is enabled
28-
# If not defined, CMake issues a warning
29-
set(CMAKE_CUDA_ARCHITECTURES 80 CACHE STRING "")
30-
# Settings used when Cuda is the Kokkos backend
31-
set(Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION FALSE CACHE BOOL "")
32-
set(Kokkos_ENABLE_CUDA TRUE CACHE BOOL "")
33-
set(Kokkos_ENABLE_CUDA_LAMBDA TRUE CACHE BOOL "")
34-
set(CMAKE_CXX_FLAGS "-DTHRUST_IGNORE_CUB_VERSION_CHECK" CACHE STRING "" FORCE)
18+
string(APPEND CPPDEFS " -DGPU -DTHRUST_IGNORE_CUB_VERSION_CHECK -DHOMMEXX_ENABLE_GPU")
19+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_AMPERE80=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ENABLE_CUDA_LAMBDA=ON -DKokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC=OFF")
20+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=OFF -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=OFF")
21+
string(APPEND CXXFLAGS " -extended-lambda -Wext-lambda-captures-this -std=c++17 -arch=sm_80")
3522
else()
3623
# Enable EPYC arch in kokkos
37-
option(Kokkos_ARCH_ZEN3 "" ON)
38-
# Settings used when OpenMP is the Kokkos backend
39-
set(Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION TRUE CACHE BOOL "")
40-
set(Kokkos_ENABLE_OPENMP TRUE CACHE BOOL "")
24+
if (compile_threaded)
25+
# Settings used when OpenMP is the Kokkos backend
26+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_ZEN3=ON -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=ON -DKokkos_ENABLE_SERIAL=OFF -DKokkos_ENABLE_OPENMP=ON")
27+
else()
28+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_ZEN3=ON -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=OFF")
29+
endif()
30+
string(APPEND CXXFLAGS " -march=znver3 -mtune=znver3")
4131
endif()
4232
if (CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
4333
set(CMAKE_Fortran_FLAGS "-fallow-argument-mismatch" CACHE STRING "" FORCE) # only works with gnu v10 and above
4434
endif()
45-
string(APPEND LDFLAGS " -lstdc++ ")
35+
string(APPEND LDFLAGS " -lstdc++ -lkokkoscontainers -lkokkoscore -lkokkossimd ")
4636
string(APPEND SLIBS " -lsci_gnu ")
4737
endif()

machines/derecho/intel_derecho.cmake

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
set(CONFIG_ARGS "--host=cray")
22
string(APPEND CFLAGS " -qopt-report -march=core-avx2")
3+
string(APPEND CXXFLAGS " -qopt-report -march=core-avx2")
34
string(APPEND FFLAGS " -qopt-report -march=core-avx2")
45
if (COMP_NAME STREQUAL gptl)
56
string(APPEND CPPDEFS " -DHAVE_SLASHPROC")
@@ -15,14 +16,15 @@ set(SCXX icpx)
1516
set(SFC ifort)
1617

1718
if (USE_KOKKOS)
18-
string(APPEND CPPDEFS " -DUSE_KOKKOS")
1919
# Generic setting that are used regardless of Architecture or Kokkos backend
20-
set(Kokkos_ENABLE_DEPRECATED_CODE FALSE CACHE BOOL "")
21-
set(Kokkos_ENABLE_EXPLICIT_INSTANTIATION FALSE CACHE BOOL "")
20+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_DEPRECATED_CODE=OFF -DKokkos_ENABLE_EXPLICIT_INSTANTIATION=OFF")
2221
# Enable EPYC arch in kokkos
23-
option(Kokkos_ARCH_ZEN3 "" ON)
24-
# Settings used when OpenMP is the Kokkos backend
25-
set(Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION TRUE CACHE BOOL "")
26-
set(Kokkos_ENABLE_OPENMP TRUE CACHE BOOL "")
22+
if (compile_threaded)
23+
# Settings used when OpenMP is the Kokkos backend
24+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_ZEN3=ON -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=ON -DKokkos_ENABLE_SERIAL=OFF -DKokkos_ENABLE_OPENMP=ON")
25+
else()
26+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_ZEN3=ON -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=OFF")
27+
endif()
2728
set(CMAKE_CXX_FLAGS "-DTHRUST_IGNORE_CUB_VERSION_CHECK" CACHE STRING "" FORCE)
29+
string(APPEND LDFLAGS " -lstdc++ -lkokkoscontainers -lkokkoscore -lkokkossimd ")
2830
endif()

machines/derecho/nvhpc_derecho.cmake

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,34 +13,17 @@ message("OPENACC_GPU_OFFLOAD is ${OPENACC_GPU_OFFLOAD}")
1313
message("OPENMP_GPU_OFFLOAD is ${OPENMP_GPU_OFFLOAD}")
1414

1515
if (USE_KOKKOS)
16-
string(APPEND CPPDEFS " -DUSE_KOKKOS")
1716
# Generic setting that are used regardless of Architecture or Kokkos backend
18-
set(Kokkos_ENABLE_DEPRECATED_CODE FALSE CACHE BOOL "")
19-
set(Kokkos_ENABLE_EXPLICIT_INSTANTIATION FALSE CACHE BOOL "")
17+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_DEPRECATED_CODE=OFF -DKokkos_ENABLE_EXPLICIT_INSTANTIATION=OFF")
2018
if (KOKKOS_GPU_OFFLOAD)
21-
set(USE_CUDA "TRUE")
22-
string(APPEND CPPDEFS " -DGPU")
23-
string(APPEND CPPDEFS " -DTHRUST_IGNORE_CUB_VERSION_CHECK")
24-
string(APPEND CMAKE_CUDA_FLAGS " -ccbin CC -O2 -arch=sm_80 --use_fast_math")
25-
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_AMPERE80=On -DKokkos_ENABLE_CUDA=On -DKokkos_ENABLE_CUDA_LAMBDA=On -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=Off -DKokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC=Off")
26-
# Enable A100 arch in kokkos
27-
option(Kokkos_ARCH_AMPERE80 "" ON)
28-
# This var is needed by relatively recent CMake when CUDA language is enabled
29-
# If not defined, CMake issues a warning
30-
set(CMAKE_CUDA_ARCHITECTURES 80 CACHE STRING "")
31-
# Settings used when Cuda is the Kokkos backend
32-
set(Kokkos_ENABLE_AGGRESSIVE_VECTORIZATION FALSE CACHE BOOL "")
33-
set(Kokkos_ENABLE_CUDA TRUE CACHE BOOL "")
34-
set(Kokkos_ENABLE_CUDA_LAMBDA TRUE CACHE BOOL "")
35-
set(CMAKE_CXX_FLAGS "-DTHRUST_IGNORE_CUB_VERSION_CHECK" CACHE STRING "" FORCE)
19+
string(APPEND CPPDEFS " -DGPU -DTHRUST_IGNORE_CUB_VERSION_CHECK -DHOMMEXX_ENABLE_GPU")
20+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_AMPERE80=ON -DKokkos_ENABLE_CUDA=ON -DKokkos_ENABLE_CUDA_LAMBDA=ON -DKokkos_ENABLE_IMPL_CUDA_MALLOC_ASYNC=OFF")
21+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=OFF -DKokkos_ENABLE_AGGRESSIVE_VECTORIZATION=OFF")
22+
string(APPEND CXXFLAGS " -extended-lambda -Wext-lambda-captures-this -std=c++17 -arch=sm_80")
3623
else()
3724
# Enable EPYC arch in kokkos
38-
option(Kokkos_ARCH_ZEN3 "" ON)
39-
string(APPEND KOKKOS_OPTIONS " -DKokkos_ENABLE_OPENMP=Off") # work-around for nvidia as kokkos is not passing "-mp" for threaded build
25+
string(APPEND KOKKOS_OPTIONS " -DKokkos_ARCH_ZEN3=ON -DKokkos_ENABLE_SERIAL=ON -DKokkos_ENABLE_OPENMP=OFF") # work-around for nvidia as kokkos is not passing "-mp" for threaded build
4026
endif()
41-
if (CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10)
42-
set(CMAKE_Fortran_FLAGS "-fallow-argument-mismatch" CACHE STRING "" FORCE) # only works with gnu v10 and above
43-
endif()
44-
string(APPEND LDFLAGS " -lstdc++ ")
27+
string(APPEND LDFLAGS " -lstdc++ -lkokkoscontainers -lkokkoscore -lkokkossimd ")
4528
string(APPEND SLIBS " -lsci_nvidia ")
4629
endif()

modelgrid_aliases_nuopc.xml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -859,6 +859,13 @@
859859
<mask>gx1v7</mask>
860860
</model_grid>
861861

862+
<model_grid alias="ne16_ne16_mg37" not_compset="_MOM">
863+
<grid name="atm">ne16np4</grid>
864+
<grid name="lnd">ne16np4</grid>
865+
<grid name="ocnice">ne16np4</grid>
866+
<mask>gx3v7</mask>
867+
</model_grid>
868+
862869
<model_grid alias="ne30_g16" not_compset="_MOM">
863870
<grid name="atm">ne30np4</grid>
864871
<grid name="lnd">ne30np4</grid>
@@ -1467,14 +1474,14 @@
14671474
<mask>gx1v7</mask>
14681475
</model_grid>
14691476

1470-
<model_grid alias="C24_C24_mg17" not_compset="_MOM">
1477+
<model_grid alias="C48_C48_mg17" not_compset="_MOM">
14711478
<grid name="atm">C48</grid>
14721479
<grid name="lnd">C48</grid>
14731480
<grid name="ocnice">C48</grid>
14741481
<mask>gx1v7</mask>
14751482
</model_grid>
14761483

1477-
<model_grid alias="C24_C24_mg17" not_compset="_MOM">
1484+
<model_grid alias="C96_C96_mg17" not_compset="_MOM">
14781485
<grid name="atm">C96</grid>
14791486
<grid name="lnd">C96</grid>
14801487
<grid name="ocnice">C96</grid>
@@ -1503,7 +1510,7 @@
15031510
<mask>tx0.25v1</mask>
15041511
</model_grid>
15051512

1506-
<model_grid alias="C24_C24_mg17" not_compset="_MOM">
1513+
<model_grid alias="C192_C192_mg17" not_compset="_MOM">
15071514
<grid name="atm">C192</grid>
15081515
<grid name="lnd">C192</grid>
15091516
<grid name="ocnice">C192</grid>

0 commit comments

Comments
 (0)