我正在尝试在实时3D建模中优化应用程序。应用程序的计算部分在CUDA中的GPU几乎完全运行。该应用需要小(6x6)双精度对称正定线性系统AX= B 500+次的解决方案。目前,这是使用Cholesky的基于CPU基于CPU的线性代数库进行的,但需要从CPU - GPU复制数据,然后每秒返回GPU数百次,并且内核每次都会启动。

如何单独计算GPU上的线性系统的解决方案,而无需将数据置于CPU上?我读了一点关于岩浆库,但似乎使用混合算法而不是GPU算法。

我准备好了,即在GPU上的单个线性系统的解决方案比与现有的基于CPU的库慢得多,但我想通过删除可以删除它主机和设备之间的数据通信以及内核启动的开销等数百次每秒。如果没有GPU只有lapack的替代方案,我将如何实现某些东西来解决GPU上的某些特定的6x6案例?可以在没有大量时间投资GPU Blas库的情况下完成吗?

有帮助吗?

解决方案

NVIDIA将批次的AX= B Solver发布代码,去年秋季登记的开发人员网站。此代码适用于通用矩阵,并且应该适用于您的需求,所以您可以将对称矩阵扩展到完整矩阵(这不应该是6x6的问题)。由于代码执行枢转,因此对于正定矩阵不必要,因此对您的案例不适,但您可能能够在代码下在BSD许可证下修改您的目的。

nvidia的标准开发人员网站正在遇到一些问题。以下是您如何在此时下载批处理的求解器代码:

(1)转到

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

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

(4)右侧标题为“最新下载”部分。顶部的第五项是“批量求解器”。单击此处,它将为您带来代码的下载页面。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top