首页 > 解决方案 > CUDA:复标量 * 双稀疏矩阵 * 双向量

问题描述

y = y + s*A*x我需要一个在 CUDA上执行操作的函数。哪里y是复向量(cuDoubleComplex例如), x是双向量,A是双稀疏矩阵(csr格式)并且s是复标量。

问题:是否有任何库可以执行该操作?

我想跳过所有复杂的转换,除非你说服我它可以有效地完成。

附言

不幸的是,它不能由 cusparse 函数完成cusparseCsrmvEx()

标签: c++mathcuda

解决方案


是否有任何库可以执行该操作?

几乎可以肯定不是。你需要做的类型提升几乎可以排除这种情况。你可以做的是这样的:

  1. cusparseDcsrmv产生 z0 = A*x
  2. 自定义内核或推力操作以产生 z1 = complex(z0)
  3. cublasZaxpy计算 y = y + s * z1

更好的是编写一个自定义内核来将 (2) 和 (3) 融合在一起。你的选择。


推荐阅读