简单的device_vector代码给出std::bad_alloc:unknown

Simple device_vector code gives std::bad_alloc : unknown

本文关键字:std unknown bad alloc device vector 代码 简单      更新时间:2023-10-16

我得到以下错误:

std::bad_alloc: unknown error
abort (core dumped)

我的代码是

try {
thrust::host_vector<int> hvec(10);
thrust::generate(hvec.begin(), hvec.end(), rand);
thrust::device_vector<int> dvec = hvec; // this is where exception is thrown
thrust::sort(dvec.begin(), dvec.end());
} catch (thrust::system_error e)
{
    cout << e.what() << "n";
}

我使用的是带有NVidia GTX 750 的linux3.16、nvcc V6.5.12

我写了另一个代码来使用cudaMemGetInfo打印内存信息。它打印以下内容:

Free : 4203824
Total : 4470016

如注释中所述,显示的内存信息是错误的(大约4MB)。安装CUDA和推力后,我没有重新启动。重新启动后,代码运行良好,cudaMemGetInfo显示的信息也是正确的。