Comment mesurer le noyau temps en NVIDIA CUDA?
Je veux mesurer le temps interne du noyau de GPU, comment le mesurer dans CUDA de NVIDIA?
par exemple,
__global__ void kernelSample()
{
some code here
get start time
some code here
get stop time
some code here
}
Amin, (il y a quelques années) que vous avez accepté la réponse qui est utile, mais ne répond pas à votre question. Auriez-vous l'esprit des nations unies-l'acceptation ou de la modification de la question afin de refléter la réponse peut-être?
OriginalL'auteur Amin | 2012-05-14
Vous devez vous connecter pour publier un commentaire.
Essayer cela, il mesure le temps entre 2 événements en millisecondes.
Donc, cette réponse ne répond pas à la question, mais il est accepté. Que devons-nous faire? Modifier la question peut-être?
L'exécution des grains de threads openmp sur plusieurs gpu et ce code me donne 0 ms suite
OriginalL'auteur edocetirwi
Vous pouvez faire quelque chose comme ceci:
Qui donne le nombre de cycles d'horloge entre les deux appels. Être un peu prudent, cependant, la minuterie de débordement après quelques secondes, de sorte que vous devez être sûr que la durée de code entre les appels successifs est assez courte. Vous devriez aussi être conscient que le compilateur et l'assembleur faire exécuter des instructions de commande à nouveau de sorte que vous pourriez vouloir vérifier que l'horloge des appels n'est pas le vent se mis à côté les uns des autres dans le SASS de sortie (utiliser
cudaobjdump
à vérifier).clock()
un fonctionnement de l'appareil et il fonctionne vraiment. Voir la section B10 de la programmation CUDA guide pour une description declock()
etclock64()
. Si elle "ne pas fonctionner correctement" vous faites quelque chose de mal ou d'avoir mal compris ce que les moyens de sortie.La sortie est cycle d'horloge. Comment faire pour convertir quelques secondes?
J' dire que c'était un cycle d'horloge dans ma réponse. De le diviser par le shader de l'horloge de fréquence en kilohertz pour obtenir une réponse en millisecondes (noter que si vous avez un nouveau Kepler GPU de votre GPU dispose de deux vitesses d'horloge, vous devez le shader de l'horloge, n'est pas la principale fréquence de l'horloge)
si cela a résolu votre problème, peut-être vous serait donc de nature à les accepter.
OriginalL'auteur talonmies