【发布时间】:2017-12-09 01:38:13
【问题描述】:
在我的 CUDA 代码中,我使用的是 cusparse<t>gtsv() 函数(更准确地说,是 cusparseZgtsv 和 cusparseZgtsvStridedBatch 函数)。
在documentaion 中说,该函数求解方程 A*x=alpha *B。我的问题是——什么是阿尔法?我没有找到它作为输入参数。我不知道如何指定它。它总是等于1吗?
【问题讨论】:
-
我认为文档是错误的。 gtsv 通常求解 AX=B,其中 b 包含一个或多个 RHS
-
我同意@talonmies(虽然我还没有得到确认)并已向 NVIDIA 提交了一个内部文档错误以更新文档。
-
@RobertCrovella 感谢提交。另一件事是求解器不使用值
dl(0)和du(m-1)(低对角线的第一个值和上对角线的最后一个值)。在文档中,据说这些值应设置为零。实际上,这些值可以是任意的。也值得提交 -
您可能会观察到它们在当前实现中并不重要,但其他变体或未来实现可能期望或要求它们为零。这让我觉得这与您在这里报告的问题不同。我不会认为这是一个缺陷。在任何情况下,您都可以在 developer.nvidia.com 上自行提交错误。API 完全有可能需要一些您认为不必要或不明智的东西。不遵守 API 要求意味着您的代码可能会被破坏。
标签: cuda