相关疑难解决方法(0)

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

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

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

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

algorithm cuda gpu linear-algebra solver

8
推荐指数
1
解决办法
1624
查看次数

通过CUDA Thrust大幅减少

我有一个具有这种结构的顶点数组:

[x0, y0, z0, empty float, x1, y1, z1, empty float, x2, y2, z2, empty float, ...]

我需要找到minX,minY,minZ,maxX,maxYmaxZ使用CUDA.我写了一个适当的缩减算法,但它有点太慢了.我决定使用THRUST库.有一种高度优化的reduce(),甚至更好的minmax_element()方法,它是一种同时找到数组的最大值和最小值的方法,但我找不到一种快速的方法来使用那么只有每一个4索引.将数据复制到3分离的数组不是我正在寻找的解决方案.

有没有办法(使用Thrust迭代器或类似的东西的某种技巧)传递一个步幅reduce()

cuda thrust

4
推荐指数
1
解决办法
1283
查看次数

使用CUDA进行Cholesky分解

我正在尝试使用cuSOLVER库实现Cholesky分解。我是一名初学者CUDA程序员,并且我一直指定块大小和网格大小,但是我无法找出程序员如何使用cuSOLVER函数显式设置它。

这是文档:http : //docs.nvidia.com/cuda/cusolver/index.html#introduction

QR分解是使用cuSOLVER库实现的(请参见此处的示例:http ://docs.nvidia.com/cuda/cusolver/index.html#ormqr-example1 ),即使在此处也未设置上述两个参数。

总结一下,我有以下问题

  • 如何使用cuSOLVER库设置参数:块大小和网格大小?
  • NVIDIA文档中提到的QR示例代码如何处理?

cuda gpu nvidia gpu-programming cusolver

3
推荐指数
1
解决办法
3614
查看次数