我正在尝试从Thrust库计算device_vector上的就地前缀和。以下代码段不起作用:
#include "cuda_runtime.h"
#include "device_launch_parameters.h"
#include <iostream>
#include <stdio.h>
#include <thrust/scan.h>
#include <thrust/device_vector.h>
int main()
{
thrust::device_vector<float> vector(4);
vector[0] = 1.0;
vector[1] = -3.0;
vector[2] = 4.0;
vector[3] = 5.0;
thrust::inclusive_scan(vector.begin(), vector.end(), vector.begin());
thrust::host_vector<float> h_vector(vector.begin(), vector.end());
for (size_t i = 0; i < 4; ++i) {
std::cout << h_vector[i] << std::endl;
}
return 0;
}
它在带有inclusive_scan调用的行上抛出一些异常。我做错了什么?