Cuda 推力::设备_矢量错误

Cuda 推力::设备_矢量错误,cuda,thrust,Cuda,Thrust,我是新手。我正在尝试从一个推力::主机_向量复制到一个推力::设备_向量,这两个类型都是序列,这是我已经实现的一个类 但是,我确实收到一个错误“设备功能无效”。 我在GeForce GT 540上使用CUDA 4.0 VS2010 thrust::host_vector <Sequence> Ind_Tabel_V; void Ind_Table_Filling() { //some Code Sequence s; // some code

我是新手。我正在尝试从一个
推力::主机_向量
复制到一个
推力::设备_向量
,这两个类型都是
序列
,这是我已经实现的一个类

但是,我确实收到一个错误“设备功能无效”。 我在GeForce GT 540上使用CUDA 4.0 VS2010

thrust::host_vector <Sequence> Ind_Tabel_V; 
void Ind_Table_Filling() 
{ 
    //some Code 
    Sequence s; 
    // some code 
    Ind_Tabel_V.push_back(s); 
    try 
    { 
        thrust::device_vector<Sequence> d_vec=Ind_Tabel_V; 
    } 
    catch (thrust::system_error &e) 
    { 
        std::cerr << "Error accessing vector element: " << e.what() << std::endl; 
    } 
} 
推力:主机向量表; 无效索引表填充() { //一些代码 序列s; //一些代码 指示牌:向后推; 尝试 { 推力:设备向量d向量=Ind Tabel V; } 捕获(推力::系统错误&e) {
std::cerr该错误消息通常意味着运行时找不到与您的GPU体系结构匹配的二进制文件,即您没有在编译中包含正确的GPU SM版本。由于您使用的是VS2010,GPU体系结构通常通过构建自定义设置。在CUDA C/C++下的项目属性中,您应该看到“代码生成”选项。我不确定您的GPU是哪一代,但您可以尝试“计算20,sm 20;计算20,sm 21”“为两种费米体系结构构建。

代码看起来不错。我认为错误在代码的其他地方。在调用上述代码之前,请确保检查每次CUDA调用的返回值。能否提供
类序列的定义?”?