# Test goal: Newest ICPX build with SYCL with tests on Intel GPUs # Test intents (should change rarely and conservatively): # OS: Ubuntu newest supported # Compiler: ICPX newest supported # FFT: MKL # GPU: SYCL # Scope: configure, build, unit tests, regression tests # Test implementation choices (free to change as needed): # OS: Ubuntu 20.04 # Build type: RelWithAssert # Compiler: ICPX 2021.4 # MPI: thread_MPI # SIMD: AVX2_256 # Parallelism nt/ntomp: 2/1 gromacs:oneapi-2021.4.0-sycl-nightly:configure: extends: - .gromacs:base:configure - .use-oneapi:base - .use-sycl - .rules:nightly-not-for-release image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0-intel-compute-runtime:latest variables: CMAKE: /usr/local/cmake-3.18.4/bin/cmake COMPILER_MAJOR_VERSION: 2021 gromacs:oneapi-2021.4.0-sycl-nightly:build: extends: - .variables:default - .gromacs:base:build - .use-ccache - .use-oneapi:base - .rules:nightly-not-for-release image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0-intel-compute-runtime:latest variables: CMAKE: /usr/local/cmake-3.18.4/bin/cmake needs: - job: gromacs:oneapi-2021.4.0-sycl-nightly:configure gromacs:oneapi-2021.4.0-sycl-nightly:test-opencl: extends: - .gromacs:base:test - .use-oneapi:base - .rules:nightly-not-for-release tags: - intel-gpu-dg1 image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0-intel-compute-runtime:latest variables: CMAKE: /usr/local/cmake-3.18.4/bin/cmake SYCL_DEVICE_FILTER: "opencl:gpu" # The following two variables are not used by k8s, since this job runs on a separate host # But it's easier to set them up and use the existing scripts for job preparation that rely on them KUBERNETES_EXTENDED_RESOURCE_NAME: "intel.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2 # Except we now don't request any GPUs, so we must set this one up manually until !1585 is merged GMX_TEST_REQUIRED_NUMBER_OF_DEVICES: 2 needs: - job: gromacs:oneapi-2021.4.0-sycl-nightly:build gromacs:oneapi-2021.4.0-sycl-nightly:regressiontest-opencl: extends: - .gromacs:base:regressiontest - .use-oneapi:base - .rules:nightly-not-for-release tags: - intel-gpu-dg1 image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0-intel-compute-runtime:latest variables: CMAKE: /usr/local/cmake-3.18.4/bin/cmake SYCL_DEVICE_FILTER: "opencl:gpu" # Default not working, see #2980 REGRESSIONTEST_TOTAL_RANK_NUMBER: 2 REGRESSIONTEST_OMP_RANK_NUMBER: 1 # The following two variables are not used by k8s, since this job runs on a separate host # But it's easier to set them up and use the existing scripts for job preparation that rely on them KUBERNETES_EXTENDED_RESOURCE_NAME: "intel.com/gpu" KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2 # Except we now don't request any GPUs, so we must set this one up manually until !1585 is merged GMX_TEST_REQUIRED_NUMBER_OF_DEVICES: 2 needs: - job: gromacs:oneapi-2021.4.0-sycl-nightly:build - job: regressiontests:prepare # We have to disable LevelZero tests until https://github.com/intel/llvm/pull/3045 makes it into # the OneAPI release. Without this patch, some of the tests deadlock. #gromacs:oneapi-2021.4.0-sycl-nightly:test-levelzero: # extends: # - .gromacs:base:test # - .use-oneapi:base # - .rules:nightly-not-for-release # tags: # - intel-gpu-dg1 # image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0-intel-compute-runtime:latest # variables: # CMAKE: /usr/local/cmake-3.18.4/bin/cmake # SYCL_DEVICE_FILTER: "level_zero:gpu" # # The following two variables are not used by k8s, since this job runs on a separate host # # But it's easier to set them up and use the existing scripts for job preparation that rely on them # KUBERNETES_EXTENDED_RESOURCE_NAME: "intel.com/gpu" # KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2 # # Except we now don't request any GPUs, so we must set this one up manually until !1585 is merged # GMX_TEST_REQUIRED_NUMBER_OF_DEVICES: 2 # needs: # - job: gromacs:oneapi-2021.4.0-sycl-nightly:build # #gromacs:oneapi-2021.4.0-sycl-nightly:regressiontest-levelzero: # extends: # - .gromacs:base:regressiontest # - .use-oneapi:base # - .rules:nightly-not-for-release # tags: # - intel-gpu-dg1 # image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0-intel-compute-runtime:latest # variables: # CMAKE: /usr/local/cmake-3.18.4/bin/cmake # SYCL_DEVICE_FILTER: "level_zero:gpu" # # Default not working, see #2980 # REGRESSIONTEST_TOTAL_RANK_NUMBER: 2 # REGRESSIONTEST_OMP_RANK_NUMBER: 1 # # The following two variables are not used by k8s, since this job runs on a separate host # # But it's easier to set them up and use the existing scripts for job preparation that rely on them # KUBERNETES_EXTENDED_RESOURCE_NAME: "intel.com/gpu" # KUBERNETES_EXTENDED_RESOURCE_LIMIT: 2 # # Except we now don't request any GPUs, so we must set this one up manually until !1585 is merged # GMX_TEST_REQUIRED_NUMBER_OF_DEVICES: 2 # needs: # - job: gromacs:oneapi-2021.4.0-sycl-nightly:build # - job: regressiontests:prepare