У меня есть такая структура:
struct Node
{
int *ptr;
int k;
}*d_ptr;
как я могу объявить массив узлов и передать его в графический процессор? проблема в том, что я должен сначала выделить память для ptr, а затем Node!
У меня есть это до сих пор:
int N=100;
int NumbOfNodes=5;
cudaMalloc((void **) &d_NodeArr, sizeof(Node)*NumbOfNodes);
for(int i=0;i<NumbOfNodes;i++)
cudaMalloc((void **) d_NodeArr[i].Degree, sizeof(int)*N);
было бы быстрее, если бы я выделил все в одном массиве следующим образом:
int N=100;
int NumbOfNodes=5;
int SIZE=(100*5)+5;//the +5 is for the k
cudaMalloc((void **) &d_ptr,sizeof(int)*SIZE);