Rasmus Munk Larsen
58c44ef36d
GPU: Add library dispatch module (DeviceMatrix, cuBLAS, cuSOLVER)
...
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
2026-04-09 19:05:25 -07:00
Rasmus Munk Larsen
6a9405bf7a
GPU: Raise CUDA/HIP minimum and remove legacy guards
...
- Raise CUDA minimum from 9.0 to 11.4 (sm_70/Volta).
- Raise HIP minimum to GFX906 (Vega 20/MI50) / ROCm 5.6.
- Remove EIGEN_HAS_{CUDA,HIP,GPU}_FP16 guards — FP16 is always available
on sm_70+ and GFX906+.
- Remove obsolete __HIP_ARCH_HAS_* preprocessor branches.
- C++14 cleanup: remove pre-C++14 workarounds in GPU code.
- Fix NVCC warnings (deprecated register keyword, unreachable code,
tautological comparisons).
- Fix HIP test execution on gfx1151.
- Update CI configuration for new minimum versions.
2026-04-09 15:21:39 -07:00
Antonio Sánchez
abc3d6014d
Fix CUDA+Clang build warnings.
...
libeigen/eigen!2241
2026-03-04 01:41:01 -08:00
Rasmus Munk Larsen
a95440de17
Remove obsolete bench/ and btl/ directories
...
libeigen/eigen!2217
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-02-25 20:19:45 -08:00
Rasmus Munk Larsen
9810969c0f
Suppress false-positive GCC and clang warnings in test builds
...
libeigen/eigen!2187
Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com >
2026-02-22 14:54:15 -08:00
Antonio Sánchez
01a919d13f
Fix AOCL cmake issues.
...
libeigen/eigen!2084
2025-12-01 03:32:22 +00:00
Ulysses Apokin
a73501cc76
Added versioning for shared libraries.
...
libeigen/eigen!2080
Co-authored-by: Ulysses Apokin <ulysses@altlinux.org >
2025-11-27 22:18:42 +00:00
sharad bhaskar
8a1083e9bf
Aocl integration updated
...
libeigen/eigen!1952
2025-11-24 17:20:42 +00:00
Antonio Sánchez
dbe9e6961e
Fix BLAS/LAPACK DLL usage on Windows.
2025-10-10 00:09:45 +00:00
Antonio Sánchez
027dc5bc8d
Extend the range of supported CMake package config versions
2025-09-23 19:52:35 +00:00
Sergiu Deitsch
4ac3e71f77
CMake: Require at least C++14
2025-09-22 15:45:39 +00:00
Antonio Sánchez
a627f72cd6
Add "Version" file and update version.
2025-09-20 02:08:59 +00:00
Sean McBride
ac1b29f823
Set CMake POLICY CMP0177 to NEW
2025-07-07 16:37:01 +00:00
Duy Tran
6dbbf0a843
CMake: only create uninstall target when eigen is top level
2025-05-02 23:17:42 +00:00
Guilhem Saurel
33b04fe518
CMake: add install-doc target
2025-03-14 00:35:00 +00:00
C. Antonio Sanchez
66f7f51b7e
Disable fno-check-new on clang.
2025-02-18 21:24:47 -08:00
Antonio Sánchez
a0591cbc93
Fix doxygen-generated pages
2025-02-11 01:20:27 +00:00
Pengzhou0810
e986838464
Add LoongArch64 architecture LSX support.(build/test )
2025-01-20 18:37:44 +00:00
daizhirui
ff174f7926
fix issue: cmake package does not set include path correctly
2024-05-07 21:21:08 +00:00
Antonio Sánchez
9700fc847a
Reorganize CMake and minimize configuration for non-top-level builds.
2024-05-01 17:42:53 +00:00
Antonio Sánchez
98620b58c3
Eliminate FindCUDA cmake warning.
2024-02-29 20:49:41 +00:00
Antonio Sánchez
176821f2f7
Avoid building docs if cross-compiling or not top level.
2023-10-23 17:55:01 +00:00
Alejandro Acosta
24d15e086f
[SYCL-2020] Add test to validate SYCL in Eigen core.
2023-07-28 15:45:08 +00:00
Chip Kerchner
e887196d9d
Undo cmake pools changes
2023-03-17 16:06:26 +00:00
Antonio Sánchez
555cec17ed
Fix parsing of command-line arguments when already specified as a cmake list.
2023-03-16 22:47:38 +00:00
Chip Kerchner
7db19baabe
Remove pools if cmake is less than 3.11
2023-03-16 16:54:45 +00:00
Timofey Pushkin
e577f43ab2
Set CMAKE_* cache variables only when Eigen is a top-level project
2023-03-07 14:39:45 +00:00
Mehdi Goli
b523120687
[SYCL-2020 Support] Enabling Intel DPCPP Compiler support to Eigen
2023-01-16 07:04:08 +00:00
Antonio Sánchez
f5364331eb
Fix some cmake issues.
2022-09-02 16:43:14 +00:00
Matthew Sterrett
7a3b667c43
Add support for AVX512-FP16 for vectorizing half precision math
2022-08-17 18:15:21 +00:00
Francesco Romano
68e03ab240
Add uninstall target only if not already defined.
2022-05-05 17:43:08 +00:00
Antonio Sánchez
9a14d91a99
Fix AVX512 builds with MSVC.
2022-03-18 16:04:53 +00:00
Antonio Sánchez
cf82186416
Adds new CMake Options for controlling build components.
2022-03-05 05:49:45 +00:00
Erik Schultheis
2d39da8af5
space separated EIGEN_TEST_CUSTOM_CXX_FLAGS
2021-12-13 15:27:33 +00:00
Erik Schultheis
495ffff945
removed helper cmake macro and don't use deprecated COMPILE_FLAGS anymore.
2021-12-09 23:09:56 +00:00
Erik Schultheis
ec2fd0f7ed
Require recent GCC and MSCV and removed EIGEN_HAS_CXX14 and some other feature test macros
2021-12-01 00:48:34 +00:00
Erik Schultheis
4a76880351
Updated CMake
...
This patch updates the minimum required CMake version to 3.10 and removes the EIGEN_TEST_CXX11 CMake option, including corresponding logic.
2021-11-29 20:24:20 +00:00
jenswehner
675b72e44b
added clang format
2021-11-09 23:49:01 +01:00
Fabian Keßler
19cacd3ecb
optimize cmake scripts for subproject use
2021-10-28 16:08:02 +02:00
Antonio Sanchez
846d34384a
Rename EIGEN_CUDA_FLAGS to EIGEN_CUDA_CXX_FLAGS
...
Also add a missing space for clang.
2021-09-24 20:15:55 -07:00
Antonio Sanchez
7b00e8b186
Clean up CUDA CMake files.
...
- Unify test/CMakeLists.txt and unsupported/test/CMakeLists.txt
- Added `EIGEN_CUDA_FLAGS` that are appended to the set of flags passed
to the cuda compiler (nvcc or clang).
The latter is to support passing custom flags (e.g. `-arch=` to nvcc,
or to disable cuda-specific warnings).
2021-09-24 14:43:59 -07:00
Antonio Sanchez
76bb29c0c2
Add -mfma for AVX512DQ tests.
2021-09-22 14:06:29 -07:00
Rasmus Munk Larsen
1239adfcab
Remove -fabi-version=6 flag from AVX512 builds. It was added to fix builds with gcc 4.9, but these don't even work today, and the flag breaks compilation with newer versions of gcc.
2021-09-16 16:16:47 -07:00
Sergiu Deitsch
bf426faf93
cmake: populate package registry by default
2021-09-02 17:36:01 +00:00
Sergiu Deitsch
e8beb4b990
cmake: use ARCH_INDEPENDENT versioning if available
2021-09-02 16:08:58 +00:00
Sergiu Deitsch
7bc90cee7d
cmake: remove unused interface definitions
2021-09-02 15:41:56 +02:00
Sergiu Deitsch
f2984cd077
cmake: remove deprecated package config variables
2021-09-01 19:05:51 +02:00
Antonio Sanchez
eeacbd26c8
Bump CMake files to at least c++11.
...
Removed all configurations that explicitly test or set the c++ standard
flags. The only place the standard is now configured is at the top of
the main `CMakeLists.txt` file, which can easily be updated (e.g. if
we decide to move to c++14+). This can also be set via command-line using
```
> cmake -DCMAKE_CXX_STANDARD 14
```
Kept the `EIGEN_TEST_CXX11` flag for now - that still controls whether to
build/run the `cxx11_*` tests. We will likely end up renaming these
tests and removing the `CXX11` subfolder.
2021-08-25 20:07:48 +00:00
Daniel N. Miller (APD)
09d7122468
Do not build shared libs if not supported
2021-08-06 20:48:32 +00:00
Antonio Sanchez
f44f05532d
Fix CMake directory issues.
...
Allows absolute and relative paths for
- `INCLUDE_INSTALL_DIR`
- `CMAKEPACKAGE_INSTALL_DIR`
- `PKGCONFIG_INSTALL_DIR`
Type should be `PATH` not `STRING`. Contrary to !211 , these don't
seem to be made absolute if user-defined - according to the doc any
directories should use `PATH` type, which allows a file dialog
to be used via the GUI. It also better handles file separators.
If user provides an absolute path, it will be made relative to
`CMAKE_INSTALL_PREFIX` so that the `configure_packet_config_file` will
work.
Fixes #2155 and #2269 .
2021-07-07 17:24:57 +00:00