仅在GPU上求解小对称正定Ax = b

Pau*_*eny 8 algorithm cuda gpu linear-algebra solver

我正在尝试在实时3D建模中优化应用程序.应用程序的计算部分几乎完全在CUDA中的GPU上运行.该应用需要小(6x6)双精度对称正定线性系统的解决方案Ax = b每秒500+次.目前,这是正在使用基于乔莱斯基线性代数库的高效CPU完成,但必要数据从CPU复制 - GPU和回GPU每秒数百和内核的开销次,每次启动等.

如何在GPU上计算线性系统的解决方案,而无需将数据全部输入CPU?我已经阅读了一些关于MAGMA库的内容,但它似乎使用混合算法而不是仅GPU算法.

我已经准备好了,GPU上的单个线性系统的解决方案将比现有的基于CPU的库慢得多,但我想看看是否可以通过删除之间的数据通信来弥补这一点.主机和设备以及内核启动的开销等每秒数百次.如果没有GPU只有类似LAPACK的替代方案,我将如何在GPU上实现一些解决这个特定的6x6案例?如果没有GPU BLAS库的大量时间投资,可以做到吗?

nju*_*ffa 3

去年秋天,NVIDIA 在注册开发者网站上发布了批处理 Ax=b 求解器的代码。该代码适用于通用矩阵,并且应该足以满足您的需求,只要您可以将对称矩阵扩展到完整矩阵(这对于 6x6 来说应该不是问题?)。由于代码执行旋转(这对于正定矩阵来说是不必要的),因此它对于您的情况来说不是最佳的,但您可以根据您的目的对其进行修改,因为该代码是在 BSD 许可证下的。

NVIDIA 的标准开发者网站目前遇到一些问题。此时您可以通过以下方式下载批量求解器代码:

(1)访问http://www.nvidia.com/content/cuda/cuda-toolkit.html

(2) 如果您已有 NVdeveloper 帐户(例如通过partners.nvidia.com),请单击屏幕右半部分的绿色“登录 nvdeveloper”链接。否则点击“加入nvdeveloper”申请新帐户;新帐户的请求通常会在一个工作日内获得批准。

(3) 根据提示使用您的电子邮件地址和密码登录

(4) 右侧有一个标题为“最新下载”的部分。从顶部算起的第五项是“批量求解器”。单击该按钮,您将进入代码的下载页面。

(5) 单击“下载”链接,然后单击“接受”接受许可条款。您的下载应该开始。