我正在考虑使用 CUDA C 解决涉及稀疏矩阵加法的特定问题。
docs似乎只讨论稀疏对象和密集对象之间的操作。
这让我想到:稀疏-稀疏加法是如此微不足道,可能只是使用“+”或类似的情况;或未实现稀疏稀疏加法。哪个是正确的,我在哪里可以找到文档?
最佳答案
CUSPARSE 有 some routines可以对两个都是稀疏矩阵的操作数进行加法和乘法运算。
您可以使用 cusparse<t>csrgeam
使用 CUSPARSE 执行稀疏矩阵 - 稀疏矩阵加法function :
This function performs following matrix-matrix operation
C=α∗A+β∗B
where A, B, and C are m×n sparse matrices (defined in CSR storage format ...
虽然密集矩阵加法相当微不足道(可能是大约 3 行代码,无论是串行还是并行),但我个人不会将两个 CSR 矩阵的稀疏加法放在相同的微不足道级别,特别是如果目标是并行执行。您可以尝试编写自己的例程;我不会。
关于c - CUDA 中的稀疏矩阵加法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27482896/