在CUDA中有效减少2D阵列?

时间:2010-08-04 00:52:35

标签: matrix cuda reduce

在CUDA SDK中,有一个示例代码和演示幻灯片,可实现有效的一维缩减。我还在CUDA中看到了一些关于一维缩减和前缀扫描的论文和实现。

是否有高效的CUDA代码可用于减少密集的二维阵列?我们将非常感谢代码或相关论文的指示。

2 个答案:

答案 0 :(得分:4)

我不知道你试图解决的问题到底是什么,但实际上你可以简单地将2D数组视为一个长的一维数组并使用SDK代码来减少操作。 CUDA中的简单数组只是具有特殊寻址规则的1D内存块 - 为什么不利用这个机会。

答案 1 :(得分:1)

矩阵缩减实现起来可能稍微简单一些,因为向量的行/列缩减可以独立完成。您可以让每个线程处理列/行(取决于矩阵主要维度方向)并合并内存读取。我怀疑你可以购买很多性能,而不需要纹理/恒定缓存,其中地方可能变得重要