安装¶
TensorMesh 可在 Linux、macOS 和 Windows 上运行。唯一的硬性要求是 Python ≥ 3.10 和 PyTorch ≥ 2.0;其余所有依赖(NumPy、SciPy、meshio、torch-sla 等)都会由 pip 自动安装。
如果你打算使用 GPU 后端,请在安装 TensorMesh 之前 先安装启用了 CUDA 的 PyTorch 版本——请按照官方的 PyTorch 安装选择器,针对你的平台/CUDA 版本获取正确的安装命令。
通过 PyPI 安装¶
推荐通过 PyPI 来安装 TensorMesh:
pip install tensormesh-fem # CPU stack (SciPy + PyTorch Krylov)
pip install "tensormesh-fem[gpu]" # + all PyPI solver backends (cuDSS + PyAMG)
如果您拥有 NVIDIA GPU 且需要最快的 CUDA 直接求解器,请使用第二种形式 —— [gpu] 额外依赖通过 torch-sla 引入 cuDSS(以及 PyAMG)。由于 [...] 是 shell 通配符,因此需要加引号;若只需其中一种后端,请参阅 Sparse solvers and GPU acceleration 了解各后端的详细说明。
两种形式都会安装所有必需的依赖,包括 torch-sla —— 这是支撑 TensorMesh 求解器的可微稀疏线性代数库。基础的 pip install tensormesh-fem 安装 CPU 稀疏栈(SciPy + 设备无关的原生 PyTorch Krylov 后端);后文 Sparse solvers and GPU acceleration 中有完整的额外依赖矩阵([cudss] / [pyamg] / [gpu])以及如何验证您的机器上哪些后端可用的说明。
从源码安装¶
如需进行开发工作,或获取尚未发布的最新改动,请克隆仓库并以可编辑模式安装:
git clone https://github.com/camlab-ethz/TensorMesh.git
cd TensorMesh
pip install -e .
-e(可编辑)标志意味着对源码树的修改会被自动识别,无需重新安装。若要同时安装测试依赖:
pip install -e ".[test]"
稀疏求解器与 GPU 加速¶
为 TensorMesh 求解器提供动力的稀疏线性代数层位于一个独立的库 torch-sla 中,这样它便能独立演进并服务于其他项目。torch-sla 是一个 硬性的、导入时即需满足 的依赖——缺少它 tensormesh.sparse 将无法导入——并且它是 CPU 和 GPU 稀疏求解的统一入口。当前和未来的所有求解器工作都会先落地到 torch-sla;我们建议保持其为最新版本。
基础的 tensormesh-fem wheel 包会拉取 CPU 栈(SciPy + 原生 PyTorch Krylov —— 后者也可直接在 CUDA/ROCm 设备上运行)。如需添加其他求解器后端,请安装以下镜像额外依赖之一:
安装命令 |
新增的后端 |
适用场景 |
|---|---|---|
|
CPU 栈 |
默认配置; |
|
cuDSS(CUDA) |
最快的 GPU 直接求解器(LU / Cholesky / LDLT)。 |
|
PyAMG (CPU) |
用于大型偏微分方程系统的代数多重网格 V 循环。 |
|
所有 PyPI 后端 |
便捷额外依赖 —— 安装 |
这些镜像了上游 torch-sla 的额外依赖([cudss] / [pyamg] / [all])—— 安装 tensormesh-fem[gpu] 完全等价于 pip install tensormesh-fem torch-sla[all],只是一步完成的写法。另外两个后端 —— strumpack(可移植的多波前直接求解器,支持 CPU/CUDA/ROCm)和 amgx(NVIDIA AmgX)—— 是以预编译 wheel 包形式在 torch-sla 的 GitHub Releases 上发布的,而非 PyPI。
查看已安装的内容¶
安装完成后,你可以查看当前机器上有哪些后端可用——对于尚不可用的后端,还会给出一行安装提示:
>>> import torch_sla
>>> torch_sla.show_backends()
torch-sla backend status (CUDA: available)
scipy [CPU] available
pytorch [CPU/CUDA] available
cudss [CUDA] available
pyamg [CPU] available
amgx [CUDA] not available — pip install torch-sla[amgx]
strumpack [CPU/CUDA/ROCm] not available — pip install torch-strumpack
完整的后端/方法矩阵,以及如何在求解时选择非默认后端,请参阅 稀疏求解器。
其他 extras¶
另有几个用于可选功能的较小 extras:
Extra |
安装命令 |
|---|---|
用于示例 notebook 的 Plotly |
|
测试套件(pytest、pytest-cov) |
|
另有两个包通常也很有用,但 未 被声明为 extras——需要时请直接安装它们:
pip install gmsh # external mesh generation / .msh I/O
pip install pyvista # interactive 3D visualization