J'ai transmis un tableau 2D d'une classe C++ à une fonction CUDA; Cependant, une fois dans la fonction CUDA, les données de la matrice ont disparu. Je suis toujours dans l'hôte, pas dans l'appareil, donc je ne comprends pas ce que j'ai fait de mal car cela devrait être très simple.matrice apparaissant vide lorsqu'elle est passée de cpp à CUDA
Voici le C++
int main()
{
const int row=8;
const int column=8;
int rnum;
srand(time(0));
rnum = (rand() % 100) + 1;
float table[row][column];
for(int r=0; r<row; r++){
for(int c=0; c<column;c++){
table[row][column] = (rand()%100) + 1.f;
cout << table[row][column] << " ";
}
cout << "\n";
}
//CUDA
handleMatrix(&table[0][0], 8);
}
Voici le code CUDA qui est tout simplement l'impression de la matrice.
void handleMatrix(float * A, int size)
{
printf("&A[0]=%i\n",&A);
printf("A[0] is %f \n",A[0]);
for(int j=0; j<size; j++){
for(int k=0; k<size;k++){
printf("%f ",A[j +size*k]); // << " ";
}
printf("\n");
}
}
Dans le fichier C++ - l'impression de la matrice a des nombres réels, mais la fonction CUDA se contente d'afficher des 0 fois pour la matrice et l'adresse de A [0]. Je ne sais pas si cela signifie que je ne passe pas correctement la matrice entre les 2 ou s'il y a quelque chose que je devrais faire avec la matrice une fois que je l'aurai à la fonction CUDA.
Retiré, il n'y a pas de CUDA ici (pour l'instant!). – Kos
@Kos Je me demandais la même chose ... –