Hey Guys, Je suis un gars de Java sautant dans CUDA et la syntaxe me fait trébucher. J'essaie de créer une matrice dans le fichier .cpp puis de la passer au fichier .cu à traiter. Je vois des exemples où la fonction CUDA attend le tableau 2D à venir dans la recherche commepasser un tableau 2D à partir d'une classe C++ à une fonction CUDA
void handleMatrix(float* A){
// do stuff
}
lorsque je crée la matrice que je suis habitué à le faire dans le code qui ressemble à ceci:
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 << "\n";
}
handleMatrix(table);
return 0;
}
Lorsque Je compile le code que je reçois l'erreur ne peut pas convertir 'float () [8]' 'flotter *' pour argument '1' à 'handleMatrix void (float *)' *
y at-il un de différentes façons, je devrais être déclaré la matrice ou la créer?
Merci d'avance pour l'aide.
Ceci est correct dans le code hôte seulement, cependant, un vecteur std :: ne peut pas être passé à un noyau CUDA. – Heatsink