Como executar uma cópia profunda de struct com CUDA? [duplicado

Esta pergunta já tem uma resposta aqui:

Copiar uma estrutura contendo ponteiros para o dispositivo CUDA 3 respostas

Programação com CUDA Estou enfrentando um problema ao tentar copiar alguns dados do host para a gp

Tenho 3 estruturas aninhadas como estas:

typedef struct {
    char data[128];
    short length;
} Cell;

typedef struct {
    Cell* elements;
    int height;
    int width;
} Matrix;

typedef struct {
    Matrix* tables;
    int count;
} Container;

TãoContainer "inclui" algunsMatrixlementos @, que por sua vez incluem alguns elementosCell elementos.

uponha que aloque dinamicamente a memória do host desta maneir

Container c;
c.tables = malloc(20 * sizeof(Matrix));

for(int i = 0;i<20;i++){
    Matrix m;
    m.elements = malloc(100 * sizeof(Cell));
    c.tables[i] = m;
}

Ou seja, um contêiner de 20 matrizes de 100 células cad

Como agora eu poderia copiar esses dados na memória do dispositivo usando cudaMemCpy ()?xiste alguma boa maneira de executar uma cópia profunda de "struct of struct" do host para o dispositiv

Obrigado pelo seu tempo

Andrea

questionAnswers(1)

yourAnswerToTheQuestion