J'ai un projet CUDA. Il se compose de plusieurs fichiers .CPP contenant ma logique d'application et un fichier .cu contenant plusieurs noyaux plus un Maintenant, je voudrais déterminer le nombre de registres utilisés par mon ou mes noyau. Mon appel de compilateur normal ressemble à ceci: p>
Ajout du drapeau du compilateur "-XPTXAS -V" à cet appel n'a malheureusement aucun effet. Le compilateur produit toujours la même sortie textuelle qu'auparavant. Le compilé .exe fonctionne également de la même manière qu'avant, à une exception près: mon framerate saute à 1800fps, jusqu'à 80fps. P> __ hôte __ code> la fonction qui les invoque. P>
NVCC -arch Compute_20 -Link src / kernel.cu obj / .. obj obj / .. obj .. -o bin / .. exe -l glew32 .. code>. p>.
6 Réponses :
Lorsque vous compilez em> p>
nvcc --ptxas-options = -v code> p>
ne fonctionne pas non plus. J'ai essayé toutes les différentes notations pour ce drapeau que l'on peut trouver sur Internet.
@DAV Essayez d'éliminer l'option de liaison et compiler uniquement
carpe dans ce cas, le compilateur se plaint de symboles externes indéfinis.
@DAV Break Process dans deux, premier compilé que le lien.
carpe j'ai essayé nvcc -c.cu -arch compute_20 --ptxas-options = -v - le compilateur sortira un fichier ..Obj mais aucun registre compte
Pas exactement ce que vous recherchiez, mais vous pouvez utiliser le profileur Visual Cuda expédié avec le SDK Computing NVIDIA GPU. Outre de nombreuses autres informations utiles, cela montre le nombre de registres utilisés par chaque noyau dans votre application. P>
Cela ne peut pas être correct car il ne répond pas à la question ... Si vous ne vouliez que créer un moyen de compter les registres, puis changez la question.
@jimilloy "maintenant je voudrais déterminer le nombre de registres utilisés par mon noyau (s)"
J'ai eu le même problème, voici ma solution: p>
compile * CU fichiers dans le périphérique uniquement * Fichier PTX, cela supprimera le code hôte p>
Compile * Fichier PTX: P>
La deuxième étape vous montrera le nombre de registres utilisés par le noyau et la quantité de mémoire partagée utilisée. p> nvcc -ptx * .cu code> p> li>
ptxas -v * .PTX code> p> li>
ol>
Vous pouvez vouloir CTRL vos valeurs par défaut de votre compilateur Verbose. p>
Par exemple est vstudio goto: Outils-> Options-> ProjectsAndsolutions-> BuildRun puis réglez la sortie de verbosité sur la normale. P>
Lorsque vous utilisez "-XPTXAS -V", "-arch" ensemble, nous ne pouvons pas obtenir des informations verbeuses (enregistrez num, etc.). Si nous voulons voir le verbeux sans perdre la chance d'attribuer une architecture GPU (-arch, -code) à l'avance, nous pouvons procéder aux étapes suivantes: NVCC -arch Compute_XX * .Cu -keekeekee code> (code> alors
PTXAS -V * .PTX code>. Mais nous obtiendrons de nombreux fichiers de traitement. Certes, la réponse de Kogut est au point. P>
Convertissez le Compute_20 en SM_20 dans votre appel du compilateur. Cela devrait le réparer. P>