我正在尝试优化实时 3D 建模中的应用程序。应用程序的计算部分几乎完全在 CUDA 的 GPU 上运行。该应用程序需要每秒 500+ 次的小型 (6x6) 双精度对称正定线性系统 Ax = b 的求解。目前,这是通过使用 Cholesky 的基于 CPU 的高效线性代数库完成的,但需要每秒数百次从 CPU - GPU 复制数据并返回到 GPU 以及每次内核启动的开销等。
如何仅在 GPU 上计算线性系统的解,而无需将数据带到 CPU 上?我已经阅读了一些关于 MAGMA 库的信息,但它似乎使用混合算法而不是仅 GPU 算法。
我已经为 GPU 上的单个线性系统的解决方案将比现有的基于 CPU 的库慢很多这一事实做好准备,但我想看看是否可以通过删除之间的数据通信来弥补这一点主机和设备以及内核启动的开销等每秒数百次。如果那里没有 GPU 唯一的类似 LAPACK 的替代方案,我将如何实施一些东西来仅在 GPU 上解决这个特定的 6x6 案例?例如,是否可以在没有大量时间投资的情况下使用 GPU BLAS 库来完成?