Fix compiler warnings with OpenCL + oneAPI 2021.4
[alexxy/gromacs.git] / admin / gitlab-ci / gromacs.matrix / gromacs.oneapi-2021.4.0-sycl-nightly.gitlab-ci.yml
1 # Test goal: Newest ICPX build with SYCL with tests on Intel GPUs
2 # Test intents (should change rarely and conservatively):
3 #   OS: Ubuntu newest supported
4 #   Compiler: ICPX newest supported
5 #   FFT: MKL
6 #   GPU: SYCL
7 #   Scope: configure, build, unit tests, regression tests
8 # Test implementation choices (free to change as needed):
9 #   OS: Ubuntu 20.04
10 #   Build type: RelWithAssert
11 #   Compiler: ICPX 2021.4
12 #   MPI: thread_MPI
13 #   SIMD: AVX2_256
14 #   Parallelism nt/ntomp: 2/1
15
16 gromacs:oneapi-2021.4.0-sycl-nightly:configure:
17   extends:
18    - .gromacs:base:configure
19    - .use-oneapi:base
20    - .use-sycl
21    - .rules:nightly-not-for-release
22   image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0-intel-compute-runtime:latest
23   variables:
24     CMAKE: /usr/local/cmake-3.18.4/bin/cmake
25     COMPILER_MAJOR_VERSION: 2021
26
27 gromacs:oneapi-2021.4.0-sycl-nightly:build:
28   extends:
29     - .variables:default
30     - .gromacs:base:build
31     - .use-ccache
32     - .use-oneapi:base
33     - .rules:nightly-not-for-release
34   image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0-intel-compute-runtime:latest
35   variables:
36     CMAKE: /usr/local/cmake-3.18.4/bin/cmake
37   needs:
38     - job: gromacs:oneapi-2021.4.0-sycl-nightly:configure
39
40 gromacs:oneapi-2021.4.0-sycl-nightly:test-opencl:
41   extends:
42     - .gromacs:base:test
43     - .use-oneapi:base
44     - .rules:nightly-not-for-release
45   tags:
46     - intel-gpu-dg1
47   image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0-intel-compute-runtime:latest
48   variables:
49     CMAKE: /usr/local/cmake-3.18.4/bin/cmake
50     SYCL_DEVICE_FILTER: "opencl:gpu"
51     # The following two variables are not used by k8s, since this job runs on a separate host
52     # But it's easier to set them up and use the existing scripts for job preparation that rely on them
53     KUBERNETES_EXTENDED_RESOURCE_NAME: "intel.com/gpu"
54     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
55     # Except we now don't request any GPUs, so we must set this one up manually until !1585 is merged
56     GMX_TEST_REQUIRED_NUMBER_OF_DEVICES: 2
57   needs:
58     - job: gromacs:oneapi-2021.4.0-sycl-nightly:build
59
60 gromacs:oneapi-2021.4.0-sycl-nightly:regressiontest-opencl:
61   extends:
62     - .gromacs:base:regressiontest
63     - .use-oneapi:base
64     - .rules:nightly-not-for-release
65   tags:
66     - intel-gpu-dg1
67   image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0-intel-compute-runtime:latest
68   variables:
69     CMAKE: /usr/local/cmake-3.18.4/bin/cmake
70     SYCL_DEVICE_FILTER: "opencl:gpu"
71     # Default not working, see #2980
72     REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
73     REGRESSIONTEST_OMP_RANK_NUMBER: 1
74     # The following two variables are not used by k8s, since this job runs on a separate host
75     # But it's easier to set them up and use the existing scripts for job preparation that rely on them
76     KUBERNETES_EXTENDED_RESOURCE_NAME: "intel.com/gpu"
77     KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
78     # Except we now don't request any GPUs, so we must set this one up manually until !1585 is merged
79     GMX_TEST_REQUIRED_NUMBER_OF_DEVICES: 2
80   needs:
81     - job: gromacs:oneapi-2021.4.0-sycl-nightly:build
82     - job: regressiontests:prepare
83
84 # We have to disable LevelZero tests until https://github.com/intel/llvm/pull/3045 makes it into
85 # the OneAPI release. Without this patch, some of the tests deadlock.
86
87 #gromacs:oneapi-2021.4.0-sycl-nightly:test-levelzero:
88 #  extends:
89 #    - .gromacs:base:test
90 #    - .use-oneapi:base
91 #    - .rules:nightly-not-for-release
92 #  tags:
93 #    - intel-gpu-dg1
94 #  image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0-intel-compute-runtime:latest
95 #  variables:
96 #    CMAKE: /usr/local/cmake-3.18.4/bin/cmake
97 #    SYCL_DEVICE_FILTER: "level_zero:gpu"
98 #    # The following two variables are not used by k8s, since this job runs on a separate host
99 #    # But it's easier to set them up and use the existing scripts for job preparation that rely on them
100 #    KUBERNETES_EXTENDED_RESOURCE_NAME: "intel.com/gpu"
101 #    KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
102 #    # Except we now don't request any GPUs, so we must set this one up manually until !1585 is merged
103 #    GMX_TEST_REQUIRED_NUMBER_OF_DEVICES: 2
104 #  needs:
105 #    - job: gromacs:oneapi-2021.4.0-sycl-nightly:build
106 #
107 #gromacs:oneapi-2021.4.0-sycl-nightly:regressiontest-levelzero:
108 #  extends:
109 #    - .gromacs:base:regressiontest
110 #    - .use-oneapi:base
111 #    - .rules:nightly-not-for-release
112 #  tags:
113 #    - intel-gpu-dg1
114 #  image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0-intel-compute-runtime:latest
115 #  variables:
116 #    CMAKE: /usr/local/cmake-3.18.4/bin/cmake
117 #    SYCL_DEVICE_FILTER: "level_zero:gpu"
118 #    # Default not working, see #2980
119 #    REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
120 #    REGRESSIONTEST_OMP_RANK_NUMBER: 1
121 #    # The following two variables are not used by k8s, since this job runs on a separate host
122 #    # But it's easier to set them up and use the existing scripts for job preparation that rely on them
123 #    KUBERNETES_EXTENDED_RESOURCE_NAME: "intel.com/gpu"
124 #    KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2
125 #    # Except we now don't request any GPUs, so we must set this one up manually until !1585 is merged
126 #    GMX_TEST_REQUIRED_NUMBER_OF_DEVICES: 2
127 #  needs:
128 #    - job: gromacs:oneapi-2021.4.0-sycl-nightly:build
129 #    - job: regressiontests:prepare