mirror of
https://gitlab.com/libeigen/eigen.git
synced 2024-11-27 06:30:28 +08:00
314 lines
10 KiB
YAML
314 lines
10 KiB
YAML
# Base configuration for linux cross-compilation.
|
|
.build:linux:cross:
|
|
extends: .common:linux:cross
|
|
stage: build
|
|
variables:
|
|
EIGEN_CI_BUILD_TARGET: buildtests
|
|
script:
|
|
- . ci/scripts/build.linux.script.sh
|
|
tags:
|
|
- linux
|
|
- eigen-runner
|
|
- cross-compiler
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
|
|
- if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
|
|
cache:
|
|
key: "$CI_JOB_NAME_SLUG-$CI_COMMIT_REF_SLUG-BUILD"
|
|
paths:
|
|
- ${EIGEN_CI_BUILDDIR}/
|
|
|
|
######## x86-64 ################################################################
|
|
|
|
.build:linux:cross:x86-64:
|
|
extends: .build:linux:cross
|
|
variables:
|
|
EIGEN_CI_TARGET_ARCH: x86_64
|
|
EIGEN_CI_CROSS_TARGET_TRIPLE: x86_64-linux-gnu
|
|
|
|
# GCC-6 (minimum on Ubuntu 18.04)
|
|
build:linux:cross:x86-64:gcc-6:default:
|
|
extends: .build:linux:cross:x86-64
|
|
image: ubuntu:18.04
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: gcc-6
|
|
EIGEN_CI_CXX_COMPILER: g++-6
|
|
EIGEN_CI_CROSS_INSTALL: g++-6-x86-64-linux-gnu
|
|
EIGEN_CI_CROSS_C_COMPILER: x86_64-linux-gnu-gcc-6
|
|
EIGEN_CI_CROSS_CXX_COMPILER: x86_64-linux-gnu-g++-6
|
|
|
|
# GCC-10 (stable recent version)
|
|
build:linux:cross:x86-64:gcc-10:default:
|
|
extends: .build:linux:cross:x86-64
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: gcc-10
|
|
EIGEN_CI_CXX_COMPILER: g++-10
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-x86-64-linux-gnu
|
|
EIGEN_CI_CROSS_C_COMPILER: x86_64-linux-gnu-gcc-10
|
|
EIGEN_CI_CROSS_CXX_COMPILER: x86_64-linux-gnu-g++-10
|
|
|
|
build:linux:cross:x86-64:gcc-10:avx:
|
|
extends: build:linux:cross:x86-64:gcc-10:default
|
|
variables:
|
|
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX=on"
|
|
|
|
build:linux:cross:x86-64:gcc-10:avx2:
|
|
extends: build:linux:cross:x86-64:gcc-10:default
|
|
variables:
|
|
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX2=on"
|
|
|
|
build:linux:cross:x86-64:gcc-10:avx512dq:
|
|
extends: build:linux:cross:x86-64:gcc-10:default
|
|
variables:
|
|
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX512DQ=on"
|
|
|
|
# Clang-6 (minimum on Ubuntu 20.04)
|
|
build:linux:cross:x86-64:clang-6:default:
|
|
extends: .build:linux:cross:x86-64
|
|
image: ubuntu:20.04
|
|
variables:
|
|
EIGEN_CI_INSTALL: g++-8 clang-6.0 lld-6.0
|
|
EIGEN_CI_C_COMPILER: clang-6.0
|
|
EIGEN_CI_CXX_COMPILER: clang++-6.0
|
|
EIGEN_CI_CROSS_INSTALL: g++-8-x86-64-linux-gnu clang-6.0 lld-6.0
|
|
EIGEN_CI_ADDITIONAL_ARGS: -DCMAKE_EXE_LINKER_FLAGS=-fuse-ld=lld-6.0
|
|
|
|
# Clang-12 (stable recent version)
|
|
build:linux:cross:x86-64:clang-12:default:
|
|
extends: .build:linux:cross:x86-64
|
|
variables:
|
|
EIGEN_CI_INSTALL: clang-12
|
|
EIGEN_CI_C_COMPILER: clang-12
|
|
EIGEN_CI_CXX_COMPILER: clang++-12
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-x86-64-linux-gnu clang-12
|
|
|
|
build:linux:cross:x86-64:clang-12:avx:
|
|
extends: build:linux:cross:x86-64:clang-12:default
|
|
variables:
|
|
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX=on"
|
|
|
|
build:linux:cross:x86-64:clang-12:avx2:
|
|
extends: build:linux:cross:x86-64:clang-12:default
|
|
variables:
|
|
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX2=on"
|
|
|
|
build:linux:cross:x86-64:clang-12:avx512dq:
|
|
extends: build:linux:cross:x86-64:clang-12:default
|
|
variables:
|
|
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX512DQ=on"
|
|
|
|
# # Sanitizers (Disabled because ASAN hangs and MSAN requires instrumented libc++)
|
|
# build:linux:cross:x86-64:clang-12:default:asan:
|
|
# extends: build:linux:cross:x86-64:clang-12:default
|
|
# variables:
|
|
# EIGEN_CI_ADDITIONAL_ARGS:
|
|
# -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-fsanitize=address,undefined
|
|
# -DEIGEN_TEST_CUSTOM_LINKER_FLAGS=-fsanitize=address,undefined
|
|
|
|
# build:linux:cross:x86-64:clang-12:default:msan:
|
|
# extends: build:linux:cross:x86-64:clang-12:default
|
|
# variables:
|
|
# EIGEN_CI_ADDITIONAL_ARGS:
|
|
# -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-fsanitize=memory
|
|
# -DEIGEN_TEST_CUSTOM_LINKER_FLAGS=-fsanitize=memory
|
|
|
|
######## CUDA ##################################################################
|
|
|
|
.build:linux:cuda:
|
|
extends: .build:linux:cross:x86-64
|
|
variables:
|
|
# Additional flags passed to the cuda compiler.
|
|
EIGEN_CI_CUDA_CXX_FLAGS: ""
|
|
# Compute architectures present in the GitLab CI runners.
|
|
EIGEN_CI_CUDA_COMPUTE_ARCH: "50;75"
|
|
EIGEN_CI_BUILD_TARGET: buildtests_gpu
|
|
EIGEN_CI_TEST_CUDA_CLANG: "off"
|
|
EIGEN_CI_ADDITIONAL_ARGS:
|
|
-DEIGEN_TEST_CUDA=on
|
|
-DEIGEN_CUDA_CXX_FLAGS=${EIGEN_CI_CUDA_CXX_FLAGS}
|
|
-DEIGEN_CUDA_COMPUTE_ARCH=${EIGEN_CI_CUDA_COMPUTE_ARCH}
|
|
-DEIGEN_TEST_CUDA_CLANG=${EIGEN_CI_TEST_CUDA_CLANG}
|
|
tags:
|
|
- eigen-runner
|
|
- linux
|
|
# Requires intel runner for cuda docker image support.
|
|
- x86-64
|
|
|
|
# NVidia no longer provides docker images < CUDA 11.0.3.
|
|
# # GCC-7, CUDA-9.2
|
|
# build:linux:cuda-9.2:gcc-7:
|
|
# extends: .build:linux:cuda
|
|
# image: nvidia/cuda:9.2-devel-ubuntu18.04
|
|
# variables:
|
|
# # cuda 9.2 doesn't support sm_75, so lower to 70.
|
|
# EIGEN_CI_CUDA_COMPUTE_ARCH: "50;70"
|
|
# EIGEN_CI_C_COMPILER: gcc-7
|
|
# EIGEN_CI_CXX_COMPILER: g++-7
|
|
|
|
# # Clang-10, CUDA-9.2
|
|
# build:linux:cuda-9.2:clang-10:
|
|
# extends: build:linux:cuda-9.2:gcc-7
|
|
# variables:
|
|
# EIGEN_CI_C_COMPILER: clang-10
|
|
# EIGEN_CI_CXX_COMPILER: clang++-10
|
|
# EIGEN_CI_TEST_CUDA_CLANG: "on"
|
|
|
|
# # GCC-8, CUDA-10.2
|
|
# build:linux:cuda-10.2:gcc-8:
|
|
# extends: .build:linux:cuda
|
|
# image: nvidia/cuda:10.2-devel-ubuntu18.04
|
|
# variables:
|
|
# EIGEN_CI_C_COMPILER: gcc-8
|
|
# EIGEN_CI_CXX_COMPILER: g++-8
|
|
|
|
# # Clang-10, CUDA-10.2
|
|
# build:linux:cuda-10.2:clang-10:
|
|
# extends: build:linux:cuda-10.2:gcc-8
|
|
# variables:
|
|
# EIGEN_CI_C_COMPILER: clang-10
|
|
# EIGEN_CI_CXX_COMPILER: clang++-10
|
|
# EIGEN_CI_TEST_CUDA_CLANG: "on"
|
|
|
|
# GCC-10, CUDA-11.4
|
|
build:linux:cuda-11.4:gcc-10:
|
|
extends: .build:linux:cuda
|
|
image: nvidia/cuda:11.4.3-devel-ubuntu20.04
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: gcc-10
|
|
EIGEN_CI_CXX_COMPILER: g++-10
|
|
|
|
# Clang-12, CUDA-11.4
|
|
build:linux:cuda-11.4:clang-12:
|
|
extends: build:linux:cuda-11.4:gcc-10
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: clang-12
|
|
EIGEN_CI_CXX_COMPILER: clang++-12
|
|
EIGEN_CI_TEST_CUDA_CLANG: "on"
|
|
|
|
# GCC-10, CUDA-12.2
|
|
build:linux:cuda-12.2:gcc-10:
|
|
extends: .build:linux:cuda
|
|
image: nvidia/cuda:12.2.0-devel-ubuntu20.04
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: gcc-10
|
|
EIGEN_CI_CXX_COMPILER: g++-10
|
|
|
|
# Clang-12, CUDA-12.2
|
|
build:linux:cuda-12.2:clang-12:
|
|
extends: build:linux:cuda-12.2:gcc-10
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: clang-12
|
|
EIGEN_CI_CXX_COMPILER: clang++-12
|
|
EIGEN_CI_TEST_CUDA_CLANG: "on"
|
|
|
|
# ######## HIP ###################################################################
|
|
# Note: these are currently build-only, until we get an AMD-supported runner.
|
|
|
|
# ROCm HIP
|
|
build:linux:rocm-latest:gcc-10:
|
|
extends: .build:linux:cross
|
|
image: rocm/dev-ubuntu-18.04:latest
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: gcc-10
|
|
EIGEN_CI_CXX_COMPILER: g++-10
|
|
EIGEN_CI_BUILD_TARGET: buildtests_gpu
|
|
EIGEN_CI_ADDITIONAL_ARGS: -DEIGEN_TEST_HIP=on
|
|
tags:
|
|
- eigen-runner
|
|
- linux
|
|
- x86-64
|
|
|
|
######## arm ###################################################################
|
|
|
|
.build:linux:cross:arm:
|
|
extends: .build:linux:cross
|
|
variables:
|
|
EIGEN_CI_TARGET_ARCH: arm
|
|
EIGEN_CI_CROSS_TARGET_TRIPLE: arm-linux-gnueabihf
|
|
EIGEN_CI_ADDITIONAL_ARGS: >
|
|
-DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv7-a;-mfpu=neon-vfpv4
|
|
|
|
build:linux:cross:arm:gcc-10:default:
|
|
extends: .build:linux:cross:arm
|
|
variables:
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf
|
|
EIGEN_CI_CROSS_C_COMPILER: arm-linux-gnueabihf-gcc-10
|
|
EIGEN_CI_CROSS_CXX_COMPILER: arm-linux-gnueabihf-g++-10
|
|
|
|
build:linux:cross:arm:clang-12:default:
|
|
extends: .build:linux:cross:arm
|
|
variables:
|
|
EIGEN_CI_INSTALL: clang-12
|
|
EIGEN_CI_C_COMPILER: clang-12
|
|
EIGEN_CI_CXX_COMPILER: clang++-12
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf clang-12
|
|
|
|
######## aarch64 ###############################################################
|
|
|
|
.build:linux:cross:aarch64:
|
|
extends: .build:linux:cross
|
|
variables:
|
|
EIGEN_CI_TARGET_ARCH: aarch64
|
|
EIGEN_CI_CROSS_TARGET_TRIPLE: aarch64-linux-gnu
|
|
EIGEN_CI_ADDITIONAL_ARGS: -DEIGEN_TEST_CUSTOM_CXX_FLAGS=-march=armv8.2-a+fp16
|
|
|
|
build:linux:cross:aarch64:gcc-10:default:
|
|
extends: .build:linux:cross:aarch64
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: gcc-10
|
|
EIGEN_CI_CXX_COMPILER: g++-10
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-aarch64-linux-gnu
|
|
EIGEN_CI_CROSS_C_COMPILER: aarch64-linux-gnu-gcc-10
|
|
EIGEN_CI_CROSS_CXX_COMPILER: aarch64-linux-gnu-g++-10
|
|
|
|
build:linux:cross:aarch64:clang-12:default:
|
|
extends: .build:linux:cross:aarch64
|
|
variables:
|
|
EIGEN_CI_INSTALL: clang-12
|
|
EIGEN_CI_C_COMPILER: clang-12
|
|
EIGEN_CI_CXX_COMPILER: clang++-12
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-aarch64-linux-gnu clang-12
|
|
|
|
######## ppc64le ###############################################################
|
|
|
|
.build:linux:cross:ppc64le:
|
|
extends: .build:linux:cross
|
|
variables:
|
|
EIGEN_CI_TARGET_ARCH: ppc64le
|
|
EIGEN_CI_CROSS_TARGET_TRIPLE: powerpc64le-linux-gnu
|
|
|
|
build:linux:cross:ppc64le:gcc-10:default:
|
|
extends: .build:linux:cross:ppc64le
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: gcc-10
|
|
EIGEN_CI_CXX_COMPILER: g++-10
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-powerpc64le-linux-gnu
|
|
EIGEN_CI_CROSS_C_COMPILER: powerpc64le-linux-gnu-gcc-10
|
|
EIGEN_CI_CROSS_CXX_COMPILER: powerpc64le-linux-gnu-g++-10
|
|
# Temporarily disable MMA until #2457 is resolved.
|
|
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_ALTIVEC_DISABLE_MMA=1"
|
|
|
|
build:linux:cross:ppc64le:clang-12:default:
|
|
extends: .build:linux:cross:ppc64le
|
|
variables:
|
|
EIGEN_CI_INSTALL: clang-12
|
|
EIGEN_CI_C_COMPILER: clang-12
|
|
EIGEN_CI_CXX_COMPILER: clang++-12
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-powerpc64le-linux-gnu clang-12
|
|
|
|
######## MR Smoke Tests ########################################################
|
|
|
|
build:linux:cross:x86-64:gcc-10:default:smoketest:
|
|
extends: build:linux:cross:x86-64:gcc-10:default
|
|
variables:
|
|
EIGEN_CI_BUILD_TARGET: buildsmoketests
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
|
|
build:linux:cross:x86-64:clang-12:default:smoketest:
|
|
extends: build:linux:cross:x86-64:clang-12:default
|
|
variables:
|
|
EIGEN_CI_BUILD_TARGET: buildsmoketests
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|