2013-07-08 38 views

回答

1

如果结构具有在其中没有指针(即,没有动态分配的数据),那么复制是相对简单:

#define DSIZE 100 

typedef struct { 
    float velocity; 
    float temperature; 
    float pressure; 
} mystruct; 

int main() 
{ 
    mystruct *h_data, *d_data; 
    h_data = (mystruct *) malloc(DSIZE * sizeof(mystruct)); 
    // populate h_data 
    cudaMalloc((void **)&d_data, DSIZE * sizeof(mystruct)); 
    cudaMemcpy(d_data, h_data, DSIZE * sizeof(mystruct), cudaMemcpyHostToDevice); 
    ... 
} 

如果结构包含动态分配的数据:

typedef struct { 
    float *velocity; 
    float *temperature; 
    float *pressure; 
} mystruct; 

然后,该过程涉及extra steps

相关问题