关于从主机到设备的结构复制

时间:2013-07-08 03:56:08

标签: visual-c++ cuda

我是CUDA编程的新手。请你帮我知道如何使用cuda将主机结构复制到设备?结构包含速度,压力,温度。

1 个答案:

答案 0 :(得分: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