-
Notifications
You must be signed in to change notification settings - Fork 9
/
.gitlab-ci.yml
125 lines (110 loc) · 3 KB
/
.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
stages:
- test
image: ubuntu:bionic
before_script: &base_setup
- apt-get update -qq
- apt-get install -yqq cmake make pkg-config g++ clang
- apt-get install -yqq libboost-{program-options,filesystem,system,test}-dev
.use_gcc: &use_gcc
CC: "gcc"
CXX: "g++"
.use_clang: &use_clang
CC: "clang"
CXX: "clang++"
.use_hipcc: &use_hipcc
CC: "clang"
CXX: "hipcc"
.release_build: &release_build
CMAKE_BUILD_TYPE: "Release"
CMAKE_VERBOSE_MAKEFILE: "Off"
GEARSHIFFT_VERBOSE: "Off"
.debug_build: &debug_build
CMAKE_BUILD_TYPE: "Debug"
CMAKE_VERBOSE_MAKEFILE: "On"
GEARSHIFFT_VERBOSE: "On"
.generic_build_and_test: &generic_build_and_test
- mkdir build
- cd build
- cmake -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE -DCMAKE_VERBOSE_MAKEFILE=$CMAKE_VERBOSE_MAKEFILE -DGEARSHIFFT_VERBOSE=$GEARSHIFFT_VERBOSE ..
- make -j $(nproc)
- make test
.signal_test: &signal_test
- sigs=(QUIT KILL TERM) # don't send SIGABRT (is ignored by gearshifft)
- for sig in "${sigs[@]}"; do
timeout -s "$sig" 10 ./gearshifft/gearshifft_fftw -e 16 32 64 128 256 512 -o out.csv &> /dev/null || true;
[[ $(wc -l < out.csv~) -gt 2 ]] && echo "Test successful for SIG$sig" || { echo "Test failed for SIG$sig" && false; };
rm out.csv*;
done
fftw:
stage: test
variables:
<<: *use_gcc
<<: *release_build
before_script:
- *base_setup
- apt-get install -yqq libfftw3-dev
script:
- *generic_build_and_test
- *signal_test
fftw_debug:
stage: test
variables:
<<: *use_gcc
<<: *debug_build
before_script:
- *base_setup
- apt-get install -yqq libfftw3-dev
script:
- *generic_build_and_test
fftw_clang:
stage: test
variables:
<<: *use_clang
<<: *release_build
before_script:
- *base_setup
- apt-get install -yqq libfftw3-dev
script:
- *generic_build_and_test
cufft:
stage: test
tags:
- intel
- cuda
image: nvidia/cuda:10.2-devel-ubuntu18.04
variables:
<<: *use_gcc
<<: *release_build
script:
- *generic_build_and_test
clfft:
stage: test
tags:
- amd
- rocm
image: rocm/dev-ubuntu-18.04
variables:
<<: *use_gcc
<<: *release_build
before_script:
- *base_setup
- apt-get install -yqq libclfft-dev
script:
- *generic_build_and_test
# TODO: Un-hide when this issue is resolved: https://github.com/RadeonOpenCompute/rocminfo/issues/38
.rocfft:
stage: test
tags:
- amd
- rocm
image: rocm/dev-ubuntu-18.04
variables:
<<: *use_hipcc
<<: *debug_build
before_script:
- *base_setup
- apt-get install -yqq rocm-libs
- export PATH="/opt/rocm-3.8.0/bin:/opt/rocm-3.8.0/hip/bin:/opt/rocm-3.8.0/llvm/bin:$PATH"
- export CMAKE_PREFIX_PATH="$(echo /opt/rocm-*/lib/cmake/* /opt/rocm-*/hip/lib/cmake/* | tr ' ' ':')"
script:
- *generic_build_and_test