问题标签 [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.
cuda - 仅使用 CUDA 计算奇异值
我正在尝试使用cusolverDnSgesvd
CUDA 7.0 的新例程来计算奇异值。完整代码报告如下:
如果我要求计算完整的 SVD(用jobu = 'A'
and注释行jobvt = 'A'
),一切正常。如果我只要求计算奇异值(与jobu = 'N'
和一致jobvt = 'N'
),则cusolverDnSgesvd
返回
请注意,在这种情况下devInfo = 0
,我无法发现无效参数。
另请注意,文档 PDF 缺少有关rwork
参数的信息,因此我将其作为虚拟参数处理。
cuda - 用 CUDA 求解密集线性系统 AX = B
我可以使用新的 cuSOLVER 库 (CUDA 7) 来求解以下形式的线性系统吗
哪里A
和是X
稠密矩阵?B
NxN
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 检查了返回的特征向量,它们完全不同(我认为它们不应该如此)。
我不知道我还能做什么,但如果有人这样做,请告诉我!!
提前致谢。
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 示例代码是如何做到的?
cuda - 对 cusolverDn 的未定义引用
我正在尝试运行 cuda 7.0 中可用的 cuSolver 库。我在使用 cuSolver 库时遇到了一个问题,该库必须非常容易修复,但我在这里寻求一些帮助。
我查看了很多发布的示例,我特别选择了 JackOLantern 中的这个:
我刚刚将其缩减为 kernel_0.cu:
我使用与 JackOlantern 相同的 Utilities.cuh 和 Utilities.cu。我将其编译为(明确地说):
我得到的是:
如果我注释掉 cusolverDnCreate 和 cusolverDnDestroy,它编译得很好,所以库显然包含在内。
我错过了什么简单和基本的观点?我已经四处寻找,但我无法修复它。谢谢那里。
cuda - 调用多个 CUDA SVD(在 cuSolver 中)
我将使用 CUDA 7.0 (cuSolver) 的 SVD 例程,我需要在拆分矩阵的所有部分上执行 SVD(例如,将矩阵划分为 2x2 块,我想并行执行四倍的 SVD)。这个想法是多次调用与矩阵细分相关的内核。所以:
但是这样对内核的调用是串行的,而不是并行的。由于无法从内核调用这些函数,我该如何并行化这些调用?
cuda - 如何使用 CUDA 的 cuSolver 重复前向和后向求解?
最近我开发了一种新方法。新方法与 CUDA(20 到 40FPS)完美配合,我已经成功地对其进行了测试。当我尝试与旧方法进行比较时,问题就来了。旧方法是在 CPU 上实现的。它首先进行 LU 分解A = LU,然后运行向前+向后的步骤来求解 ( LU ) x = b。旧方法的好处是A不会改变,所以 LU 分解只能进行一次,开销只是前向+后向求解。A是稀疏且对称的正定。(我相信这是在许多问题中相当普遍的做法,例如,固定域中的流体模拟。)
为了公平起见,我想在 GPU 上实现旧方法。但是我在 cuSolver 或 cuSparse 中没有发现任何稀疏的 LU 分解。我应该由其他一些库来计算它吗?我应该使用 cusolverRfSolve() 求解吗?如果是这样,为什么不输入L和U ,但输入P和Q?有没有类似于我正在尝试做的工作示例?
即使旧方法在 GPU 上运行速度较慢,我也很乐意看到它,这使我的新方法非常有用。
c++ - 使用 cuSolver 时出现链接器错误
我正在尝试使用 cuda 7.0 中可用的 cuSolver 库运行 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)
cuda - 使用 NVIDIA 的 cuSolver 库的 Pycuda 中的分段错误
我正在尝试制作一个受scikits-cuda库启发的 pycuda 包装器,对于 Nvidia 的新 cuSolver 库中提供的一些操作,首先我需要通过 cusolverDnSgetrf() op 执行 LU 分解。但在此之前我需要“工作区”参数,cuSolver 提供的用于获取该参数的工具名为 cusolverDnSgetrf_bufferSize(); 但是当我使用它时,只是崩溃并返回一个分段错误。我做错了什么?
注意:我已经用 scikits-cuda 处理了这个操作,但是 cuSolver 库使用了很多这种参数,我想比较 scikits-cuda 和我的实现与新库之间的用法。
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
我做错了什么?