@@ -8,3 +8,78 @@ ifeq ($(which_computer),theta)
88 LIBRARIES += -lmpichf90
99 endif
1010endif
11+
12+ ifeq ($(which_computer),$(filter $(which_computer),polaris))
13+
14+ ifdef PE_ENV
15+ ifneq ($(USE_GPU),TRUE)
16+ lowercase_peenv := $(shell echo $(PE_ENV) | tr A-Z a-z)
17+ ifneq ($(lowercase_peenv),$(lowercase_comp))
18+ has_compiler_mismatch = COMP=$(COMP) does not match PrgEnv-$(lowercase_peenv)
19+ endif
20+ ifeq ($(MAKECMDGOALS),)
21+ ifeq ($(lowercase_peenv),nvidia)
22+ $(error PrgEnv-nvidia cannot be used with CPU-only builds. Try PrgEnv-gnu instead.)
23+ endif
24+ endif
25+ endif
26+ endif
27+
28+ ifeq ($(USE_CUDA),TRUE)
29+ CFLAGS += -Xcompiler='$(wordlist 2,1024,$(shell cc -craype-verbose 2> /dev/null))'
30+ CXXFLAGS += -Xcompiler='$(wordlist 2,1024,$(shell CC -craype-verbose 2> /dev/null))'
31+ else ifeq ($(USE_MPI),FALSE)
32+ CFLAGS += $(wordlist 2,1024,$(shell cc -craype-verbose 2> /dev/null))
33+ CXXFLAGS += $(wordlist 2,1024,$(shell CC -craype-verbose 2> /dev/null))
34+ endif
35+
36+ ifeq ($(USE_MPI),TRUE)
37+ ifneq ($(USE_CUDA),TRUE)
38+ CC = cc
39+ CXX = CC
40+ FC = ftn
41+ F90 = ftn
42+ LIBRARIES += -lmpichf90
43+ endif
44+
45+ includes += $(shell CC --cray-print-opts=cflags)
46+ endif
47+
48+ ifeq ($(USE_CUDA),TRUE)
49+ CUDA_ARCH = 80
50+
51+ ifeq ($(USE_MPI), FALSE)
52+ includes += $(CRAY_CUDATOOLKIT_INCLUDE_OPTS)
53+ endif
54+
55+ comm := ,
56+ ifneq ($(BL_NO_FORT),TRUE)
57+ LIBRARIES += $(subst -Wl$(comm),-Xlinker=,$(shell ftn --cray-print-opts=libs))
58+ else
59+ LIBRARIES += $(subst -Wl$(comm),-Xlinker=,$(shell CC --cray-print-opts=libs))
60+ endif
61+
62+ ifneq ($(CUDA_ROOT),)
63+ SYSTEM_CUDA_PATH := $(CUDA_ROOT)
64+ COMPILE_CUDA_PATH := $(CUDA_ROOT)
65+ else ifneq ($(CUDA_HOME),)
66+ SYSTEM_CUDA_PATH := $(CUDA_HOME)
67+ COMPILE_CUDA_PATH := $(CUDA_HOME)
68+ else ifneq ($(CUDA_PATH),)
69+ SYSTEM_CUDA_PATH := $(CUDA_PATH)
70+ COMPILE_CUDA_PATH := $(CUDA_PATH)
71+ else ifneq ($(NVIDIA_PATH),)
72+ SYSTEM_CUDA_PATH := $(NVIDIA_PATH)/cuda
73+ COMPILE_CUDA_PATH := $(NVIDIA_PATH)/cuda
74+ else
75+ $(error No CUDA_ROOT nor CUDA_HOME nor CUDA_PATH found. Please load a cuda module.)
76+ endif
77+
78+ # Provide system configuration information.
79+
80+ GPUS_PER_NODE=4
81+ GPUS_PER_SOCKET=4
82+
83+ endif
84+
85+ endif
0 commit comments