NVIDIA cuDSS (预览版): 用于直接稀疏求解器的高性能 CUDA 库#

NVIDIA cuDSS (预览版) 是一个用于稀疏矩阵的 GPU 加速线性求解器库。它提供了求解以下类型线性方程组的算法

\[A X = B\]

其中稀疏矩阵为 \(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_87SM_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) + 任何用户定义

索引#