Передача структуры, включающей указатель на другую структуру, в ядро в CUDA

У меня есть две структуры, как

struct collapsed {
    char **seq;
    int num;
};


struct data {
    collapsed *x;
    int num;
    int numblocks;
    int *blocksizes;
    float *regmult;
    float *learnmult;
};

Я передаю его в свое ядро как;

__global__ void KERNEL(data* X,...){
    ...
    collapsed x = X->x[0]; // GIVES CUDA_EXPECTION_1:Lane Illegal Address
}

data X;
//init X
data *X_dev;
cudaMalloc((data **) & X_dev, sizeof(data));
cudaMemcpy(X_dev, &X, sizeof(data), cudaMemcpyHostToDevice);
KERNEL(X_dev,...);

Этот код даетCUDA_EXPECTION_1: незаконный адрес переулка в коде ядра. Что не так или как правильно это сделать? Любая идея?

Ответы на вопрос(1)

Ваш ответ на вопрос