如何在 Cuda 编程中对矩阵进行逐元素指数运算?
例如:
A = [1 3 4; 6 5 2];
我想计算:
B = [exp(1),exp(3),exp(4); exp(6);exp(5);(2)]
有没有一种方法可以有效地做到这一点并且做到位(即 B 代替 A)? 似乎 cublas 没有提供对矩阵的元素明智的操作。
最佳答案
我不知道是否存在对矩阵执行元素明智操作的库,但您可以轻松设置 CUDA 内核来完成这项工作。例如,您可以为每个线程提供 A
矩阵的一个元素,它们可以执行指数运算并将答案写入 B
。然后你像往常一样调用你的 CUDA 内核。看看at this了解如何实现内核以及如何调用它(但不是像在 gpuMM
中那样将两个 vector 相乘,而是进行指数运算)。
编辑:看起来您可以使用 Thrust 进行元素明智的操作和宏集 Newton , 如本 SO question 所示.
关于c++ - 如何在 Cuda 编程中对矩阵进行逐元素指数运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25375003/