nombre maximum de threads par bloc
j'ai les informations suivantes:
Maximum number of threads per block: 512
Maximum sizes of each dimension of a block: 512 x 512 x 64
est-ce à dire que le nombre maximal de threads dans un 2d thread bloc est 512x512 ce qui me donne un 262144 threads dans chaque bloc?
si oui, alors est-ce une bonne pratique d'avoir ce nombre de threads dans un noyau minimum de 256 blocs?
Oui, il est source de confusion qu'ils utilisent 512x512x64 terminologie, en déclarant, par exemple [512,512,64] comme les dimensions maximales seraient beaucoup moins à confusion!
OriginalL'auteur lina | 2011-07-07
Vous devez vous connecter pour publier un commentaire.
Non, cela signifie que le maximum de threads par bloc est de 512,
Vous pouvez décider de la façon de poser que sur [1 512...] x [1 512...] x [1 ... 64].
Par exemple 16x16 serait ok en 2D.
Que pour décider de la taille de l'îlot, beaucoup de choses entrent en compte, comme la quantité de mémoire un bloc besoins et de la taille d'une demi-chaine est sur le matériel (je ne me souviens pas si c'est toujours 16 sur le matériel Nvidia).
for(int i=0;i<1024;i+=512) [threadid+i]; est-ce correct?
que voulez-vous dire exactement par une boucle? Que fait votre code? vous aurait généralement configurer votre code à exécuter dans un certain nombre de blocs.
qui pourrait fonctionner.. mais je pense que vous voulez avoir plus d'un bloc.
OriginalL'auteur Martin Kristiansen
Pas, cela signifie que votre bloc de 512 maximum de X/Y ou 64 Z, mais pas tous en même temps. En fait, votre info a déjà affirmé que la taille de bloc maximale est de 512 threads.
Maintenant, il n'y a pas de bloc optimale, car elle repose sur le matériel de votre code est en cours d'exécution, et dépend aussi de votre algorithme spécifique.
OriginalL'auteur Vitor