问题标签 [cusolver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1841 浏览

cuda - 仅使用 CUDA 计算奇异值

我正在尝试使用cusolverDnSgesvdCUDA 7.0 的新例程来计算奇异值。完整代码报告如下:

如果我要求计算完整的 SVD(用jobu = 'A'and注释行jobvt = 'A'),一切正常。如果我只要求计算奇异值(与jobu = 'N'和一致jobvt = 'N'),则cusolverDnSgesvd返回

请注意,在这种情况下devInfo = 0,我无法发现无效参数。

另请注意,文档 PDF 缺少有关rwork参数的信息,因此我将其作为虚拟参数处理。

0 投票
1 回答
11926 浏览

cuda - 用 CUDA 求解密集线性系统 AX = B

我可以使用新的 cuSOLVER 库 (CUDA 7) 来求解以下形式的线性系统吗

哪里A和是X稠密矩阵?BNxN

0 投票
1 回答
2722 浏览

c++ - 使用 cuda 7.0 RC 中的 cusolver 计算特征值和特征向量

我正在尝试使用 CUDA 7.0 RC 中发布的 cuSolver 计算最大的特征值/特征向量对。问题是我得到了 CUSOLVER_INTERNAL_ERROR,我不知道该怎么办。

这是我得心应手的东西,用来调用 cuda/cusparse/cusolver 函数。

这是我的代码

我已经为初始特征值猜测(即 max_lambda - 或 cuSolver 库教程中的 mu0)、初始特征向量猜测(h_eigenvector0 或 d_eigenvector0)、容差(tol)、甚至最大迭代量(maxite)尝试了不同的选择。

我已经检查了稀疏矩阵是否正确编写(对我来说似乎是正确的)。我还用 Matlab 检查了返回的特征向量,它们完全不同(我认为它们不应该如此)。

我不知道我还能做什么,但如果有人这样做,请告诉我!!

提前致谢。

0 投票
2 回答
5009 浏览

cuda - 使用 CUDA 进行 Cholesky 分解

我正在尝试使用 cuSOLVER 库实现 Cholesky 分解。我是一个初学者 CUDA 程序员,我一直指定块大小和网格大小,但我无法找出程序员如何使用 cuSOLVER 函数显式设置它。

这是文档:http ://docs.nvidia.com/cuda/cusolver/index.html#introduction

QR 分解是使用 cuSOLVER 库实现的(参见此处的示例:http://docs.nvidia.com/cuda/cusolver/index.html#ormqr-example1 ,即使没有设置上述两个参数。

总结一下,我有以下问题

  • 如何使用 cuSOLVER 库设置参数:块大小和网格大小?
  • NVIDIA 文档中提到的 QR 示例代码是如何做到的?
0 投票
1 回答
2253 浏览

cuda - 对 cusolverDn 的未定义引用

我正在尝试运行 cuda 7.0 中可用的 cuSolver 库。我在使用 cuSolver 库时遇到了一个问题,该库必须非常容易修复,但我在这里寻求一些帮助。

我查看了很多发布的示例,我特别选择了 JackOLantern 中的这个:

使用 CUDA 并行实现多个 SVD

我刚刚将其缩减为 kernel_0.cu:

我使用与 JackOlantern 相同的 Utilities.cuh 和 Utilities.cu。我将其编译为(明确地说):

我得到的是:

如果我注释掉 cusolverDnCreate 和 cusolverDnDestroy,它编译得很好,所以库显然包含在内。

我错过了什么简单和基本的观点?我已经四处寻找,但我无法修复它。谢谢那里。

0 投票
0 回答
189 浏览

cuda - 调用多个 CUDA SVD(在 cuSolver 中)

我将使用 CUDA 7.0 (cuSolver) 的 SVD 例程,我需要在拆分矩阵的所有部分上执行 SVD(例如,将矩阵划分为 2x2 块,我想并行执行四倍的 SVD)。这个想法是多次调用与矩阵细分相关的内核。所以:

但是这样对内核的调用是串行的,而不是并行的。由于无法从内核调用这些函数,我该如何并行化这些调用?

0 投票
1 回答
389 浏览

cuda - 如何使用 CUDA 的 cuSolver 重复前向和后向求解?

最近我开发了一种新方法。新方法与 CUDA(20 到 40FPS)完美配合,我已经成功地对其进行了测试。当我尝试与旧方法进行比较时,问题就来了。旧方法是在 CPU 上实现的。它首先进行 LU 分解A = LU,然后运行向前+向后的步骤来求解 ( LU ) x = b。旧方法的好处是A不会改变,所以 LU 分解只能进行一次,开销只是前向+后向求解。A稀疏对称的正定。(我相信这是在许多问题中相当普遍的做法,例如,固定域中的流体模拟。)

为了公平起见,我想在 GPU 上实现旧方法。但是我在 cuSolver 或 cuSparse 中没有发现任何稀疏的 LU 分解。我应该由其他一些库来计算它吗?我应该使用 cusolverRfSolve() 求解吗?如果是这样,为什么不输入LU ,但输入PQ?有没有类似于我正在尝试做的工作示例?

即使旧方法在 GPU 上运行速度较慢,我也很乐意看到它,这使我的新方法非常有用。

0 投票
0 回答
194 浏览

c++ - 使用 cuSolver 时出现链接器错误

我正在尝试使用 cuda 7.0 中可用的 cuSolver 库运行 SVD 示例。

当我运行此代码时:

使用 CUDA 并行实现多个 SVD

我收到以下错误:

我正在使用 VS2010,并且该cusolverDn库似乎已包含在内。

我错过了什么?提前致谢。

编辑:

VS 设置:调试 >> 项目属性 >> 配置属性 >> CUDA C/C++ >> 附加包含目录 >> ...\NVIDIA GPU Computing Toolkit\CUDA\v7.0\include

调试 >> 项目属性 >> 配置属性 >> CUDA 链接器 >> 附加库目录 >> ...\NVIDIA GPU Computing Toolkit\CUDA\v7.0\lib\x64;%(AdditionalLibraryDirectories)

0 投票
1 回答
511 浏览

cuda - 使用 NVIDIA 的 cuSolver 库的 Pycuda 中的分段错误

我正在尝试制作一个受scikits-cuda库启发的 pycuda 包装器,对于 Nvidia 的新 cuSolver 库中提供的一些操作,首先我需要通过 cusolverDnSgetrf() op 执行 LU 分解。但在此之前我需要“工作区”参数,cuSolver 提供的用于获取该参数的工具名为 cusolverDnSgetrf_bufferSize(); 但是当我使用它时,只是崩溃并返回一个分段错误。我做错了什么?

注意:我已经用 scikits-cuda 处理了这个操作,但是 cuSolver 库使用了很多这种参数,我想比较 scikits-cuda 和我的实现与新库之间的用法。


0 投票
1 回答
1318 浏览

python - cuSolver 在 pycuda 上的 getrs 函数无法正常工作

我正在尝试为 Nvidia 的新 cuSolver 库中提供的一些操作制作一个受 scikits-cuda 库启发的 pycuda 包装器。我想通过 LU 分解求解 AX=B 形式的线性系统,首先使用 scikits-cuda 中的cublasSgetrfBatched方法执行该方法,这给了我分解 LU;然后通过该因式分解,我想使用我想要包装的cuSolve中的 cusolverDnSgetrs 来求解系统,当我执行计算返回状态 3 时,假设给我答案的矩阵不会改变,但 *devInfo 为零,查看 cusolver 的文档说:

CUSOLVER_STATUS_INVALID_VALUE=向函数传递了一个不支持的值或参数(例如,一个负向量大小)。


输出:

[0]

3

我做错了什么?