#include <stdio.h>
#include <cutil.h>
#define N 10
typedef struct
{
int *A;
int *B;
}vn;
typedef struct
{
vn *v_n;
int *m;
int *n;
}data;
__global__ void kernel(data *d, int n)
{
int idx = threadIdx.x;
if(idx < n)
{
d->v_n->A[idx] = d->v_n->A[idx] + *d->m;
d->v_n->B[idx] = d->v_n->B[idx] + *d->n;
}
}
int main(int argc, char **argv)
{
CUT_DEVICE_INIT(argc, argv);
int i;
data h_input;
h_input.m = (int *)malloc(sizeof(int));
h_input.n = (int *)malloc(sizeof(int));
h_input.v_n = (vn *)malloc(sizeof(vn));
h_input.v_n->A = (int *)malloc(sizeof(int) * N);
h_input.v_n->B = (int *)malloc(sizeof(int) * N);
*h_input.m = 5;
*h_input.n = 10;
for(i = 0; i < N; ++i)
{
h_input.v_n->A[i] = i;
h_input.v_n->B[i] = i;
}
//在显存上定义结构体tmp,使用过渡变量,如果包含多级结构体就需要使用多个过渡变量
data tmp;
cudaMalloc((void**)& tmp.m, sizeof(int));
cudaMalloc((void**)& tmp.n, sizeof(int));
cudaM
cuda中结构体的赋值
最新推荐文章于 2023-07-24 22:25:30 发布