【发布时间】:2014-02-24 10:51:34
【问题描述】:
我在 GPU 内存中有一个大型矩形矩阵 NxM,以逐行表示形式存储为一维数组。假设这个矩阵实际上是由大小为 nxm 的子矩阵组成的。为简单起见,假设 N 是 n 的倍数并且与 M 和 m 相同。比方说,数组的数据类型是浮点数或双精度数。
在每个子矩阵中找到极值索引的有效方法是什么?例如,如何找到每个子矩阵的最大元素的一维索引并将这些索引写在某个数组中。
【问题讨论】:
-
最合适的解决方案将取决于
n相对于warp 大小的大小。没有通用的解决方案。如果 n 接近N,那么cublasIsamin可能与您自己编写的任何内容一样有效。 -
@talonmies 我试图在我的回答中指出这个重要的区别(无论是 N=n*2 还是 N=n*10000)。虽然
cublasIsamin听起来是我草拟的第二种方法的好选择,但问题是它仅在 1D 数组上运行(在 incx 中给出了可能的步幅,但仍然是 1D) - 所以它不适用于 2D 子矩阵
标签: cuda