【发布时间】:2014-05-22 09:00:11
【问题描述】:
Eigen 是一个 c++ 线性代数库http://eigen.tuxfamily.org。
使用基本数据类型(如基本浮点数组)很容易,只需将其复制到设备内存并将指针传递给 cuda 内核。但是 Eigen 矩阵是复杂类型,如何将其复制到设备内存并让 cuda 内核读取/写入呢?
【问题讨论】:
-
这是一个严重依赖Eigen的遗留项目,所以最好不要替换它
-
更简单的方法可能是在使用设备之前切换到 CUBLAS,如果 eigen 不是为在 GPU 上工作而设计的,你就不能使用它(或者你会得到可怕的错误 /表演)。还要看看统一内存,可能会为您节省一些复制的麻烦(或者如果您想要完全控制自己做)
-
有没有办法从 eigen 获取原始数据指针,比如 float *?
-
“特征矩阵是复杂类型”是什么意思?请注意,在这种情况下,复杂类型可以是
std::complex<double>。您可以在本征中拥有真正的矩阵...您的问题很混乱:“使用基本数据类型(如基本浮点数组)很容易,只需将其复制到设备内存并将指针传递给 cuda 内核。 i>",您的意思是 Eigen 易于使用普通类型或 CUDA?