comment passer tableau de struct au GPU?

j’ai cette struct:

struct Node { int *ptr; int k; }*d_ptr; 

Comment puis-je déclarer un tableau de nœud et le transmettre au GPU? le problème est que je dois allouer de la mémoire pour ptr d’abord, puis pour Node!

J’ai ceci jusqu’à maintenant:

 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); 

serait-il plus rapide si j’allais tout dans un seul tableau comme ceci:

 int N=100; int NumbOfNodes=5; int SIZE=(100*5)+5;//the +5 is for the k cudaMalloc((void **) &d_ptr,sizeof(int)*SIZE); 

Construisez simplement la structure sur l’hôte en premier. En d’autres termes, créez la structure, puis effectuez un cudaMalloc pour le tableau int. Copiez ensuite la structure elle-même d’un hôte à un autre.

Cela pourrait vous aider: http://forums.nvidia.com/index.php?showtopic=196084