2014-09-04 24 views
5

Ho giocato in giro con il profiler NVIDIA (nvprof) e ci sono due metriche particolari che non capisco:istruzioni di comunicazione varie e inter-thread 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 

Sto solo chiedendo cosa le istruzioni sarebbero istruzioni di comunicazione inter-thread e quali istruzioni rientrerebbero in miscellanea.

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

+3

La comunicazione tra thread è costituita da funzioni di shuffle, http://docs.nvidia.com/cuda/cuda-c-programming-guide/#warp-shuffle-functions e possibilmente funzioni di sincronizzazione dei thread o funzioni di fence della memoria. Misc è tutto ciò che non è coperto dall'altra serie di istruzioni registrate. Non ne sono del tutto sicuro, ma presumo che potrebbero seguire le linee di operazioni di char, operazioni di confronto, overhead del loop, operazioni di funzioni speciali, overhead per le funzioni del dispositivo, nella memoria del kernel malloc. –

risposta

6

Le istruzioni SASS che rientrano nelle due categorie sono le seguenti:

inst_inter_thread_communication

  • SHFL
  • VOTARE

inst_misc

  • NOP
  • S2R, B2R, R2B, P2R
  • LEPC
  • CSET [P], PSET [P]
  • MOV
  • SEL
  • PRMT
  • Solo Maxwell (BAR, DEPBAR)
  • Esistono diverse istruzioni non frequenti poco frequenti che incrementano questa categoria.

Il documento CUDA binario Utilità sezione Instruction Set Reference contiene una breve descrizione delle istruzioni Sass. C'è una relazione 1: 1 tra SASS e PTX in modo da poter esaminare anche il manuale PTX ISA.