Я пытался использовать thrust :: device_vector для хранения структуры, и она работала нормально, пока я дважды не вызвал push_back (), и программа не вылетела.Программа также потерпела крах, когда я использовал resize ().
Вот код, который я использую, я компилирую его с помощью nvcc:
#include <iostream>
#include <thrust/device_vector.h>
using namespace thrust;
using namespace std;
struct Test
{
int value;
__device__ __host__
Test() {
value = 0;
}
__device__ __host__
~Test() {}
};
int main() {
device_vector<Test> test_d = device_vector<Test>();
cout << "First" << endl;
test_d.push_back(Test());
cout << "second" << endl;
test_d.push_back(Test());
cout << "done" << endl;
return 0;
}
Вывод программы дает мне это:
Первый
Второй
Ошибка nvcc: '. \ "A.exe"' умер со статусом 0xC0000409
Этопрограмма правильная, как в случае сбоя на других машинах или я что-то упустил?