NVIDIA cuDSS (预览版): 用于直接稀疏求解器的高性能 CUDA 库#
NVIDIA cuDSS (预览版) 是一个用于稀疏矩阵的 GPU 加速线性求解器库。它提供了求解以下类型线性方程组的算法
其中稀疏矩阵为 \(A\),右侧项为 \(B\),未知解为 \(X\) (可以是矩阵或向量)。
cuDSS 功能允许矩阵属性和求解器配置的灵活性,以及 CUDA 流等执行参数的灵活性。
注意: 由于该库以预览版发布,API 在后续版本中可能会发生更改。
下载: developer.nvidia.com/cudss-downloads
提供反馈: cuDSS-EXTERNAL-Group@nvidia.com
示例: cuDSS 示例 1, cuDSS 示例 2, cuDSS 示例 3 cuDSS 示例 4
主要特性和属性#
实数/复数 通用/对称/正定 稀疏矩阵
非均匀批处理(求解多个不同大小的不同系统)
用于值的单精度和双精度数据类型以及用于索引的
int
数据类型单右侧项和多右侧项
多阶段执行,包括三个主要阶段:重排序和符号分解、数值分解和求解
用于重排序和分解阶段的不同算法
重分解
迭代精化
用户定义的设备内存处理程序和内存池
混合主机/设备内存模式/算法
混合主机/设备执行模式
多 GPU 多节点 (MGMN) 执行,具有用户可定义的通信层
多线程 (MT) 执行,具有用户可定义的线程层
用于默认重排序算法的多线程重排序
同步 API(当未启用主机内存/执行模式时,分解和求解为异步)
非确定性计算(无位级可重复性)
支持#
支持的配置:单 GPU,多 GPU 多节点 (MGMN)
支持的 SM 架构:所有以 Pascal 开头的
SM
(SM_87
和SM_101
仅适用于 aarch64 + Jetson 构建)支持的操作系统:
Linux
,Windows
支持的 CPU 架构:
x86_64
,ARM (SBSA)
,ARM (aarch64/Jetson) for Orin and Thor devices
支持的通信后端 (对于 MGMN 模式):预构建用于 OpenMPI 4.x 和 NCCL 2.x + 任何 GPU 感知流感知用户定义
支持的线程后端 (对于 MT 模式):预构建用于 GNU OpenMP (Linux) 和 VCOMP (Windows) + 任何用户定义