简介
eigen是一个用于求解线性代数的库,纯头文件实现。
这里的安装,主要指的是构建测试代码所需要的依赖项(包括使用其他后端工具求解)
如果仅使用eigen本体,可以都不需要。
获取源码
1
| git clone https://gitlab.com/libeigen/eigen.git
|
安装依赖项
Boost
1 2 3 4 5 6
| //更新apt信息 sudo apt update //安装boost编译依赖 sudo apt install build-essential python3 libbz2-dev libz-dev libicu-dev //安装boost开发库 sudo apt install libboost-all-dev
|
Cuda
1 2 3 4 5 6 7 8 9 10 11 12 13
| //安装cuda-13.1 wget https://developer.download.nvidia.com/compute/cuda/repos/wsl-ubuntu/x86_64/cuda-wsl-ubuntu.pin sudo mv cuda-wsl-ubuntu.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/13.1.1/local_installers/cuda-repo-wsl-ubuntu-13-1-local_13.1.1-1_amd64.deb sudo dpkg -i cuda-repo-wsl-ubuntu-13-1-local_13.1.1-1_amd64.deb sudo cp /var/cuda-repo-wsl-ubuntu-13-1-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt-get update sudo apt-get -y install cuda-toolkit-13-1
//设置环境变量 //在.bashrc下增加 export PATH=/usr/local/cuda-13.1/bin:$PATH export LD_LIBRARY_PATH=/usr/local/cuda-13.1/lib64:$LD_LIBRARY_PATH
|
相关求解器
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| # 安装直接稀疏求解器相关库 # 包含 CHOLMOD, UMFPACK, KLU, SPQR sudo apt install libsuitesparse-dev # SuperLU sudo apt install libsuperlu-dev
# 安装 METIS 图划分库 sudo apt install libmetis-dev
# Adolc 自动微分库 sudo apt install libadolc-dev
# MPFR 用于多精度浮点计算的C库 sudo apt install libmpfr-dev
# FFTW 离散傅里叶变换 sudo apt install libfftw3-dev
# 基于 MPFR 的 C++ 封装库,更符合习惯的、面向对象的方式 sudo apt install libmpfrc++-dev
|
查看编译器支持的指令集
1 2 3 4
| # 查看CPU信息 cat /proc/cpuinfo | grep flags | head -1 # 查看GCC支持的标志 gcc -march=native -Q --help=target | grep enabled
|
编译参数
1 2 3 4 5
| //设置C++标准17 CMAKE_CXX_STANDARD 17
//设置显卡对于的计算能力 EIGEN_CUDA_COMPUTE_ARCH 89
|
编译测试集
1 2 3 4 5 6
| make buildtests -j6
//生成编译信息,供clangd使用 compiledb -n make buildtests //compiledb 安装 pip install compiledb
|