mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Add Eigen/GPU module: A standalone GPU library dispatch layer where DeviceMatrix<Scalar> operations map 1:1 to cuBLAS/cuSOLVER calls. CPU and GPU solvers coexist in the same binary with compatible syntax. Core infrastructure: - DeviceMatrix<Scalar>: RAII dense column-major GPU memory wrapper with async host transfer (fromHost/toHost) and CUDA event-based cross-stream synchronization. - GpuContext: Unified execution context owning a CUDA stream + cuBLAS handle + cuSOLVER handle. Thread-local default with explicit override via setThreadLocal(). Stream-borrowing constructor for integration. - DeviceBuffer: Typed RAII device allocation with move semantics. cuBLAS dispatch (expression syntax): - GEMM: d_C = d_A.adjoint() * d_B (cublasXgemm) - TRSM: d_X = d_A.triangularView<Lower>().solve(d_B) (cublasXtrsm) - SYMM/HEMM: d_C = d_A.selfadjointView<Lower>() * d_B (cublasXsymm) - SYRK/HERK: d_C = d_A * d_A.adjoint() (cublasXsyrk) cuSOLVER dispatch: - GpuLLT: Cached Cholesky factorization (cusolverDnXpotrf + Xpotrs) - GpuLU: Cached LU factorization (cusolverDnXgetrf + Xgetrs) - Solver chaining: auto x = d_A.llt().solve(d_B) - Solver expressions with .device(ctx) for explicit stream control. CI: Bump CUDA container to Ubuntu 22.04 (CMake 3.22), GCC 10->11, Clang 12->14. Bump cmake_minimum_required to 3.17 for FindCUDAToolkit. Tests: gpu_cublas.cpp, gpu_cusolver_llt.cpp, gpu_cusolver_lu.cpp, gpu_device_matrix.cpp, gpu_library_example.cu Benchmarks: bench_gpu_solvers.cpp, bench_gpu_chaining.cpp, bench_gpu_batching.cpp
392 lines
14 KiB
YAML
392 lines
14 KiB
YAML
# Base configuration for linux cross-compilation.
|
|
.build:linux:cross:
|
|
needs: []
|
|
extends: .common:linux:cross
|
|
stage: build
|
|
variables:
|
|
EIGEN_CI_BUILD_TARGET: buildtests
|
|
script:
|
|
- . ci/scripts/build.linux.script.sh
|
|
tags:
|
|
- saas-linux-2xlarge-amd64
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
|
|
- if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
|
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"
|
|
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-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
|
|
|
|
# GCC-13 (strict support for _Float16)
|
|
build:linux:cross:x86-64:gcc-13:default:
|
|
extends: .build:linux:cross:x86-64
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: gcc-13
|
|
EIGEN_CI_CXX_COMPILER: g++-13
|
|
EIGEN_CI_CROSS_INSTALL: g++-13-x86-64-linux-gnu
|
|
EIGEN_CI_CROSS_C_COMPILER: x86_64-linux-gnu-gcc-13
|
|
EIGEN_CI_CROSS_CXX_COMPILER: x86_64-linux-gnu-g++-13
|
|
|
|
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"
|
|
|
|
build:linux:cross:x86-64:gcc-13:avx512fp16:
|
|
extends: build:linux:cross:x86-64:gcc-13:default
|
|
variables:
|
|
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX512FP16=on -DEIGEN_TEST_AVX512DQ=on -DEIGEN_TEST_F16C=on"
|
|
|
|
# Clang-14 (stable recent version)
|
|
build:linux:cross:x86-64:clang-14:default:
|
|
extends: .build:linux:cross:x86-64
|
|
variables:
|
|
EIGEN_CI_INSTALL: clang-14
|
|
EIGEN_CI_C_COMPILER: clang-14
|
|
EIGEN_CI_CXX_COMPILER: clang++-14
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-x86-64-linux-gnu clang-14
|
|
|
|
build:linux:cross:x86-64:clang-14:avx2:
|
|
extends: build:linux:cross:x86-64:clang-14:default
|
|
variables:
|
|
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX2=on"
|
|
|
|
build:linux:cross:x86-64:clang-14:avx512dq:
|
|
extends: build:linux:cross:x86-64:clang-14:default
|
|
variables:
|
|
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX512DQ=on"
|
|
|
|
# Generic vector extension backend.
|
|
build:linux:cross:x86-64:clang-19:generic:avx512dq:
|
|
extends: build:linux:cross:x86-64:clang-14:default
|
|
variables:
|
|
EIGEN_CI_INSTALL: clang-19
|
|
EIGEN_CI_C_COMPILER: clang-19
|
|
EIGEN_CI_CXX_COMPILER: clang++-19
|
|
EIGEN_CI_CROSS_INSTALL: g++-14-x86-64-linux-gnu clang-19
|
|
EIGEN_CI_ADDITIONAL_ARGS: >
|
|
-DEIGEN_TEST_CUSTOM_CXX_FLAGS=-mfma;-mavx512dq;-DEIGEN_VECTORIZE_GENERIC=1
|
|
|
|
# Nightly full test suite in C++20 mode.
|
|
build:linux:cross:x86-64:clang-19:cxx20:nightly:
|
|
extends: .build:linux:cross:x86-64
|
|
variables:
|
|
EIGEN_CI_INSTALL: clang-19
|
|
EIGEN_CI_C_COMPILER: clang-19
|
|
EIGEN_CI_CXX_COMPILER: clang++-19
|
|
EIGEN_CI_CROSS_INSTALL: g++-14-x86-64-linux-gnu clang-19
|
|
EIGEN_CI_ADDITIONAL_ARGS: -DCMAKE_CXX_STANDARD=20
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
- if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
|
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"
|
|
|
|
build:linux:docs:
|
|
extends: .build:linux:cross
|
|
variables:
|
|
EIGEN_CI_TARGET_ARCH: any
|
|
EIGEN_CI_BUILD_TARGET: doc
|
|
EIGEN_CI_INSTALL: ca-certificates clang flex python3 bison graphviz
|
|
EIGEN_CI_C_COMPILER: clang
|
|
EIGEN_CI_CXX_COMPILER: clang++
|
|
EIGEN_CI_BEFORE_SCRIPT: ". ci/scripts/build_and_install_doxygen.sh Release_1_13_2"
|
|
tags:
|
|
- saas-linux-medium-amd64
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
|
|
- if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
|
|
- if: $CI_PIPELINE_SOURCE == "push" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"
|
|
|
|
|
|
######## Sanitizers ############################################################
|
|
|
|
# ASAN/UBSAN builds are split into official/unsupported because the
|
|
# instrumented executables are too large to upload as a single artifact.
|
|
.build:linux:cross:x86-64:clang-19:default:asan-ubsan:
|
|
extends: .build:linux:cross:x86-64
|
|
# Disable cache for ASAN builds: instrumented .o files are so large that
|
|
# downloading the cache can take longer than a clean build from scratch.
|
|
cache: []
|
|
timeout: 2h
|
|
variables:
|
|
EIGEN_CI_INSTALL: clang-19 libclang-rt-19-dev
|
|
EIGEN_CI_C_COMPILER: clang-19
|
|
EIGEN_CI_CXX_COMPILER: clang++-19
|
|
EIGEN_CI_CROSS_INSTALL: g++-14-x86-64-linux-gnu clang-19 libclang-rt-19-dev
|
|
EIGEN_CI_ADDITIONAL_ARGS: >-
|
|
-DEIGEN_TEST_CUSTOM_CXX_FLAGS=-fsanitize=address,undefined;-fno-omit-frame-pointer;-fno-sanitize-recover=undefined
|
|
-DEIGEN_TEST_CUSTOM_LINKER_FLAGS=-fsanitize=address,undefined
|
|
|
|
build:linux:cross:x86-64:clang-19:default:asan-ubsan:official:
|
|
extends: .build:linux:cross:x86-64:clang-19:default:asan-ubsan
|
|
variables:
|
|
EIGEN_CI_BUILD_TARGET: BuildOfficial
|
|
|
|
build:linux:cross:x86-64:clang-19:default:asan-ubsan:unsupported:
|
|
extends: .build:linux:cross:x86-64:clang-19:default:asan-ubsan
|
|
variables:
|
|
EIGEN_CI_BUILD_TARGET: BuildUnsupported
|
|
|
|
######## NVHPC #################################################################
|
|
|
|
# NVHPC (nvc++) uses NVIDIA's HPC SDK container image with the compilers
|
|
# pre-installed. We override EIGEN_CI_INSTALL to avoid trying to apt-get
|
|
# install the compiler.
|
|
# Split into official/unsupported because nvc++ is so slow that the full
|
|
# build exceeds the 3-hour GitLab SaaS shared-runner timeout.
|
|
.build:linux:x86-64:nvhpc-26.1:
|
|
extends: .build:linux:cross:x86-64
|
|
image: nvcr.io/nvidia/nvhpc:26.1-devel-cuda13.1-ubuntu24.04
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: nvc
|
|
EIGEN_CI_CXX_COMPILER: nvc++
|
|
EIGEN_CI_INSTALL: ""
|
|
EIGEN_CI_CROSS_INSTALL: ""
|
|
# NVHPC's compiler frontend is very memory-hungry with template-heavy code.
|
|
# The 2xlarge runner has 128 GB, so 16 jobs gives ~8 GB per process.
|
|
# The shuffled-batch build strategy spreads memory-hungry targets across
|
|
# batches, preventing simultaneous OOM-prone compilations.
|
|
EIGEN_CI_BUILD_JOBS: "16"
|
|
EIGEN_CI_FALLBACK_JOBS: "4"
|
|
|
|
build:linux:x86-64:nvhpc-26.1:default:official:
|
|
extends: .build:linux:x86-64:nvhpc-26.1
|
|
variables:
|
|
EIGEN_CI_BUILD_TARGET: BuildOfficial
|
|
|
|
build:linux:x86-64:nvhpc-26.1:default:unsupported:
|
|
extends: .build:linux:x86-64:nvhpc-26.1
|
|
variables:
|
|
EIGEN_CI_BUILD_TARGET: BuildUnsupported
|
|
|
|
######## 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: "70;75"
|
|
EIGEN_CI_BUILD_TARGET: buildtests_gpu
|
|
EIGEN_CI_TEST_CUDA_CLANG: "off"
|
|
EIGEN_CI_TEST_CUDA_NVC: "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}
|
|
-DEIGEN_TEST_CUDA_NVC=${EIGEN_CI_TEST_CUDA_NVC}
|
|
tags:
|
|
# Build on regular linux to limit GPU cost.
|
|
- saas-linux-2xlarge-amd64
|
|
|
|
# GCC-11, CUDA-12.2
|
|
build:linux:cuda-12.2:gcc-11:
|
|
extends: .build:linux:cuda
|
|
image: nvidia/cuda:12.2.0-devel-ubuntu22.04
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: gcc-11
|
|
EIGEN_CI_CXX_COMPILER: g++-11
|
|
|
|
# Clang-14, CUDA-12.2
|
|
build:linux:cuda-12.2:clang-14:
|
|
extends: build:linux:cuda-12.2:gcc-11
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: clang-14
|
|
EIGEN_CI_CXX_COMPILER: clang++-14
|
|
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-24.04:6.3.1
|
|
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
|
|
cache: [] # Disable cache for ROCm, since it fails whenever the image updates.
|
|
|
|
|
|
######## 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
|
|
-DCMAKE_SYSTEM_NAME=Linux
|
|
-DCMAKE_CROSSCOMPILING_EMULATOR=qemu-arm-static;-L;/usr/arm-linux-gnueabihf
|
|
|
|
build:linux:cross:arm:gcc-10:default:
|
|
extends: .build:linux:cross:arm
|
|
variables:
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf qemu-user-static
|
|
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-14:default:
|
|
extends: .build:linux:cross:arm
|
|
variables:
|
|
EIGEN_CI_INSTALL: clang-14
|
|
EIGEN_CI_C_COMPILER: clang-14
|
|
EIGEN_CI_CXX_COMPILER: clang++-14
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-arm-linux-gnueabihf clang-14 qemu-user-static
|
|
|
|
######## 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
|
|
tags:
|
|
- saas-linux-large-arm64
|
|
|
|
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-14:default:
|
|
extends: .build:linux:cross:aarch64
|
|
variables:
|
|
EIGEN_CI_INSTALL: clang-14
|
|
EIGEN_CI_C_COMPILER: clang-14
|
|
EIGEN_CI_CXX_COMPILER: clang++-14
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-aarch64-linux-gnu clang-14
|
|
|
|
######## ppc64le ###############################################################
|
|
|
|
.build:linux:cross:ppc64le:
|
|
extends: .build:linux:cross
|
|
variables:
|
|
EIGEN_CI_TARGET_ARCH: ppc64le
|
|
EIGEN_CI_CROSS_TARGET_TRIPLE: powerpc64le-linux-gnu
|
|
EIGEN_CI_ADDITIONAL_ARGS: >-
|
|
-DCMAKE_SYSTEM_NAME=Linux
|
|
-DCMAKE_CROSSCOMPILING_EMULATOR=qemu-ppc64le-static;-L;/usr/powerpc64le-linux-gnu
|
|
|
|
build:linux:cross:ppc64le:gcc-14:default:
|
|
extends: .build:linux:cross:ppc64le
|
|
variables:
|
|
EIGEN_CI_CROSS_INSTALL: g++-14-powerpc64le-linux-gnu qemu-user-static
|
|
EIGEN_CI_CROSS_C_COMPILER: powerpc64le-linux-gnu-gcc-14
|
|
EIGEN_CI_CROSS_CXX_COMPILER: powerpc64le-linux-gnu-g++-14
|
|
|
|
build:linux:cross:ppc64le:clang-16:default:
|
|
extends: .build:linux:cross:ppc64le
|
|
variables:
|
|
EIGEN_CI_C_COMPILER: clang-16
|
|
EIGEN_CI_CXX_COMPILER: clang++-16
|
|
EIGEN_CI_CROSS_INSTALL: g++-14-powerpc64le-linux-gnu clang-16 qemu-user-static
|
|
|
|
######## loongarch64 #################################################
|
|
|
|
.build:linux:cross:loongarch64:
|
|
extends: .build:linux:cross
|
|
variables:
|
|
EIGEN_CI_TARGET_ARCH: loongarch64
|
|
EIGEN_CI_CROSS_TARGET_TRIPLE: loongarch64-linux-gnu
|
|
|
|
# GCC-14 (minimum on Ubuntu 24)
|
|
build:linux:cross:loongarch64:gcc-14:default:
|
|
extends: .build:linux:cross:loongarch64
|
|
variables:
|
|
EIGEN_CI_CROSS_INSTALL: g++-14-loongarch64-linux-gnu qemu-user-static
|
|
EIGEN_CI_CROSS_C_COMPILER: loongarch64-linux-gnu-gcc-14
|
|
EIGEN_CI_CROSS_CXX_COMPILER: loongarch64-linux-gnu-g++-14
|
|
EIGEN_CI_ADDITIONAL_ARGS: >-
|
|
-DCMAKE_SYSTEM_NAME=Linux
|
|
-DCMAKE_CROSSCOMPILING_EMULATOR=qemu-loongarch64-static;-L;/usr/loongarch64-linux-gnu
|
|
-DEIGEN_TEST_LSX=on
|
|
|
|
######## 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"
|
|
tags:
|
|
- saas-linux-medium-amd64
|
|
|
|
build:linux:cross:x86-64:clang-14:default:smoketest:
|
|
extends: build:linux:cross:x86-64:clang-14:default
|
|
variables:
|
|
EIGEN_CI_BUILD_TARGET: buildsmoketests
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
tags:
|
|
- saas-linux-medium-amd64
|
|
|
|
build:linux:aarch64:gcc-10:default:smoketest:
|
|
extends: build:linux:cross:aarch64:gcc-10:default
|
|
variables:
|
|
EIGEN_CI_BUILD_TARGET: buildsmoketests
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
tags:
|
|
- saas-linux-medium-arm64
|
|
|
|
######## Sanitizer Smoke Tests #################################################
|
|
|
|
build:linux:cross:x86-64:clang-14:sanitizer:smoketest:
|
|
extends: build:linux:cross:x86-64:clang-14:default
|
|
variables:
|
|
EIGEN_CI_BUILD_TARGET: buildsmoketests
|
|
EIGEN_CI_INSTALL: clang-14 libclang-rt-14-dev
|
|
EIGEN_CI_CROSS_INSTALL: g++-10-x86-64-linux-gnu clang-14 libclang-rt-14-dev
|
|
EIGEN_CI_ADDITIONAL_ARGS: >-
|
|
-DEIGEN_TEST_CUSTOM_CXX_FLAGS=-fsanitize=address,undefined;-fno-sanitize-recover=address;-fno-omit-frame-pointer
|
|
-DEIGEN_TEST_CUSTOM_LINKER_FLAGS=-fsanitize=address,undefined
|
|
rules:
|
|
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
|
|
tags:
|
|
- saas-linux-large-amd64
|
|
allow_failure: true
|
|
timeout: 30m
|