c++ - 如何在 Cuda 编程中对矩阵进行逐元素指数运算

标签 c++ matrix cuda gpu cublas

如何在 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/

相关文章:

c++ - 不能在函数声明中使用模板参数

Mysql多变量线性回归

r - R 中错误的矩阵求逆结果

casting - CUDA 和 cuBLAS 中的类型转换

c - 使用 Cuda-C 查找表

c++ - 让一个简单的神经网络在 C++ 中从头开始工作

c++ - 创建指向没有默认构造函数的类的智能指针数组

c - 如何在C中复制矩阵?

c++ - 当设备在此过程中处于事件状态时,无法设置 CUDA 固定内存实现错误

c++ - 在 C++ 中将 int 转换为字符串的最简单方法