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.

nsys: Nvidian GPU- ja CPU-profilointityökalu

Saatavuus

  • Puhti: 2022.1.3.3
  • Mahti: 2021.3.3.2

Lisenssi

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

Käyttö

nsys-profilointityökalu kerää ja näyttää profilointidataa komentoriviltä. Sen avulla voidaan kerätä aikajana CUDAan liittyvistä toiminnoista sekä CPU:lla että GPU:lla, mukaan lukien ytimien suoritus, muistinsiirrot, muistin asetus sekä CUDA API -kutsut ja CUDA-ytimien tapahtumat tai metriikat. Työkalu on erittäin hyödyllinen korkean tason pullonkaulojen ja kuumien kohtien tunnistamisessa sekä sen määrittämisessä, mitkä ytimet kannattaa kohdistaa optimointiin ja analysoida Nsight Compute -työkalulla. Profiloinnin tulokset näytetään konsolissa sen jälkeen, kun profilointidata on kerätty, ja ne voidaan myös tallentaa myöhempää tarkastelua varten nsys-ui-työkalulla.

Jotta nsys-työkalua voidaan käyttää, on ensin ladattava CUDA-moduuli:

module load cuda

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

Esimerkki nsys-työkalun käytöstä ja tulosteesta:

$ nsys profile -t nvtx,cuda -o <results_file> --stats=true --force-overwrite true ./a.out
Collecting data...
Processing events...
Capturing symbol files...
Saving temporary "/tmp/cristian/6584503/nsys-report-b4eb-c068-9292-3b17.qdstrm" file to disk...
Creating final output files...

Processing [==============================================================100%]
Saved report file to "/tmp/cristian/6584503/nsys-report-b4eb-c068-9292-3b17.qdrep"

Exporting 4657 events:

Generating CUDA API Statistics...

CUDA API Statistics (nanoseconds)
Time(%)      Total Time       Calls         Average         Minimum         Maximum  Name
-------  --------------  ----------  --------------  --------------  --------------  -------------------------------------------------------------
   85.3       323223522           4      80805880.5          128957       322811927  cudaMalloc
   13.6        51524634           1      51524634.0        51524634        51524634  cudaDeviceReset
   ....

Generating CUDA Kernel Statistics...
CUDA Kernel Statistics (nanoseconds)
Time(%)      Total Time   Instances         Average         Minimum         Maximum  Name
-------  --------------  ----------  --------------  --------------  --------------  -------------------------------------------------------------
  100.0           22912           1         22912.0           22912           22912  multiply_add_kn(float*, float const*, float const*, float const*, int)

Generating CUDA Memory Operation Statistics...
CUDA Memory Operation Statistics (nanoseconds)
Time(%)      Total Time  Operations         Average         Minimum         Maximum  Name
-------  --------------  ----------  --------------  --------------  --------------  -------------------------------------------------------------
   79.0         2022300           3        674100.0          663903          692095  [CUDA memcpy HtoD]
   21.0          536223           1        536223.0          536223          536223  [CUDA memcpy DtoH]

CUDA Memory Operation Statistics (KiB)
              Total      Operations              Average            Minimum              Maximum  Name
-------------------  --------------  -------------------  -----------------  -------------------  ------------------------------------------------
           3906.250               1             3906.250           3906.250             3906.250  [CUDA memcpy DtoH]
          11718.750               3             3906.250           3906.250             3906.250  [CUDA memcpy HtoD]

Generating Operating System Runtime API Statistics...
Operating System Runtime API Statistics (nanoseconds)
Time(%)      Total Time       Calls         Average         Minimum         Maximum  Name
-------  --------------  ----------  --------------  --------------  --------------  -------------------------------------------------------------
   67.0       343435124          29      11842590.5           23172       100249843  poll
   22.6       115645051        1102        104941.1            1286        25309244  ioctl
   5.5        28249766           4       7062441.5            3763        15288473   fread
   ....

nsys tukee monia hyödyllisiä ajoasetuksia. Lisätietoja on Nvidian dokumentaatiossa.

Yllä oleva raportti voidaan tarkastella myös graafisella käyttöliittymällä. Analyysin tulokset tallennetaan määritettyyn tiedostoon <results_file>.qdrep, ja niitä voidaan tarkastella suoraan CSC:n palvelimilla ajamalla nsys-ui tai kopioida paikallisille tietokoneille ja tarkastella nsight-systems-työkalun paikallisella asennuksella.

Suomenkielinen tekoälykäännös

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

Klikkaa tästä antaaksesi palautetta