2012-11-15 6 views
5

Ich benutze Visual Studio 2010, parallel nsight 2.2 und cuda 4.2 zum Lernen. Mein System ist Windows 8 pro x64. Ich öffnete das Radix-Sort-Projekt, das von Cuda Computing SDK in VS enthalten ist, und kompilierte es ohne Fehler. Die Sortiercode verwendet Schub Bibliothek:So debuggen cuda Schubfunktionen in Visual Studio 2010 mit parallel nsight

if(keysOnly) 
    thrust::sort(d_keys.begin(), d_keys.end()); 
else 
    thrust::sort_by_key(d_keys.begin(), d_keys.end(), d_values.begin()); 

ich wissen will, wie Schub die Sortierfunktion zu CUDA Kerne versenden, also habe ich versucht Stützpunkte vor Linien über und das Projekt im Debug-Modus kompiliert hinzuzufügen. Aber wenn ich parallel nsight für Cuda Debugging verwende, gibt es immer Fehler, die "keine Quellkorrespondenz für Haltepunkt".

Also, meine Probleme sind:

  1. Wie cuda Schub Programme in Visual Studio mit parallel nsight debuggen?
  2. Oder gibt es jemanden, der mich auf eine andere Art und Weise anweisen kann zu wissen, wie Cuda Schub Dipatch-Funktionen zu Cuda Kernel oder andere Funktionen?

Jede Beratung wird geschätzt!

Antwort

2

Normalerweise zum Debuggen von Gerätecode in CUDA, ist es notwendig, die passieren:

-G -g 

schaltet auf nvcc. Diese Modalität ist jedoch not supported with thrust code. Sie können sich anhand der Struktur in den Schub-Include-Dateien ein Bild davon machen, wie der Schubcode an das Gerät gesendet wird. Da Schub vollständig templatierter Code ist, gibt es keine Bibliotheken, über die man sich Sorgen machen müsste. Das ist jedoch eine herausfordernde Angelegenheit. Sie können auch den Compiler sagen ptx zu generieren:

-ptx 

die one of the intermediate code types dass CUDA-Code ist wird kompiliert. Das ist aber auch keine triviale Sache. This link gibt einige alternative Ideen zum Debuggen mit Thrust.

+0

Vielen Dank Robert, ich habe das Schub-Wiki beim Debuggen schon gelesen. Aber ich denke, seine Inhalte sind für meine Probleme nicht sehr brauchbar. Ich möchte nur die Details der Entscheidungsprozesse in der Schubbibliothek wissen. Also habe ich versucht, den Quellcode zu lesen und könnte auch versuchen, Ptx-Code zu lesen. Vielen Dank! – Miles

Verwandte Themen