c - CUDA 中的稀疏矩阵加法

标签 c cuda gpu sparse-matrix

我正在考虑使用 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/

相关文章:

c - 短数组的最佳排序函数

c - 在 C 中的 while 循环条件中使用赋值运算符

c - 本地内存是否比 CUDA 中的共享内存慢?

python - TensorFlow的map_fn仅在CPU上运行

c - 在 GPU 显存不够时使用 RAM

c++ - boost::compute 是否支持 const 修饰符?

c - 如果用户输入 "*"则添加 1,或者如果用户输入 ""到 C 数组中则添加 0

c - mongodb c-api 中的 $exists 查询

cuda - 在 CUDA 中求解一般稀疏线性系统

c++ - 如何通过推力将主机 vector 复制到设备 vector