2014-09-04 4 views
5

Ich habe mit dem NVIDIA-Profiler (nvprof) herum spielen und es gibt zwei bestimmte Metriken, die ich nicht verstehe:Verschiedenes und Inter-Thread Kommunikation Anleitung in CUDA

inst_inter_thread_communication 
    Number of inter-thread communication instructions executed by non-predicated threads 
inst_misc 
    Number of miscellaneous instructions executed by non-predicated threads 

Ich frage mich nur, was Anweisungen wären Inter-Thread-Kommunikationsanweisungen und welche Anweisungen würden unter Verschiedenes fallen.

Referenz: http://docs.nvidia.com/cuda/profiler-users-guide/#metrics-reference

+3

Inter-Thread-Kommunikation wäre Shuffle-Funktionen, http://docs.nvidia.com/cuda/cuda-c-programming-guide/#warp-shuffle-Funktionen und möglicherweise Thread-Sync-Funktionen oder Memory-Fence-Funktionen. Verschiedenes ist alles, was nicht durch die anderen aufgezeichneten Anweisungen abgedeckt ist. Ich bin mir nicht ganz sicher, aber ich vermute, sie könnten entlang der Linien von Char-Operationen, Vergleichsoperationen, Schleifen-Overhead, spezielle Funktionsoperationen, Overhead für Gerätefunktionen, im Kernel-Speicher malloc. –

Antwort

6

Die SASS Anweisungen, die in die beiden Kategorien fallen, sind wie folgt:

inst_inter_thread_communication

  • SHFL
  • VOTE

inst_misc

  • NOP
  • S2R, B2R, R2B, P2R
  • LEPC
  • CSET [P], PSET [P]
  • MOV
  • SEL
  • PRMT
  • Maxwell nur (BAR, DEPBAR)
  • Es gibt einige seltene undokumentierte Anweisungen, die diese Kategorie erhöhen.

Das Dokument CUDA Binärwerkzeuge Abschnitt Instruction Set Reference eine kurze Beschreibung der SASS Anweisungen enthält. Es gibt eine 1: 1-Beziehung zwischen SASS und PTX, so dass Sie auch das Handbuch lesen können.

Verwandte Themen