发行说明#
cuSPARSELt v0.7.0#
新特性:
引入 Blackwell 支持 (
SM 10.0和SM 12.0)。为
SM 10.0和SM 12.0架构的以下数据类型组合添加了新的块缩放内核E4M3输入/输出,FP32Tensor Core 计算;矩阵 C 的数据类型可以是FP16或BF16E4M3输入,FP16输出,FP32Tensor Core 计算E4M3输入,BF16输出,FP32Tensor Core 计算E4M3输入,FP32输出,FP32Tensor Core 计算E2M1输入/输出,FP32Tensor Core 计算;矩阵 C 的数据类型可以是FP16或BF16E2M1输入,FP16输出,FP32Tensor Core 计算E2M1输入,BF16输出,FP32Tensor Core 计算E2M1输入,FP32输出,FP32Tensor Core 计算
API 变更:
- 引入了以下 API 变更来设置块缩放内核的缩放因子
添加了新的枚举器类型
cusparseLtMatmulMatrixScale_t以指定定义如何解释缩放因子指针的缩放模式。添加了新的
cusparseLtMatmulAlgSelection_t枚举器值CUSPARSELT_MATMUL_{A,B,C,D, D_OUT}_SCALE_MODE以指定类型为cusparseLtMatmulMatrixScale_t的相应矩阵的缩放模式。CUSPARSELT_MATMUL_{A,B,C,D, D_OUT}_SCALE_POINTER以设置指向标量或相应矩阵的缩放因子张量的设备指针,具体取决于矩阵的缩放模式。
为枚举器类型
cusparseLtSplitKMode_t添加了新值CUSPARSELT_HEURISTICCUSPARSELT_DATAPRALLELCUSPARSELT_SPLITKCUSPARSELT_STREAMK
已解决的问题
修复了导致崩溃或挂起的多 GPU 配置。
兼容性说明:
cuSPARSELt 需要 CUDA 12.8 或更高版本,以及兼容的驱动程序(参见 CUDA 驱动程序发行说明)。
已移除对 Ubuntu 18.04、RHEL 7 和 CentOs 7 的支持。
cuSPARSELt 数据类型
cusparseLtHandle_t、cusparseLtMatDescriptor_t、cusparseLtMatmulDescAttribute_t、cusparseLtMatmulAlgSelection_t和cusparseLtMatmulPlan_t的大小已减小到 512 字节。
已知问题
cusparseLtSpMMAompressedSize2()分配的内存略多于所需内存。
cuSPARSELt v0.6.3#
已解决的问题
如果使用
cusparseLtSpMMACompressSize2()和cusparseLtSpMMACompress(),稀疏 GEMM 可能会在Arm64上产生不正确的结果。
兼容性说明:
添加对 Ubuntu 24.04 的支持。
cuSPARSELt v0.6.2#
新特性:
引入 Orin 支持 (
SM 8.7)。改进了
SM 8.0的以下内核的性能FP16输入/输出,FP32Tensor Core 累加BF16输入/输出,FP32Tensor Core 累加INT8输入,FP16输出,INT32Tensor Core 计算INT8输入,BF16输出,INT32Tensor Core 计算INT8输入,INT32输出,INT32Tensor Core 计算
API 变更:
添加了一个新的枚举器值
cusparseLtMatmulDescAttribute_t::CUSPARSELT_MATMUL_SPARSE_MAT_POINTER,用于设置指向已剪枝稀疏矩阵的指针。
cuSPARSELt v0.6.1#
依赖项:
静态链接到 CUDA 驱动程序库(Linux 上的
libcuda.so和 Windows 上的cuda.lib)已被移除。
兼容性说明:
矩阵大小的约束(
cusparseLtStructuredDescriptorInit和cusparseLtDenseDescriptorInit)已放宽。矩阵C和D的每个维度(行和列)的最大元素数量限制为 2097120。
已解决的问题
cusparseLtSpMMACompressedSize()和cusparseLtSpMMACompressedSize2()需要的内存略少。稀疏 GEMM 可能会在
SM 8.0上产生不正确的结果。
cuSPARSELt v0.6.0#
新特性:
引入 Hopper 支持 (
SM 9.0)。为
SM 9.0架构的以下数据类型组合添加了新的内核FP16输入/输出,FP16Tensor Core 计算E4M3输入/输出,FP32Tensor Core 计算;矩阵 C 的数据类型可以是FP16或BF16E4M3输入,FP16输出,FP32Tensor Core 计算E4M3输入,BF16输出,FP32Tensor Core 计算E4M3输入,FP32输出,FP32Tensor Core 计算E5M2输入/输出,FP32Tensor Core 计算;矩阵 C 的数据类型可以是FP16或BF16E5M2输入,FP16输出,FP32Tensor Core 计算E5M2输入,BF16输出,FP32Tensor Core 计算E5M2输入,FP32输出,FP32Tensor Core 计算
驱动程序要求:
cuSPARSELt 需要 CUDA 驱动程序
r535 TRD7、r550 TRD1或更高版本。
API 变更:
以下 API 已弃用:
cusparseLtSpMMAPrune2()、cusparseLtSpMMAPruneCheck2()、cusparseLtSpMMACompressedSize2()、cusparseLtSpMMACompress2()。
依赖项:
cuSPARSELt 现在需要链接到 CUDA 驱动程序库(Linux 上的
libcuda.so和 Windows 上的cuda.lib)。
已知问题
cusparseLtSpMMAompressedSize()和cusparseLtSpMMAompressedSize2()分配的内存略多于所需内存。此问题将在下一个版本中解决。
cuSPARSELt v0.5.2#
新特性:
为以下数据类型组合添加了一个新内核:
INT8输入、BF16输出、INT32Tensor Core 累加符号在静态库中被混淆。
兼容性说明:
添加了对 RHEL 7 和 CentOs 7 的支持。
在
cusparseLtMatmulSearch()中,Split-k 在更广泛的问题维度范围内启用。CUSPARSE_COMPUTE_16F、CUSPARSE_COMPUTE_TF32、CUSPARSE_COMPUTE_TF32_FAST枚举器已从cusparseComputeType枚举器中移除,并替换为CUSPARSE_COMPUTE_32F,以更好地表达张量核心级别计算的精度。
cuSPARSELt v0.5.0#
新特性:
为以下数据类型组合添加了一个新内核:
INT8输入、INT32输出、INT32Tensor Core 累加
兼容性说明:
cuSPARSELt 需要 CUDA 12.0 或更高版本,以及兼容的驱动程序(参见 CUDA 驱动程序发行说明)。
cusparseLtMatmulAlgSelectionInit()不保证算法 IDalg的顺序与 v0.4.0 中相同。
cuSPARSELt v0.4.0#
新特性:
引入
SM 8.9兼容性cuSPARSELt 描述符的初始化时间已显著改进
cusparseLtMatmulSearch()的效率已提高移除任何内部内存分配
添加了一个新内核,用于支持以下数据类型组合:
INT8输入、INT32Tensor Core 计算、FP16输出添加了
cusparseLtGetVersion()和cusparseLtGetProperty()函数来检索库版本
API 变更:
cusparseLtSpMMACompressedSize()、cusparseLtSpMMACompress()、cusparseLtSpMMACompressedSize2()、cusparseLtSpMMACompress2()有一个新的参数,用于避免内部内存分配,并支持用户提供的设备内存缓冲区用于压缩
兼容性说明:
cuSPARSELt 需要 CUDA 驱动程序 470.xx (CUDA 11.4) 或更高版本
cuSPARSELt 现在使用
cudart库的静态版本已移除对 Ubuntu 16.04 (gcc-5) 的支持
cuSPARSELt v0.3.0#
新特性:
添加了对 alpha 和 beta 标量向量(每通道缩放)的支持
添加了对 GeLU 缩放的支持
添加了对 Split-K 模式的支持
完全支持日志记录功能和 NVTX 范围
API 变更:
cusparseLtMatmulGetWorkspace()API,用于获取cusparseLtMatmul()所需的工作区大小
已解决的问题:
修复了关于结构化矩阵大小约束的文档问题
cuSPARSELt v0.2.0#
新特性:
添加了对激活函数和偏置向量的支持
ReLU + 所有内核的上限和阈值设置
用于
INT8输入/输出、INT32Tensor Core 计算内核的 GeLU
添加了对批量稀疏 GEMM 的支持
单个稀疏矩阵 / 多个稠密矩阵 (广播)
多个稀疏和稠密矩阵
批量偏置向量
兼容性说明:
cuSPARSELt 不再需要
nvrtc库对 Ubuntu 16.04 (gcc-5) 的支持现已弃用,并将在未来的版本中移除
cuSPARSELt v0.1.0#
新特性:
添加了对
Windows x86-64和Linux Arm64平台的支持引入
SM 8.6兼容性添加了新内核
FP32输入/输出,TF32Tensor Core 计算TF32输入/输出,TF32Tensor Core 计算
SM 8.0内核的性能更好(高达 90% SOL)用于压缩和剪枝的新 API 与
cusparseLtMatmulPlan_t解耦
兼容性说明:
cuSPARSELt 需要 CUDA 11.2 或更高版本
cusparseLtMatDescriptor_t必须使用cusparseLtMatDescriptorDestroy函数销毁静态库和共享库都必须与
nvrtc库链接在 Linux 系统上,静态库和共享库都必须与
dl库链接
已解决的问题:
CUSPARSELT_MATMUL_SEARCH_ITERATIONS现在已正确处理
cuSPARSELt v0.0.1#
新特性:
初始版本
支持
Linux x86_64和SM 8.0提供以下混合精度计算内核
FP16输入/输出,FP32Tensor Core 累加BF16输入/输出,FP32Tensor Core 累加INT8输入/输出,INT32Tensor Core 计算
兼容性说明:
cuSPARSELt 需要 CUDA 11.0 或更高版本