我是 CUDA 编程的新手。您能帮我了解如何使用 cuda 将主机结构复制到设备吗?结构包含速度、压力、温度。
问问题
50 次
1 回答
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;
然后该过程涉及额外的步骤。
于 2013-07-08T04:12:15.350 回答