args[${#args[@]}]="--llvm 11 --tsan"
args[${#args[@]}]="--llvm 8 --cuda 11.0 --clfft --mpi openmpi"
args[${#args[@]}]="--llvm 12 --clfft --mpi openmpi --rocm"
-args[${#args[@]}]="--oneapi 2021.3.0"
-args[${#args[@]}]="--oneapi 2021.2.0 --intel-compute-runtime 21.21.19914"
+args[${#args[@]}]="--oneapi 2021.4.0"
+args[${#args[@]}]="--oneapi 2021.4.0 --intel-compute-runtime"
args[${#args[@]}]="--llvm --doxygen --mpi openmpi --venvs 3.7.7"
args[${#args[@]}]="--llvm 12 --cuda 11.4.1 --hipsycl 4481c03 --rocm 4.3"
]
# Extra packages needed to build Intel Compute Runtime
-_intel_compute_runtime_extra_packages = ['libigc',
- 'libigc-dev',
- 'libigdgmm11',
- 'libigdgmm-dev',
- 'libxml2',
- 'libxml2-dev',
- 'libze-loader',
- 'libze-loader-dev',
- 'ocl-icd-libopencl1',
- 'ocl-icd-opencl-dev',
- 'opencl-headers',
- 'pkg-config',
- ]
+_intel_compute_runtime_extra_packages = ['intel-opencl-icd',
+ 'intel-level-zero-gpu',
+ 'level-zero',
+ 'libmfx1']
# Extra packages needed to build Python installations from source.
_python_extra_packages = ['build-essential',
postinstall=postinstall)
-def get_intel_compute_runtime(args):
- # The only reason we need to build Compute Runtime ourselves is because Intel packages have no DG1 support
- # Otherwise, we could have just installed DEB packages from GitHub or Intel PPA
- if args.intel_compute_runtime is None:
- return None
-
- cmake_opts = ['-DCMAKE_BUILD_TYPE=Release',
- '-DSKIP_UNIT_TESTS=TRUE',
- '-DSUPPORT_GEN8=0', '-DSUPPORT_GEN9=1', '-DSUPPORT_GEN11=1', '-DSUPPORT_GEN12LP=1', '-DSUPPORT_DG1=1',
- '-DBUILD_WITH_L0=1']
-
- return hpccm.building_blocks.generic_cmake(
- repository='https://github.com/intel/compute-runtime.git',
- directory='compute-runtime',
- prefix='/usr/local', recursive=True, branch=args.intel_compute_runtime,
- cmake_opts=cmake_opts,
- postinstall=['ldconfig'])
-
-
def add_tsan_compiler_build_stage(input_args, output_stages: typing.Mapping[str, hpccm.Stage]):
"""Isolate the expensive TSAN preparation stage.
os_packages += ['lsb-release']
if args.hipsycl is not None:
os_packages += ['libboost-fiber-dev']
- if args.intel_compute_runtime is not None:
- os_packages += _intel_compute_runtime_extra_packages
building_blocks['extra_packages'] = []
+ if args.intel_compute_runtime:
+ building_blocks['extra_packages'] += hpccm.building_blocks.packages(
+ apt_keys=['https://repositories.intel.com/graphics/intel-graphics.key'],
+ apt_repositories=[f'deb [arch=amd64] https://repositories.intel.com/graphics/ubuntu focal main']
+ )
+ os_packages += _intel_compute_runtime_extra_packages
if args.rocm is not None:
building_blocks['extra_packages'] += hpccm.building_blocks.packages(
apt_keys=['http://repo.radeon.com/rocm/rocm.gpg.key'],
building_blocks['hipSYCL'] = get_hipsycl(args)
- building_blocks['intel-compute-runtime'] = get_intel_compute_runtime(args)
-
# Add Python environments to MPI images, only, so we don't have to worry
# about whether to install mpi4py.
if args.mpi is not None and len(args.venvs) > 0:
parser.add_argument('--rocm', type=str, nargs='?', const='debian', default=None,
help='Select AMD compute engine version.')
-parser.add_argument('--intel-compute-runtime', type=str, nargs='?', default=None,
- help='Select Intel Compute Runtime version.')
+parser.add_argument('--intel-compute-runtime', action='store_true', default=False,
+ help='Include Intel Compute Runtime.')
parser.add_argument('--clfft', type=str, nargs='?', const='master', default=None,
help='Add external clFFT libraries to the build image')
elements.append(gpusdk + '-' + version)
if configuration.oneapi is not None:
elements.append('oneapi-' + configuration.oneapi)
- if configuration.intel_compute_runtime is not None:
- elements.append('intel-' + configuration.intel_compute_runtime)
+ if configuration.intel_compute_runtime:
+ elements.append('intel-compute-runtime')
if configuration.rocm is not None:
if (configuration.rocm != 'debian'):
elements.append('rocm-' + configuration.rocm)
- local: '/admin/gitlab-ci/gromacs.matrix/gromacs.gcc-11-cuda-11.4.1-release.gitlab-ci.yml'
- local: '/admin/gitlab-ci/gromacs.matrix/gromacs.gcc-11-release.gitlab-ci.yml'
- local: '/admin/gitlab-ci/gromacs.matrix/gromacs.hipsycl-dev.gitlab-ci.yml'
- - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.oneapi-2021.3.0-opencl.gitlab-ci.yml'
- - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.oneapi-2021.3.0-opencl-release.gitlab-ci.yml'
- - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.oneapi-2021.3.0-sycl.gitlab-ci.yml'
- - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.oneapi-2021.2.0-sycl-nightly.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.oneapi-2021.4.0-opencl.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.oneapi-2021.4.0-opencl-release.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.oneapi-2021.4.0-sycl.gitlab-ci.yml'
+ - local: '/admin/gitlab-ci/gromacs.matrix/gromacs.oneapi-2021.4.0-sycl-nightly.gitlab-ci.yml'
# Scope: configure, build, unit tests, regression tests
# Test implementation choices (free to change as needed):
# OS: Ubuntu 20.04
-# Compiler: ICPX 2021.1
+# Compiler: ICPX 2021.4
# MPI: thread_MPI
# SIMD: AVX2_256
# Parallelism nt/ntomp: 4/2 (unit tests)
# Parallelism nt/ntomp: 2/1 (regression tests)
-gromacs:oneapi-2021.3.0-opencl:release:configure:
+gromacs:oneapi-2021.4.0-opencl:release:configure:
extends:
- .gromacs:base:release:configure
- .use-oneapi:base
- .use-opencl
- .rules:nightly-only-for-release
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.3.0
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
COMPILER_MAJOR_VERSION: 2021
RELEASE_BUILD_DIR: release-builds-oneapi
-gromacs:oneapi-2021.3.0-opencl:release:build:
+gromacs:oneapi-2021.4.0-opencl:release:build:
extends:
- .variables:default
- .gromacs:base:build
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
BUILD_DIR: release-builds-oneapi
COMPILER_MAJOR_VERSION: 2021
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.3.0
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0
needs:
- - job: gromacs:oneapi-2021.3.0-opencl:release:configure
+ - job: gromacs:oneapi-2021.4.0-opencl:release:configure
-gromacs:oneapi-2021.3.0-opencl:release:test:
+gromacs:oneapi-2021.4.0-opencl:release:test:
extends:
- .gromacs:base:test
- .use-oneapi:base
- .rules:nightly-only-for-release
stage: release-tests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.3.0
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
BUILD_DIR: release-builds-oneapi
needs:
- - job: gromacs:oneapi-2021.3.0-opencl:release:configure
- - job: gromacs:oneapi-2021.3.0-opencl:release:build
+ - job: gromacs:oneapi-2021.4.0-opencl:release:configure
+ - job: gromacs:oneapi-2021.4.0-opencl:release:build
-gromacs:oneapi-2021.3.0-opencl:release:regressiontest:
+gromacs:oneapi-2021.4.0-opencl:release:regressiontest:
extends:
- .gromacs:base:regressiontest
- .use-oneapi:base
- .rules:nightly-only-for-release
stage: release-tests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.3.0
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
BUILD_DIR: release-builds-oneapi
REGRESSIONTEST_TOTAL_RANK_NUMBER: 2
REGRESSIONTEST_OMP_RANK_NUMBER: 1
needs:
- - job: gromacs:oneapi-2021.3.0-opencl:release:build
+ - job: gromacs:oneapi-2021.4.0-opencl:release:build
- job: regressiontests:package
# Test implementation choices (free to change as needed):
# OS: Ubuntu 20.04
# Build type: Debug
-# Compiler: ICPX 2021.1
+# Compiler: ICPX 2021.4
# MPI: thread_MPI
# SIMD: AVX2_256
# Parallelism nt/ntomp: 4/2
-gromacs:oneapi-2021.3.0-opencl:configure:
+gromacs:oneapi-2021.4.0-opencl:configure:
extends:
- .gromacs:base:configure
- .use-oneapi:base
- .use-opencl
- .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.3.0
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
COMPILER_MAJOR_VERSION: 2021
-gromacs:oneapi-2021.3.0-opencl:build:
+gromacs:oneapi-2021.4.0-opencl:build:
extends:
- .variables:default
- .gromacs:base:build
- .use-ccache
- .use-oneapi:base
- .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.3.0
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
needs:
- - job: gromacs:oneapi-2021.3.0-opencl:configure
+ - job: gromacs:oneapi-2021.4.0-opencl:configure
-gromacs:oneapi-2021.3.0-opencl:test:
+gromacs:oneapi-2021.4.0-opencl:test:
extends:
- .gromacs:base:test
- .use-oneapi:base
- .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.3.0
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
needs:
- - job: gromacs:oneapi-2021.3.0-opencl:build
+ - job: gromacs:oneapi-2021.4.0-opencl:build
-gromacs:oneapi-2021.3.0-opencl:regressiontest:
+gromacs:oneapi-2021.4.0-opencl:regressiontest:
extends:
- .gromacs:base:regressiontest
- .use-oneapi:base
- .rules:merge-requests
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.3.0
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
needs:
- - job: gromacs:oneapi-2021.3.0-opencl:build
+ - job: gromacs:oneapi-2021.4.0-opencl:build
- job: regressiontests:prepare
# Test implementation choices (free to change as needed):
# OS: Ubuntu 20.04
# Build type: RelWithAssert
-# Compiler: ICPX 2021.2
+# Compiler: ICPX 2021.4
# MPI: thread_MPI
# SIMD: AVX2_256
# Parallelism nt/ntomp: 2/1
-gromacs:oneapi-2021.2.0-sycl-nightly:configure:
+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.2.0-intel-21.21.19914:latest
+ 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.2.0-sycl-nightly:build:
+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.2.0-intel-21.21.19914:latest
+ 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.2.0-sycl-nightly:configure
+ - job: gromacs:oneapi-2021.4.0-sycl-nightly:configure
-gromacs:oneapi-2021.2.0-sycl-nightly:test-opencl:
+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.2.0-intel-21.21.19914:latest
+ 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"
# 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.2.0-sycl-nightly:build
+ - job: gromacs:oneapi-2021.4.0-sycl-nightly:build
-gromacs:oneapi-2021.2.0-sycl-nightly:regressiontest-opencl:
+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.2.0-intel-21.21.19914:latest
+ 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"
# 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.2.0-sycl-nightly:build
+ - 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.2.0-sycl-nightly:test-levelzero:
+#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.2.0-intel-21.21.19914:latest
+# 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"
# # 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.2.0-sycl-nightly:build
+# - job: gromacs:oneapi-2021.4.0-sycl-nightly:build
#
-#gromacs:oneapi-2021.2.0-sycl-nightly:regressiontest-levelzero:
+#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.2.0-intel-21.21.19914:latest
+# 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"
# # 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.2.0-sycl-nightly:build
+# - job: gromacs:oneapi-2021.4.0-sycl-nightly:build
# - job: regressiontests:prepare
# Test implementation choices (free to change as needed):
# OS: Ubuntu 20.04
# Build type: Debug
-# Compiler: ICPX 2021.1
+# Compiler: ICPX 2021.4
# MPI: thread_MPI
# SIMD: AVX2_256
# Parallelism nt/ntomp: 4/2
-gromacs:oneapi-2021.3.0-sycl:configure:
+gromacs:oneapi-2021.4.0-sycl:configure:
extends:
- .gromacs:base:configure
- .use-oneapi:base
- .use-sycl
- .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.3.0
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
COMPILER_MAJOR_VERSION: 2021
-gromacs:oneapi-2021.3.0-sycl:build:
+gromacs:oneapi-2021.4.0-sycl:build:
extends:
- .variables:default
- .gromacs:base:build
- .use-ccache
- .use-oneapi:base
- .rules:merge-and-post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.3.0
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
needs:
- - job: gromacs:oneapi-2021.3.0-sycl:configure
+ - job: gromacs:oneapi-2021.4.0-sycl:configure
-gromacs:oneapi-2021.3.0-sycl:test:
+gromacs:oneapi-2021.4.0-sycl:test:
extends:
- .gromacs:base:test
- .use-oneapi:base
- .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.3.0
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
needs:
- - job: gromacs:oneapi-2021.3.0-sycl:build
+ - job: gromacs:oneapi-2021.4.0-sycl:build
-gromacs:oneapi-2021.3.0-sycl:regressiontest:
+gromacs:oneapi-2021.4.0-sycl:regressiontest:
extends:
- .gromacs:base:regressiontest
- .use-oneapi:base
- .rules:post-merge-acceptance
- image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.3.0
+ image: ${CI_REGISTRY}/gromacs/gromacs/ci-ubuntu-20.04-gcc-7-oneapi-2021.4.0
variables:
CMAKE: /usr/local/cmake-3.17.2/bin/cmake
needs:
- - job: gromacs:oneapi-2021.3.0-sycl:build
+ - job: gromacs:oneapi-2021.4.0-sycl:build
- job: regressiontests:prepare