0

我正在从 Matlab 移植一些代码以在 Nvidia GPU 上运行。我想不出一种方法来执行以下操作:

B = max(A, 0)

其中 A 和 B 是矩阵。换句话说,我需要用零替换矩阵中的负值。我知道如何编写一个内核函数,但如果可能的话,我想坚持使用 cuBLAS 或 magma 调用(以避免将 nvcc 添加到我的构建过程中)。

4

1 回答 1

1

我想出了一些使用推力的东西:

thrust::transform(A, A + m*n, [](double x) { thrust::max(x,0.0); });

如果这是不正确的,或者如果有更好的解决方案,我愿意接受其他建议。

于 2017-03-29T13:06:01.130 回答