Я пытаюсь вычислить сумму префикса на месте для device_vector из библиотеки Thrust. Следующий фрагмент не работает:
#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. Что я делаю неправильно?
-G
, и коды отладки могут плохо работать с ним . В связи с этим может помочь, если вы определите версии cuda и тяги, которые вы используете, и сможете ли другие коды (например, коды примеров cuda) скомпилировать и правильно запустить на вашей платформе. При компиляции проекта отладки попробуйте переключиться на проект выпуска и посмотрите, исчезнет ли проблема. - person Robert Crovella   schedule 01.06.2014