2017-06-29 3 views
1

Je suis en train de profiler mon code à l'aide Nivida Profiler, mais je suis en train d'étranges lacunes dans la chronologie, comme indiqué ci-dessous:la chronologie de Nvidia CUDA Profiler contient de nombreuses grandes lacunes

Timeline Gaps

Note: les deux noyaux sur les bords des lacunes sont CudaMemCpyAsync (Host-to-Device)

Je cours sur Ubuntu 14.04 avec la dernière version de CUDA, 8.0.61 et le dernier pilote d'affichage Nvidia.

La carte graphique intégrée Intel est utilisée dans l'affichage non Nvidia. Ainsi, la carte graphique Nvidia n'exécute que le code, rien d'autre.

J'ai également activé le profilage CPU pour vérifier ces écarts mais rien n'est montré!

Cpu Profiling is enabled

En outre, aucune option de débogage sont activées (-G ni -G) et ceci est un "version build"

No Debugging options are enabled

spécifications de mon ordinateur portable:

  • Intel Core i7 4720HQ
  • Nvidia GTX 960m
  • DDR3 de 16 Go Ram
  • 1 To Disque dur

Y at-il de toute façon de retracer ce qui se passe dans ces créneaux horaires vides?

Merci,

Répondre

2

Je crains qu'il n'y a pas de méthode automatique, mais vous pouvez ajouter des traces personnalisées dans votre code pour trouver ce qui se passe:

Pour ce faire, vous pouvez utiliser NVTX. Suivez les liens pour quelques tutorials ou documentation.

Ces trous de profilage sont probablement dus au chargement de données, aux allocations/initialisations de mémoire effectuées par l'hôte entre les exécutions de vos noyaux.

+0

Je vais essayer et poster mes commentaires. Merci – LightXXV

+0

Eh bien, cela a fonctionné. Ces lacunes étaient en fait des codes CPU que j'ai écrits pour lire les données d'entrée du disque dur mais je ne savais pas qu'ils prenaient autant de temps. Merci :) – LightXXV