Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

nvprof: CUDA-profileri

Saatavuus

  • Puhti: 11.7.50
  • Mahti: 11.5.50

Lisenssi

Käyttö on mahdollista sekä akateemisiin että kaupallisiin tarkoituksiin.

Käyttö

Profilointityökalu nvprof kerää ja näyttää profilointidataa komentorivikäyttöliittymässä. Se mahdollistaa CUDAan liittyvien toimintojen aikajanan keräämisen sekä CPU:lta että GPU:lta, mukaan lukien ytimien suoritus, muistosiirrot, muistin asetus sekä CUDA API -kutsut ja CUDA-ytimien tapahtumat tai metriikat. Profiloinnin tulokset näytetään konsolissa profilointidatan keräämisen jälkeen, ja ne voidaan myös tallentaa myöhempää tarkastelua varten joko nvprof- tai Visual Profiler -työkalulla.

Jotta voit käyttää nvprofia, sinun täytyy ensin ladata CUDA-moduuli:

module load cuda

CUDA-koodin profilointia varten lisätään sitten komento nvprof ennen tavallista komentoa, jolla koodi suoritetaan. Muuten suorittaminen on samanlaista kuin mikä tahansa muu CUDA-ajo Puhdissa tai Mahdissa.

Esimerkki nvprofin käytöstä ja tulosteesta:

$ nvprof dct8x8
======== Profiling result:
Time(%) Time Calls Avg Min Max Name
 49.52 9.36ms 101 92.68us 92.31us 94.31us CUDAkernel2DCT(float*, float*, int)
 37.47 7.08ms 10 708.31us 707.99us 708.50us CUDAkernel1DCT(float*,int, int,int)
 3.75 708.42us 1 708.42us 708.42us 708.42us CUDAkernel1IDCT(float*,int,int,int)
 1.84 347.99us 2 173.99us 173.59us 174.40us CUDAkernelQuantizationFloat()
 1.75 331.37us 2 165.69us 165.67us 165.70us [CUDA memcpy DtoH]
 1.41 266.70us 2 133.35us 89.70us 177.00us [CUDA memcpy HtoD]
 1.00 189.64us 1 189.64us 189.64us 189.64us CUDAkernelShortDCT(short*, int)
 0.94 176.87us 1 176.87us 176.87us 176.87us [CUDA memcpy HtoA]
 0.92 174.16us 1 174.16us 174.16us 174.16us CUDAkernelShortIDCT(short*, int)
 0.76 143.31us 1 143.31us 143.31us 143.31us CUDAkernelQuantizationShort(short*)
 0.52 97.75us 1 97.75us 97.75us 97.75us CUDAkernel2IDCT(float*, float*)
 0.12 22.59us 1 22.59us 22.59us 22.59us [CUDA memcpy DtoA]
nvprof tukee useita erittäin hyödyllisiä ajoasetuksia:

  • --export-profile: Vie profiili tiedostoon

  • --analysis-metrics: Kerää profilointidataa, joka voidaan tuoda Visual Profileriin

  • --print-gpu-trace: Näytä funktiokutsujen jälki

  • --openacc-profiling on: Profiloi myös OpenACC (oletuksena käytössä)

  • --cpu-profiling on: Ota käyttöön CPU:n profilointia

  • --csv --log-file FILE: Luo CSV-tuloste ja tallenna se tiedostoon FILE; kätevä kuvaajia tai vertailuanalyysiä varten

  • --metrics M1: Mittaa vain metriikka M1, joka on yksi NVIDIAn tarjoamista metriikoista ja jotka voidaan listata valitsimella --query-metrics.

Lisätietoja on NVIDIAn dokumentaatiossa.

Huomautus

nvprof ei tue arkkitehtuureja >SM70. Työkalua nsys tulee käyttää.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta