forked from ECP-copa/Cabana
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.ecp-gitlab-ci.yml
160 lines (137 loc) · 3.53 KB
/
.ecp-gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
# see https://docs.gitlab.com/ce/ci/yaml/README.html for all available options
variables:
SCHEDULER_PARAMETERS: "-J Cabana_CI -W 0:05 -nnodes 1 -P CSC304"
stages:
- buildKokkos
- build
.BuildKokkos:
stage: buildKokkos
before_script:
- module load gcc
- module load git
script:
- module load cmake
- j="$(grep -c processor /proc/cpuinfo 2>/dev/null)" || j=0; ((j++))
- for i in ${BACKENDS}; do KOKKOS_OPTS+=( -DKokkos_ENABLE_${i}=ON ); done
- git clone --depth=1 --branch 3.3.01 https://github.com/kokkos/kokkos.git &&
pushd kokkos &&
mkdir build &&
pushd build &&
cmake -DCMAKE_INSTALL_PREFIX=${CI_PROJECT_DIR}/kokkos.install ${KOKKOS_OPTS[@]} ${KOKKOS_EXTRA_ARGS} .. &&
make -j${j} &&
make install &&
popd &&
popd
tags:
- nobatch
artifacts:
paths:
- kokkos.install/
.Build:
stage: build
before_script:
- module load gcc
script:
- module load cmake
- for i in ${BACKENDS}; do CMAKE_OPTS+=( -DCabana_REQUIRE_${i}=ON ); done
- j="$(grep -c processor /proc/cpuinfo 2>/dev/null)" || j=0; ((j++))
- mkdir build && cd build &&
cmake -DCMAKE_PREFIX_PATH=${CI_PROJECT_DIR}/kokkos.install -DCabana_ENABLE_TESTING=ON -DCabana_ENABLE_EXAMPLES=ON ${CMAKE_OPTS[@]} ${CMAKE_EXTRA_ARGS} .. &&
make -k -j${j} VERBOSE=1 && make test CTEST_OUTPUT_ON_FAILURE=1
tags:
- batch
.BuildKokkos_CUDA:
extends: .BuildKokkos
variables:
KOKKOS_EXTRA_ARGS: "-DKokkos_ARCH_VOLTA70=ON -DKokkos_ENABLE_CUDA_LAMBDA=ON -DCMAKE_CXX_COMPILER=${CI_PROJECT_DIR}/kokkos/bin/nvcc_wrapper"
before_script:
- module load gcc/6.4.0
- module load cuda
- module load git
.Build_CUDA:
extends: .Build
variables:
CMAKE_EXTRA_ARGS: "-DCMAKE_CXX_COMPILER=${CI_PROJECT_DIR}/kokkos.install/bin/nvcc_wrapper"
before_script:
- module load gcc/6.4.0
- module load cuda
BuildKokkos CUDA:
variables:
BACKENDS: "CUDA"
extends: .BuildKokkos_CUDA
Build CUDA:
variables:
BACKENDS: "CUDA"
extends: .Build_CUDA
dependencies:
- BuildKokkos CUDA
BuildKokkos SERIAL:
variables:
BACKENDS: "SERIAL"
extends: .BuildKokkos
Build SERIAL:
variables:
BACKENDS: "SERIAL"
extends: .Build
dependencies:
- BuildKokkos SERIAL
BuildKokkos OPENMP:
variables:
BACKENDS: "OPENMP"
extends: .BuildKokkos
Build OPENMP:
variables:
BACKENDS: "OPENMP"
extends: .Build
dependencies:
- BuildKokkos OPENMP
BuildKokkos PTHREAD:
variables:
BACKENDS: "PTHREAD"
extends: .BuildKokkos
Build PTHREAD:
variables:
BACKENDS: "PTHREAD"
extends: .Build
dependencies:
- BuildKokkos PTHREAD
BuildKokkos SERIAL PTHREAD:
variables:
BACKENDS: "SERIAL PTHREAD"
extends: .BuildKokkos
Build SERIAL PTHREAD:
variables:
BACKENDS: "SERIAL PTHREAD"
extends: .Build
dependencies:
- BuildKokkos SERIAL PTHREAD
BuildKokkos SERIAL OPENMP:
variables:
BACKENDS: "SERIAL OPENMP"
extends: .BuildKokkos
Build SERIAL OPENMP:
variables:
BACKENDS: "SERIAL OPENMP"
extends: .Build
dependencies:
- BuildKokkos SERIAL OPENMP
BuildKokkos SERIAL CUDA:
variables:
BACKENDS: "SERIAL CUDA"
extends: .BuildKokkos_CUDA
Build SERIAL CUDA:
variables:
BACKENDS: "SERIAL CUDA"
extends: .Build_CUDA
dependencies:
- BuildKokkos SERIAL CUDA
BuildKokkos SERIAL CUDA OPENMP:
variables:
BACKENDS: "SERIAL CUDA OPENMP"
extends: .BuildKokkos_CUDA
Build SERIAL CUDA OPENMP:
variables:
BACKENDS: "SERIAL CUDA OPENMP"
extends: .Build_CUDA
dependencies:
- BuildKokkos SERIAL CUDA OPENMP