如何在Cuda编程中为矩阵做元素指数?
例如:
A = [1 3 4; 6 5 2];
我想计算:
B = [exp(1),exp(3),exp(4); EXP(6);实验值(5);(2)]
有没有办法有效地做到这一点(即B取代A)? 看来cublas没有在矩阵上提供元素操作。
答案 0 :(得分:2)
我不知道是否存在对矩阵进行元素操作的库,但是您可以轻松地设置CUDA内核来完成这项工作。例如,您可以为每个线程提供A
矩阵的一个元素,并且它们可以执行指数并在B
中写入答案。然后像往常一样调用CUDA内核。看看at this,了解如何实现内核以及如何调用它(但不要像在gpuMM
中那样将两个向量相乘,而是将其指数化。)
编辑:看起来您可以使用Thrust和一组宏Newton执行元素操作,如此SO question中所示。< / p>