0
我是CUDA编程的新手。请你帮我弄清楚如何使用cuda将主机结构复制到设备上?结构包含速度,压力,温度。关于从主机到设备的复制结构
我是CUDA编程的新手。请你帮我弄清楚如何使用cuda将主机结构复制到设备上?结构包含速度,压力,温度。关于从主机到设备的复制结构
如果结构具有在其中没有指针(即,没有动态分配的数据),那么复制是相对简单:
#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。