Hyppää sisältöön

A new version of SD Connect and SD Desktop will be available from Monday, September 28. The major upgrade will introduce significant improvements, but also includes changes that are not compatible with the current version of the service. Click here to review the available support materials.

Warning!

Puhti and Mahti computing services have been decommissioned and no new jobs are accepted or executed on its compute nodes. Puhti and Mahti login nodes and storage services are planned to remain available until 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

nvprof: CUDA-profileri

Saatavilla

  • 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 komentoriviltä. Se mahdollistaa aikajanan keräämisen CUDAan liittyvistä toiminnoista sekä CPU:lla että GPU:lla, mukaan lukien ytimien suoritus, muistosiirrot, muistin asetus sekä CUDA API -kutsut ja CUDA-ytimien tapahtumat tai metriikat. Profilointitulokset 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 nvprofia voidaan käyttää, on ensin ladattava CUDA-moduuli:

module load cuda

CUDA-koodin profilointia varten lisätään sitten komento nvprof ennen tavallista koodin suorituskomentoa. Muutoin suorittaminen on samanlaista kuin missä tahansa muussa CUDA-työssä.

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ä suoritusvalintoja:

  • --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 jonkin verran CPU-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 valinnalla --query-metrics.

Lisätietoja löytyy NVIDIAn dokumentaatiosta.

Huom.

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