Allouer Tableau 2D sur la Mémoire de l'Appareil dans CUDA
Comment dois-je répartir et de transfert(vers et à partir de l'Hôte) 2D tableaux dans la mémoire de l'appareil dans Cuda?
Vous devez vous connecter pour publier un commentaire.
Comment dois-je répartir et de transfert(vers et à partir de l'Hôte) 2D tableaux dans la mémoire de l'appareil dans Cuda?
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé une solution à ce problème. Je n'avais pas à aplatir le tableau.
L'intégré
cudaMallocPitch()
fonction fait la job. Et j'ai pu le transfert de la matrice et de l'appareil à l'aide decudaMemcpy2D()
fonction.Par exemple
Cela crée un tableau 2D de taille a*b avec le terrain transmis en tant que paramètre.
Le code suivant crée un tableau 2D et passe en boucle sur les éléments. Il compile facilement, vous pouvez l'utiliser.
Aplatir: faire en une seule dimension. Voir comment c'est fait ici
Votre code d'appareil pourrait être plus rapide. Essayez en utilisant les threads plus.
Puis on calcule les blocs et les fils de l'allocation appropriée, de sorte que chaque thread traite avec un seul élément.
r
est moins que le nombre réel de lignes