我尝试使用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。
感谢您的建议。
附注:如果我使用主机编译器编译相同的代码,它可以完美地工作。