CUDA和HPC中的1D问题

时间:2011-03-12 14:55:19

标签: cuda gpgpu hpc

我正在寻找CUDA和HPC中的一些一维问题,例如 Black Scholes

1D问题,我的意思是在1D阵列上完成所有工作的问题。虽然矩阵乘法可以以这种方式表达,但我想要的问题是基本问题只是1D。

我正在尝试为CUDA开发一个1D库,并且需要一些基准测试来测试它。我意识到很多现实世界的问题都表现为2D,我真的很想看到一些现实世界的一维问题。

感谢。

编辑:感谢所有答案。如果答案包含更多的HPC问题,那将是很好的,例如Black Scholes,而不仅仅是通用算法。 感谢。

4 个答案:

答案 0 :(得分:1)

并行编程中的一个常见问题是减少:给你一个数字数组,你必须计算一个“前缀和”,也就是说,每个元素都存储所有先前元素的总和(+本身与否.I喜欢包容性。)

这是一个相当简单的问题,但由于它经常在更复杂的算法中重复多次,因此具有高效性是非常重要的。

另一个常见问题是排序。

已经有一些关于该主题的论文,以此为例:

enter link description here

我认为从一开始就解决更大的问题是一个很好的问题。

答案 1 :(得分:1)

可以用于1到3维的一个简单问题是热方程。有几种不同的数值方法可以解决它,其中一些可以并行实现。

至少与OpenMp和MPI一起工作的方法是有限差分方法。我想如果你把它与一个聪明的模板结合起来,你应该能够在Cuda C中有效地实现它。

答案 2 :(得分:1)

经典的一维示例由热方程提供。

下面,我将利用 Jacobi 解决方案在此主题上发布一个具体的,完全有效的CPU / GPU示例。请注意,提供了两个时间步长内核,一个不使用共享内存,一个使用共享内存

{{1}}

答案 3 :(得分:0)

减少(查找数组的最小值,最大值或总和)和排序是一维问题的最佳示例。这些算法可能有很多变量,比如在结构上进行排序等等。