c++ - CUDA:复标量 * 双稀疏矩阵 * 双向量
问题描述
y = y + s*A*x
我需要一个在 CUDA上执行操作的函数。哪里y
是复向量(cuDoubleComplex
例如), x
是双向量,A
是双稀疏矩阵(csr格式)并且s
是复标量。
问题:是否有任何库可以执行该操作?
我想跳过所有复杂的转换,除非你说服我它可以有效地完成。
附言
不幸的是,它不能由 cusparse 函数完成cusparseCsrmvEx()
解决方案
是否有任何库可以执行该操作?
几乎可以肯定不是。你需要做的类型提升几乎可以排除这种情况。你可以做的是这样的:
cusparseDcsrmv
产生 z0 = A*x- 自定义内核或推力操作以产生 z1 = complex(z0)
- cublas
Zaxpy
计算 y = y + s * z1
更好的是编写一个自定义内核来将 (2) 和 (3) 融合在一起。你的选择。
推荐阅读
- python - Django - 初始表单字段值未显示
- python - 如何在 python 中使用 Gurobi 的 MIPGap 和 TimeLimit?
- python - 如何获得 2 个不同的 django 模型字段的差异?
- data-structures - 使用链表尝试复杂度
- python - 使用 Singularity 容器解释器的 Python 代码完成 IntelliSense
- ios - Apple 钱包通行证更新通知悄无声息地传递,没有通知横幅
- regex - 如何使正则表达式在找到每个匹配项时不消耗文本?
- shell - 如何显示所有同名文件的日期?
- php - 如何在一段时间内停止所有当前用户的数据库输入
- reactjs - 如何使用反应钩子在全局状态的叶值更改时有条件地渲染组件