有谁知道为什么 CUDA 版本 12 的 cuSPARSE 文档引用了
cusparseDcsrsv2_analysis
和 cusparseDcsrsv2_solve
,但这些函数在其实际的 cusparse.h
库中找不到?
他们的CUDA版本10确实有
cusparse.h
中的功能。似乎 CSR
和 SV
(因此称为“csrsv”)的所有类型和函数都在版本 12 中消失了。
我已经向 NVIDIA 提交了一张票,但我想知道解决方法。 cuSPARSE 中的 CSR 格式矩阵到向量乘法函数是否有等效函数?
cuSparse 有一个新的通用 API,包括
cusparseSpSV()
和 cusparseSpMV()
(OP 提到“矩阵到向量乘法”,即“mv”,而不是“sv”)。通用意味着有一个包装器 cusparseSpMatDescr_t
可以描述许多不同的稀疏矩阵格式,包括 CSR。这样,像 cusparseSpSV
这样的函数的名称/接口就独立于稀疏格式,这使得在自己编写通用 API 时更容易在 cuSparse API 上构建。
事实上,文档中仍然提到了
cusparseDcsrsv2_analysis()
(在示例here中找到它)似乎是 Nvidia 方面的疏忽,OP 正确地报告了这一点。
请参阅库组织和功能,了解通用 API 的高级描述。另请注意这些功能如何在 CUDA 11 中标记为“已弃用”,因此它们在 CUDA 12 中的消失并不令人意外。