cuSPARSELt:用于稀疏矩阵乘法的高性能CUDA库#

NVIDIA cuSPARSELt 是一个高性能的CUDA库,专门用于通用矩阵-矩阵运算,其中至少有一个操作数是稀疏矩阵:

D = Activation(\alpha op(A) \cdot op(B) + \beta op(C) + bias)

其中 alpha, beta 表示原地操作,例如转置/非转置,而 alpha, beta 是标量或向量。

cuSPARSELt API 提供了算法/操作选择、尾处理以及矩阵特性(包括内存布局、对齐方式和数据类型)的灵活性。

下载地址: developer.nvidia.com/cusparselt/downloads

提供反馈: Math-Libs-Feedback@nvidia.com

示例: cuSPARSELt 示例 1, cuSPARSELt 示例 2

博客文章:

主要特性#

  • NVIDIA稀疏MMA张量核心支持

  • Mixed-precision computation support:

    Input A/B

    Input C

    Output D

    Compute

    Block scaled

    Support SM arch

    FP32

    FP32

    FP32

    FP32

    No

    8.0, 8.6, 8.7 9.0, 10.0, 12.0

    BF16

    BF16

    BF16

    FP32

    FP16

    FP16

    FP16

    FP32

    FP16

    FP16

    FP16

    FP16

    No

    9.0

    INT8

    INT8

    INT8

    INT32

    No

    8.0, 8.6, 8.7 9.0, 10.0, 12.0

    INT32

    INT32

    FP16

    FP16

    BF16

    BF16

    INT8

    INT8

    INT8

    INT32

    No

    8.0, 8.6, 8.7 9.0, 10.0, 12.0

    INT32

    INT32

    FP16

    FP16

    BF16

    BF16

    E4M3

    FP16

    E4M3

    FP32

    No

    9.0, 10.0, 12.0

    BF16

    E4M3

    FP16

    FP16

    BF16

    BF16

    FP32

    FP32

    E5M2

    FP16

    E5M2

    FP32

    No

    9.0, 10.0, 12.0

    BF16

    E5M2

    FP16

    FP16

    BF16

    BF16

    FP32

    FP32

    E4M3

    FP16

    E4M3

    FP32

    A/B/D_OUT_SCALE = VEC64_UE8M0

    D_SCALE = 32F

    10.0, 12.0

    BF16

    E4M3

    FP16

    FP16

    A/B_SCALE = VEC64_UE8M0

    BF16

    BF16

    FP32

    FP32

    E2M1

    FP16

    E2M1

    FP32

    A/B/D_SCALE = VEC32_UE4M3

    D_SCALE = 32F

    10.0, 12.0

    BF16

    E2M1

    FP16

    FP16

    A/B_SCALE = VEC32_UE4M3

    BF16

    BF16

    FP32

    FP32

  • 矩阵剪枝和压缩功能

  • 激活函数、偏置向量和输出缩放

  • 批量计算(单次运行处理多个矩阵)

  • GEMM Split-K 模式

  • 自动调优功能(参见 cusparseLtMatmulSearch()

  • NVTX范围标记和日志记录功能

支持#

  • 支持的SM架构: SM 8.0, SM 8.6, SM 8.7, SM 8.9, SM 9.0, SM 10.0, SM 12.0

  • 支持的CPU架构和操作系统

操作系统

CPU架构

Windows

x86_64

Linux

x86_64, Arm64

索引#