0

我是 CUDA 编程的新手。您能帮我了解如何使用 cuda 将主机结构复制到设备吗?结构包含速度、压力、温度。

4

1 回答 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 回答