【问题标题】:CUDA tridiagonal solver function (cusparse)CUDA 三对角求解器函数 (cusparse)
【发布时间】:2017-12-09 01:38:13
【问题描述】:

在我的 CUDA 代码中,我使用的是 cusparse<t>gtsv() 函数(更准确地说,是 cusparseZgtsvcusparseZgtsvStridedBatch 函数)。

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


【解决方案1】:

我进行了一些测试(解决了一些随机方程组,其中三对角矩阵总是对角占优,并使用向量乘法的直接矩阵检查了我的解)。 在当前版本中看起来总是 alpha = 1,所以可以忽略它。我怀疑它会在以后的版本中作为输入参数添加。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-14
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多