我尝试使用 nvcc(CUDA 5.0 RC)编译以下程序(main.cu):
#include <Eigen/Core>
#include <iostream>
int main( int argc, char** argv )
{
std::cout << "Pure CUDA" << std::endl;
}
不幸的是,我收到一堆警告和错误,我只能使用 nvcc 而不是 Microsoft 编译来解释。
这个假设正确吗?有没有办法用 nvcc 编译 Eigen?(我实际上不想将 Eigen 矩阵转移到 GPU,只是访问他们的成员)?
如果用 nvcc 编译 Eigen 不起作用,是否有关于分离主机和设备代码的巧妙方法的很好的指南/教程?
我正在使用 CUDA 5.0 RC、Visual Studio 2008、Eigen 3.0.5。为了编译我使用的 .cu 文件,CUDA 中包含的规则文件,以及 CMake 生成的自定义构建步骤。使用 CUDA 规则文件,我将构建定位在计算能力 3.0。
谢谢你的建议。
PS:如果我使用主机编译器编译相同的代码,它会完美运行。