Comment déboguer dans CUDA code du noyau à l'aide de visual studio 2008?
Hey,
Je suis à l'aide de Visual Studio 2008, avec CUDA 3.2. Je suis en train de déboguer dans une fonction avec cette signature:
MatrixMultiplication_Kernel<<<dimGrid, dimBlock>>>(Md, Nd, Pd, Width);
Je peux étape dans la fonction, mais quand je suis entrer dans la fonction, il ne me laisse pas l'étape de la code et me dit qu'aucune source n'est disponible. Quelqu'un sait comment déboguer dans ce correctement?
Merci!
OriginalL'auteur ntsue | 2010-10-28
Vous devez vous connecter pour publier un commentaire.
Mise à jour: Parallel Nsight est maintenant gratuit et prend en charge le débogage avec un seul GPU dans votre système.
De débogage de code de l'appareil au sein de Visual Studio, vous aurez besoin Parallel Nsight. La version standard est gratuit et offre le débogage vous avez besoin ainsi que le dispositif de profilage de code.
Si vous souhaitez déboguer sur une seule machine, alors vous aurez besoin de deux Gpu (depuis le GPU de l'exécution du code sera arrêté quand il rencontre un point d'arrêt, et donc votre affichage de bloc). Ils n'ont pas besoin d'être haut de gamme Gpu bien, rien de G92 partir feront (y compris la plupart des Gpu Fermi énumérés ici).
OriginalL'auteur Tom
Vous pouvez maintenant debug sur une seule machine avec un seul GPU à l'aide de NSight.
Pensé que je mettrais à jour ce, depuis les réponses précédentes ne sont plus correctes (vous n'avez plus besoin de 2 Gpu) et il m'a envoyé dans la mauvaise direction pendant un certain temps.
J'ai deux Tesla C1060 cartes. Je suis la construction d'un GPU de la machine pour mon laboratoire et de Mal-être sous Linux. Comme dans votre commentaire, j'ai besoin d'une carte graphique (probablement sur le conseil d'administration) l'exécution de l'affichage/X-server si je veux utiliser CUDA-gdb? Merci
OriginalL'auteur JSoet
Êtes-vous à l'aide de Nsight? Vanille Visual Studio ne peut pas dans le code de l'appareil, mais avec Nsight, c'est possible. Malheureusement, les limitations du pilote de périphérique Windows modèle de dire il y a quelques restrictions sérieuses. Il a utilisé pour être que les deux machines ont été nécessaires pour faire le débogage. La cible de la machine doit exécuter la CUDA code sur GPU, et a dû être à l'aide de la CCI de pilote. La machine hôte serait exécution de Visual Studio et de contrôle de la cible. Il semble qu'il est maintenant possible de déboguer CUDA code sur la même machine, aussi longtemps que vous avez les deux GPU, un pour et de calcul, et une pour l'affichage. Il y a un certain nombre d'autres problèmes mentionnés dans le guide de l'utilisateur.
Cela peut ne pas être une réponse acceptable, mais: Si vous pouvez compiler votre code sur Linux, vous pouvez utiliser cuda-gdb pour déboguer les noyaux. cuda-gdb est une partie de l'Linux CUDA toolkit.
Malheureusement, les limitations techniques et le fait que CUDA n'a pas vraiment été ce qui signifie que seuls ceux qui ont les poches profondes peuvent faire ce genre de débogage. Le reste à prendre d'autres approches.
Consultez cette liste pour les unités de traitement graphique: developer.nvidia.com/object/nsight-requirements.html. Fermi 470/480 est pris en charge dans la version 1.5. Il est vrai que vous avez besoin de deux Gpu (sinon, on aurait bloquer votre écran sur un point d'arrêt) mais ils n'ont pas besoin d'être haut de gamme, le coût d'entrée est assez faible!
OriginalL'auteur mch
Vous ne pouvez pas déboguer CUDA code du noyau à l'aide de visual studio. Visual studio ne peut déboguer les programmes qui s'exécutent sur le CPU.
En fait, je ne pense pas que vous pouvez déboguer CUDA code du noyau de Windows plus. CUDA habitude d'avoir un hôte en mode d'émulation, mais qui a été supprimé dans la version 3.0. Les seuls outils de débogage disponibles sont cuda-gdb et l'ocelot, et, autant que je sache, aucun d'eux prend en charge Windows.
OriginalL'auteur Eugene Smith