我是个新手。我正在尝试从thrust::host_vector复制到thrust::device_vector,两者的类型都是Sequence,这是我已经实现的一个类。
然而,我得到了一个错误“无效的设备功能”。我在GeForce GT 540上使用CUDA4.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;
}
} 有谁能帮帮忙吗?
发布于 2012-03-15 21:23:19
该错误消息通常意味着运行时无法找到与您的GPU架构匹配的二进制文件,即您的编译中没有包含正确的GPU SM版本。由于您使用的是VS2010,GPU架构通常是通过构建自定义来设置的。在CUDA C/C++,Device下的项目属性中,您应该看到"Code Generation“选项。我不确定你的图形处理器是哪一代的,但你可以尝试使用"compute_20,sm_20;compute_20,sm_21“来构建这两种费米架构。
https://stackoverflow.com/questions/9711495
复制相似问题